본문 바로가기

시스템프로그래밍

[시스템 프로그래밍]signaled vs non-signaled

커널 오브젝트의 상태

상태: 리소스의 현재 상황을 알리기 위함. signaled, non-signaled 상태 존재.
ex.부모 프로세스가 자식 프로세스를 생성했다. 부모 프로세스가 자식 프로세스의 커널 오브젝트를 보니 non-signaled 상태이다. “아 실행중이구나!”

상태관찰 시나리오

부모 프로세스가 자식프로세스 생성->핸들:7 ->자식프로세스의 커널오브젝트는 7 ->부모프로세스가 자식프로세스는 실행중인지 멈췄는지 궁금->WaitForSingleObject(7)함수 호출->7을 의미하는 커널오브젝트의 상태를 알수있다 -> 상태가 signaled 면 바로반환, non-signaled이면 blocking상태. 멈춘상태  

즉, WaitForSingleObject()함수는 signal되기를 기다리는 상태의 함수.

반응형