lifecycle

프로세스 수명 주기 호출

부모와 자식 중 어느 쪽에서 호출되는지, 종료 상태를 누가 수거하는지까지 추적해야 좀비와 고아 프로세스를 설명할 수 있습니다.

fork부모 문맥 복제
exec새 프로그램 적재
exit종료 상태 남김
wait부모가 상태 회수
Copy-on-Write

fork 직후에는 페이지를 공유하고 실제 쓰기가 생길 때 복사해 생성 비용을 낮춥니다.

exec 교체

PID는 유지되지만 주소 공간과 코드 이미지는 새 실행 파일로 바뀝니다.

부모와 자식

부모는 자식 PID, 자식은 0으로 서로 다른 분기를 탑니다.

종료 상태

프로세스가 끝나도 상태 코드는 부모가 wait로 읽을 때까지 커널에 남습니다.

좀비 프로세스

자식은 끝났지만 부모가 수거하지 않으면 Z 상태가 프로세스 테이블을 차지합니다.

고아 프로세스

부모가 먼저 종료되면 PID 1 계열 프로세스가 새 부모가 되어 종료 상태를 처리합니다.