뮤텍스와 세마포어

정하윤·2022년 9월 16일
0

  • 뮤텍스 : 공유된 자원의 데이터 혹은 임계영역 등에 하나의 Process 혹은 Thread가 접근하는 것을 막아줌

  • WaitForSingleObject 가 빠져나올라면 뮤텍스가 Signal 상태가 되어야 한다. 그러고 빠져나오면서 뮤텍스를 nanSignal 상태로 만들어 버린다.

  • ReleaseMutex는 뮤텍스를 signal 상태로 만드는 함수이다.

  • 세마포어 : 공유된 자원의 데이터 혹은 임계영역 등에 여러 Process 혹은 Thread가 접근하는 것을 막아줌

  • ReleaseSemaphore함수가 실행되면 세마포어 카운트가 1 증가하고 WaitForsingleObject 함수가 실행되면 세마포어 카운트가 1 감소한다.

  • WaitForsingleObject 함수가 한번 실행이 되어도 세마포어 카운트는 nanSignal 상태가 되지 않고 1이깍여서 9가되고 0이 될때 nanSignal 상태가 되어 그 다음에 호출되는 쓰레드는 블럭상태가 된다. 총 10개의 쓰레드가 임계 영역에 접근가능하다.

0개의 댓글