Learning
토픽 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