근데... 왜 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를 증가시키고 진입이 가능하다.
== 잊어먹기 전에 메모하기 ==
댓글 없음:
댓글 쓰기