2007/05/04

Semaphore, Mutex

지금까지 Semaphore나 Mutex나 Critical Section에 안전하게 진입하기 위한 방법으로 알고 있었다.
근데... 왜 VxWorks에서는 Mutex와 Binary Semaphore가 따로 구별되어 있는걸까?

잠깐 구글한테 물어보니 그 이유를 알것 같다.
대부분의 경우 Mutex를 Binary Semaphore처럼 사용하고, 그렇다 라고 생각하는 사람이 많은것 또한 사실이다.
하지만 VxWorks는 재귀적인 작업이 예상되는 곳에는 Mutex를, 단순히 Signal Send/Receive를 목적으로 할때는 Semaphore를 권하는것 같다.
VxWorks Training Workshop 책자를 보면 Mutex와 Semaphore의 차이를 설명하고 있는데, Mutex에서는 task ID를 검사하는 부분이 있다.

Mutex로 Lock(semTask)했을 경우 Lock한 thread에서만 Release(SemGive) 할수 있고... Lock한 thread가 다시 진입할때는 Ownership Count를 증가시키고 진입이 가능하다.


== 잊어먹기 전에 메모하기 ==

댓글 없음: