검색 여닫기
검색
메뉴 여닫기
543
253
4
2.1천
noriwiki
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
파일 올리기
환경 설정 메뉴 여닫기
notifications
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
user-interface-preferences
한국어
개인 도구
로그인
Wait 문서 원본 보기
noriwiki
문서 공유하기
다른 명령
←
Wait
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
[[분류: POSIX 시스템 콜]] == 개요 == 자식 프로세스와의 종료를 동기화 시킨다. [[좀비 프로세스]]를 제거 할 수 있는 단 하나의 방식은 부모 프로세스가 wait호출을 하는 것이다. 좀비 프로세스는 exit status를 report하면서 최종적으로 종료된다. 부모 프로세스가 wait호출 없이 종료되면 좀비 프로세스는 init프로세스가 상속하여 다 죽여버린다. 다 죽여 버리겠어... : <code> pid_t wait(int *status);</code> : <code>pid_t waitpid( pid_t pid, int *status, int opts)</code> # pid: 종료시킬 아이디 # status: 종료되면서 리턴되는 status. 후에 매크로를 이용하여 어떤 status인지 확인할 수 있다. # opts: 0이나 WCONTINUED | WNOHANG | WUNTRUCED의 조합을 넣어서 적절한 옵션을 준다. == 과정 == 1. 자식이 없으면 error을 리턴한다. 2. 만약 좀비가 있으면, PID값과 자식 프로세스의 exit code값을 process table slot에서 가져온다. 또한 자식 프로세스가 사용한 CPU시간을 부모 프로세스의 u area에 작성한다. 그리고 자식 프로세스를 process table slot에서 삭제한다. 그리고 마지막으로 exit code와 PID를 리턴한다. 3. 만약 자식이 없으면 error을 리턴한다. 4. sleep waiting한후 다음 자식이 종료하는 것을 기다린다. 5. 2로 이동한다.
Wait
문서로 돌아갑니다.