차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
tech:zombie_process [2013/06/26 06:35] – 새로 만듦 V_Ltech:zombie_process [2016/07/12 00:56] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
 +{{tag>zombie process}}
 +======Zombie Process======
 +
 +
 +유닉스/리눅스에서
 +
 +1) 모든 프로세스는 부모/자식의 관계를 갖는다.
 +
 + * 일반적으로 특정 프로세스를 생성한(fork) 프로세스가 부모 프로세스이며,
 +부모의 유고시에도 1) 조건은 유지되어야 하며, 단, 부모를 1(init)로 한다.
 +
 +2) 모든 프로세스는 첨부된 그림에 나타난 모든 스테이트를 가질 수 있다.
 +
 +*  참고: 좀비스테이트도 프로세스가 가질 수 있는 한 state이며, 필연적으로 모든 프로세스가 거치는 상태임(종료될 수 있다면)
 +
 +* 절차
 +
 +  * 1) A 라는 프로세스가 죽으면 자원을 반납하고 일단 좀비스테이트로 세팅됨(A->죽으면 좀비, zombie, defunct가 됨)
 +  * 2) A 프로세스는 자신의 부모프로세스에게 자신의 exit 코드를 리턴함
 +  * 3) 커널은 A 프로세스가 죽으면, 부모 프로세스에게 시그널(Sig child)을 발생시켜 통보하고, 그에 대해 처리(wait, signal 핸들러로 처리)를 대기함
 +  * 4) 시그널을 받은 부모는 SIGCHLD에 대해 wait, signal handler로 처리
 +  * 5) 커널은 좀비를 해제하고 완전하게 프로세스 관리 리스트에서 A 프로세스에 대한 엔트리를 제거
 +
 +
 +^  누구나 수정하실 수 있습니다. [[http://vaslor.net/syntax|위키 사용법]] 참고하세요.  ^
 +
 +