안녕하세요
애매한 부분이 있어 질문 드립니다.
디바이스 드라이버 책을 보면
세마포어랑 mutex랑 같은 방법이지만 mutex는 1하나의 프로세스만 허용이 가능한 것으로 알고있습니다.
뮤텍스 : mutex_lock/unlock, 세마포어 : down/up함수 사용
그런데 실제 구현 코드는 차이가 많이 나구요
정말둘이 같이 잠들기가 가능한것은 같고, 몇개의 프로세스 허용하는지에 대한것만 차이가 나는게 맞나요?
.
안녕하세요
애매한 부분이 있어 질문 드립니다.
디바이스 드라이버 책을 보면
세마포어랑 mutex랑 같은 방법이지만 mutex는 1하나의 프로세스만 허용이 가능한 것으로 알고있습니다.
뮤텍스 : mutex_lock/unlock, 세마포어 : down/up함수 사용
그런데 실제 구현 코드는 차이가 많이 나구요
정말둘이 같이 잠들기가 가능한것은 같고, 몇개의 프로세스 허용하는지에 대한것만 차이가 나는게 맞나요?
.
우선 하는 일에 대해서 mutex는 binary semaphore와 많이 동일하고요.
구조적인 측면과 동작 측면에서는 mutex는 owner라는 개념 있는데 반해 binary semaphore는 owner라는 개념이 없다는 차이가 있습니다.
이로 인해 mutex는 lock한 task만 unlock 할수 있는데 반해 semaphore는 아무 task나 unlock이 가능하죠.