Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

좀비 프로세스

좀비프로세스의 정의는 실행이 종료되었지만 아직 삭제되지 않은 프로세스를 말한다.

종료되었지만 삭제되지 않았다는 뜻에 대해서 알아보도도록 하자. 보통 프로세스는 exit 시스템함수를 호출함으로써, 프로세스를 종료시킬려고 한다. 그리고 자신의 모든 자원을 해제 시키게 된다. 그러나 프로세스의 exit status 상태와 PID는 여전히 남아서(커널의 task struct에) 유지되게 된다. 이렇게 하는 몇가지 이유가 있는데, 이렇게 함으로써 부모 프로세스는 자식프로세스에 대한 종료상태등을 가져올수 있어서 자신의 자식프로세스가 어떤 상태로 작업을 마쳤는지에 대한 정보를 확인할수 있기 때문이다. 만약 프로세스가 exit 를 호출하는 즉시 모든 자원을 되돌려줌과 동시에 커널에서 task struct 에서 프로세스 정보를 삭제시켜 버린다면, 부모프로세스는 자신의 자식 프로세스가 어떤 상태로 종료되었는지 알수 없게 될것이다.