본문 바로가기
linux

좀비 프로세스

by 상레알 2010. 8. 17.
fork를 이용한 프로세스 생성은 매우 유용하나, 프로그램이 자식 프로세스들을 세심하게 관리해야 한다는 책임이 따른다
자식 프로세스가 종료된다고 해도 부모와의 관계는 부모가 정상적으로 종료되거나 부모가 wait을 호출할 떄까지 유지된다. 즉, 자식 프로세스가 종료되어도 그 즉시 프로세스 테이블에서 자식 프로세스의 해당 항목이 삭제되는 것은 아니다.
자식 프로세스가 더 이상 실행되지 않는다고 해도 부모가 wait를 통해서 자식 프로세스의 종료 코드를 요청할 수 있기 때문에 운영체제는 자식 프로세스를 여전히 시스템 안에 남겨둔다. 실행이 종료되었으나 부모와의 연관 관계가 남아 있는 프로세스를 가리켜 소멸된 프로세스 또는 좀비 프로세스라고 부른다....부모한테 버림받은.자식..
자식 프로세스가 부모보다 먼저 종료되면 부모가 종료되기 전까지는 자식이 좀비 프로세스로서 존재한다..
근대 만일 부모 프로세스가 비정상적으로 종료된다면 자식 프로세스는 PID가 1인 프로세스를 부모로 가지게 된다. 자식 프로세스는 init 프로세스에 의해 제거 될따 까지 좀비 프로세스로 남는데, 제거되기까지의 시간은 프로세스 테이블이 클수록 길어진다. 그때까지는 계속해서 시스템 자원을 차지하고 있기 때문에 fork를 사용할 때에는 이런 좀비 프로세스를 만들어내지 않도록 주의해야한다.

'linux' 카테고리의 다른 글

/etc/shadow ,존더 리퍼 [ John the Ripper ]  (0) 2010.12.15
레이스 컨디션  (0) 2010.12.13
데몬(demon) 슈퍼데몬 (xinnetd)  (0) 2010.12.08
스레드  (0) 2010.08.17
입출력 재지정  (0) 2010.08.17
프로세스 이미지 복제  (0) 2010.08.15
프로세스 이미지 대체하기  (0) 2010.08.15
새 프로세스 시작하기  (0) 2010.08.15
프로세스 일정 관리  (0) 2010.08.14
프로세스와 신호  (0) 2010.08.13