← 질문 목록
#314깊이 0

좀비 프로세스는 왜 남는가?

운영체제기초메모리

자식이 어떻게 끝났는지를 부모가 물어볼 때까지 커널이 그 자리를 남겨 두기 때문이다.

  • 실행

    • 좀비

      자식이 끝났는데 부모가 아직 안 거둔다

    • 고아

      부모가 먼저 죽는다

  • 좀비

    • 사라짐

      부모가 wait으로 종료 상태를 가져간다

  • 고아

    • 사라짐

      init이 입양해 대신 거둔다

좀비는 쓰던 메모리를 이미 내놓았다. 남는 것은 프로세스 표의 한 줄과 종료 상태, 그리고 그 번호다. 그래서 하나둘로는 표가 안 난다.

문제는 개수다. 프로세스 표에는 한도가 있어서 좀비가 계속 쌓이면 새 프로세스를 못 만든다. 자식을 많이 띄우는 서버에서 실제로 겪는 자리다.

고아는 좀비가 아니다. 부모가 먼저 죽은 것뿐이고 init이 입양해 거둬 준다. 오히려 부모가 살아서 방치할 때 남는다.

부모가 종료되면 좀비는 init 계열 프로세스가 거둔다. 좀비 자체는 이미 죽어서 신호를 받지 않는다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

좀비 프로세스는 왜 남는가?