spawn and reap

프로세스 생성 절차

부모가 자식을 만들고, 자식은 새 프로그램으로 바뀌며, 종료 상태는 부모가 수거해야 프로세스 테이블 잔여 정보가 사라집니다.

fork

부모 복제

부모에는 자식 PID, 자식에는 0이 반환되어 두 실행 흐름이 갈라집니다.

cow

페이지 공유

메모리는 바로 복사하지 않고 쓰기 발생 시 변경된 페이지만 분리합니다.

exec

이미지 교체

PID와 일부 파일 디스크립터는 유지하고 코드와 데이터는 새 프로그램이 됩니다.

exit

자식 종료

메모리와 열린 자원은 정리되지만 종료 코드는 부모가 읽을 때까지 남습니다.

wait

상태 수거

부모가 exit status를 읽으면 남은 PCB 항목까지 해제됩니다.

정상

부모가 wait 호출

종료 코드가 회수되고 자식의 프로세스 테이블 항목이 사라집니다.

Zombie

자식만 먼저 종료

부모가 wait를 미루면 defunct 항목이 남아 PID 공간을 차지합니다.

Orphan

부모가 먼저 종료

커널이 부모를 PID 1로 바꾸고 init 또는 systemd가 나중에 수거합니다.