차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판 | |||
tech:zombie_process [2013/06/26 06:36] – V_L | tech:zombie_process [2016/07/12 00:56] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | {{tag> | ||
+ | ======Zombie Process====== | ||
+ | |||
+ | |||
+ | 유닉스/ | ||
+ | |||
+ | 1) 모든 프로세스는 부모/ | ||
+ | |||
+ | * 일반적으로 특정 프로세스를 생성한(fork) 프로세스가 부모 프로세스이며, | ||
+ | 부모의 유고시에도 1) 조건은 유지되어야 하며, 단, 부모를 1(init)로 한다. | ||
+ | |||
+ | 2) 모든 프로세스는 첨부된 그림에 나타난 모든 스테이트를 가질 수 있다. | ||
+ | |||
+ | * 참고: 좀비스테이트도 프로세스가 가질 수 있는 한 state이며, | ||
+ | |||
+ | * 절차 | ||
+ | |||
+ | * 1) A 라는 프로세스가 죽으면 자원을 반납하고 일단 좀비스테이트로 세팅됨(A-> | ||
+ | * 2) A 프로세스는 자신의 부모프로세스에게 자신의 exit 코드를 리턴함 | ||
+ | * 3) 커널은 A 프로세스가 죽으면, 부모 프로세스에게 시그널(Sig child)을 발생시켜 통보하고, | ||
+ | * 4) 시그널을 받은 부모는 SIGCHLD에 대해 wait, signal handler로 처리 | ||
+ | * 5) 커널은 좀비를 해제하고 완전하게 프로세스 관리 리스트에서 A 프로세스에 대한 엔트리를 제거 | ||
+ | |||
+ | |||
+ | ^ 누구나 수정하실 수 있습니다. [[http:// | ||
+ | |||
+ | |||