linux 시스템 호출 함수 심득: fork ()

본문 적용 범위
1.  fork()     
2.   man fork
3.        
4.               

오늘 은 셸 프로그램 을 만 들 고 fork () 의 용법 을 연습 하고 탐색 하고 싶 습 니 다.다음은 소감 입 니 다.
나 는 이 소감 들 을 프로 세 스 에 따라 - dstroy 를 만 드 는 방식 으로 설명 한다.
특별히 표시 되 지 않 은 모든 소감 은 오리지널 이다.
그렇다 고 생각 합 니 다.
1. 부모 프로 세 스 P1 호출 fork ()
2. 하위 프로 세 스 P2 생 성, new - ready
그 동안 각종 변수 계승 과 초기 화.이때 P2 의 모든 변 수 는 P1 과 공용 입 니 다.pid 를 제외 하고 pid 는 서로 다른 물리 적 주소 (같은 논리 적 주소) 의 두 변수 입 니 다.
3. 부모 프로 세 스 와 하위 프로 세 스 가 실 행 됩 니 다.
부자 프로 세 스 는 대기 queue 의 우선 순위 가 무 작위 로 운영 체제 의 단거리 스케줄 링 알고리즘 에 의존 합 니 다.실행 할 때 하위 프로 세 스 변수 값 이 바 뀌 면 이 변 수 는 P1 과 주 소 를 공유 하지 않 고 자동 으로 복사 하고 값 을 변경 합 니 다.이때 이 변 수 는 가상 주소 가 P1 과 같 고 물리 적 주소 가 다 릅 니 다.이것 은 Liux 가 쓸 때 복사 메커니즘 입 니 다.내 가 짐 작 컨 대, 자원 이 유한 하기 때문에 설 정 된 것 이다.
4. 프로 세 스 종료 상황
부모 프로 세 스 가 실행 되 고 하위 프로 세 스 가 실 행 됩 니 다.일반적인 상황 에서 다음 과 같은 몇 가지 가능성 이 있다.
1.P1 P2            
(1)P1   P2   
P2              
(2)P2   P1   
        
2.P1 P2             
(1)      
P1    ,  P2,P2    ,    ,  P1,  P1      ,             ;        ,      ,P2          。
(2)     
      :waitpid(pid,NULL,0);
P1    ,  P2,P2    ,    ,  P1,  P1     ,    P2    ,      ,P2            。

좋은 웹페이지 즐겨찾기