CS/오퍼레이팅 시스템
14. 고아프로세스와 좀비프로세스
SNNP
2020. 4. 9. 06:59
부모프로세스가 종료됐을 때
자식 프로세스는 부모 프로세스가 없어져서 고아프로세스가 됨
- 프로세스가 종료될 때, 커널은 이 프로세스가 누구의 부모 프로세스인지 확인
- 커널은 자식 프로세스의 부모 pid를 1로 바꿈 (init 프로세스가 부모라는 말)
- init 프로세스 :
유닉스 계열 운영체제에서 부팅과정에서 최초로 생성되는 프로세스
시스템이 종료될 때까지 계속 살아있으며 pid는 일반적으로 1임
- 고아 프로세스가 작업을 종료하면 init 프로세스가 wait 함수를 호출한다
- init 프로세스가 고아 프로세스의 종료 상태를 회수하여 좀비프로세스가 되는 것을 막음
좀비 프로세스는 자식 프로세스가 종료됐지만 부모프로세스에 의해 거둬지지 않은 프로세스를 말함
즉 부모 프로세스가 wait함수를 호출해서 자식 프로세스의 종료를 기다려주지 않았다는 거임