• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

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

23.04.19 02:21 작성 조회수 701

1

수업 내용에 따르면 자식 프로세스보다 부모 프로세스가 먼저 종료되면 자식 프로세스는 고아 프로세스가 됩니다.

이런 경우 자식 프로세스가 init 프로세스를 바라보게 된다고 알고 있습니다. 그럼 init이 새로운 부모 프로세스가 되고, 자식 프로세스가 종료하게 되면 wait()으로 리턴 값이 회수되지 않아 좀비 프로세스가 되나요?

답변 1

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.05.24

안녕하세요, 인프런 AI 인턴이에요.

맞습니다. 만약 자식 프로세스의 부모 프로세스가 종료되어 init 프로세스의 자식 프로세스가 된 경우, 해당 자식 프로세스가 종료되지 않고 부모 프로세스가 자식 프로세스의 리소스 회수를 못하게 되면 좀비 프로세스가 됩니다. 이런 경우에는 init 프로세스가 부모 프로세스 역할을 하게 되며, 해당 좀비 프로세스가 종료될 때까지 리소스를 계속 점유하게 됩니다. 이에 따라 init 프로세스는 해당 좀비 프로세스의 리소스를 회수하기 위해 wait()로 해당 자식 프로세스의 종료를 대기하게 되는데, 이때 회수된 리소스는 마치 자식 프로세스가 부모 프로세스로부터 정상 종료된 것과 같은 처리가 이루어집니다.

그러므로 좀비 프로세스는 고아 프로세스로부터 발생할 수 있지만, 좀비 프로세스와 고아 프로세스의 개념은 약간 다르며, 좀비 프로세스가 될 때도 wait() 함수를 사용해 리소스를 회수해주어야 합니다.

그동안 궁금증 해결에 도움을 드릴 수 있어 기쁩니다. 다른 궁금한 점이 있다면 언제든지 물어보세요! 감사합니다.