토픽 8 / 85·프로세스 관리
좀비 프로세스 / 고아 프로세스
좀비 프로세스 / 고아 프로세스
프로세스 종료/부모 관계에서 발생하는 비정상 상태의 프로세스
좀비 프로세스(Zombie Process)
- •자식 프로세스가 종료(exit)되었으나 부모가 wait()을 호출하지 않아 PCB(종료 상태)가 커널에 남아있는 상태
- •프로세스 테이블 엔트리만 차지, CPU/메모리 미사용,
ps에서 상태 Z(zombie) - •원인: 부모의 wait() 미호출, 부모가 바쁘거나 버그
- •해결: 부모에서 wait()/waitpid() 호출, SIGCHLD 핸들러 등록, 부모 종료(init이 회수)
- •위험: 대량 발생 시 PID 고갈, 프로세스 테이블 포화
고아 프로세스(Orphan Process)
- •부모 프로세스가 자식보다 먼저 종료되어 부모가 없는 상태의 프로세스
- •init(PID 1) 또는 systemd가 새 부모로 입양(adopt), wait() 대행
- •정상 동작 계속 가능, 데몬 프로세스 생성에 의도적으로 활용
비교
연관: 프로세스, fork, wait, exit, init, PCB