Signaled vs Non-Signaled

정하윤·2022년 9월 4일
0

  • 프로세스가 생성되어 실행중일때 커널 오브젝트의 상태는 Non Signaled이고 종료가 되면 커널 오브젝트의 상태는 Signaled가 됨

  • 부모 프로세스가 자식 프로세스를 생성한 후 핸들값 7을 얻게됨 그리고 부모 프로세스는 자식 프로세스가 현재 종료되었는지 실행중인지 알기 위해서는 WaitForSigleObject() 함수를 호출 한다.
  • 위의 그림처럼 부모 프로세스가 자식 프로세스 A와 자식 프로세스 B 보다 먼저 실행이 되어 오류가 생긴다. 이 처럼 부모 프로세스가 먼저 실행이 되지 않게 할려면 WaitForSigleObject()함수를 사용하여 자식 프로세스 A와 자식 프로세스 B 가 signal 상태가 되면 부모 프로세스가 실행이 되므로 Non Signaled 상태로 먼저 실행하고 종료될때 마지막으로 부모 프로세스가 실행하여 15와 40을 더하게 된다.

0개의 댓글