linux 시스템 호출 함수 심득: fork ()
1667 단어 링크 ux 시스템 호출
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 。