본문 바로가기

CS/오퍼레이팅 시스템

14. 고아프로세스와 좀비프로세스

 

 

부모프로세스가 종료됐을 때 

자식 프로세스는 부모 프로세스가 없어져서 고아프로세스가 됨

- 프로세스가 종료될 때, 커널은 이 프로세스가 누구의 부모 프로세스인지 확인

- 커널은 자식 프로세스의 부모 pid를 1로 바꿈 (init 프로세스가 부모라는 말)

- init 프로세스 :

 유닉스 계열 운영체제에서 부팅과정에서 최초로 생성되는 프로세스

 시스템이 종료될 때까지 계속 살아있으며 pid는 일반적으로 1임

- 고아 프로세스가 작업을 종료하면 init 프로세스가 wait 함수를 호출한다

- init 프로세스가 고아 프로세스의 종료 상태를 회수하여 좀비프로세스가 되는 것을 막음

 


좀비 프로세스는 자식 프로세스가 종료됐지만 부모프로세스에 의해 거둬지지 않은 프로세스를 말함

즉 부모 프로세스가 wait함수를 호출해서 자식 프로세스의 종료를 기다려주지 않았다는 거임