process lifecycle

프로세스 수명 주기 회수 기준

프로세스 생성과 종료는 fork, exec, wait가 맡는 책임을 분리해서 읽어야 좀비와 고아를 설명할 수 있습니다.

수명 주기
01fork 02COW 03exec 04exit 05wait
fork()

부모 주소 공간을 복제하되 실제 페이지는 Copy-on-Write로 늦게 복사합니다.

exec()

PID는 유지하고 코드, 데이터, 스택을 새 프로그램 이미지로 교체합니다.

wait()

부모가 종료 상태를 수거해야 커널의 프로세스 테이블 항목이 정리됩니다.

zombie/orphan

좀비는 회수 전 종료 프로세스이고, 고아는 부모가 사라져 init 계열이 입양한 프로세스입니다.