공유 자원을 관리하기 위해서 뮤텍스와 세마포어라는 기법으로 상호배제를 보장할 수 있다. 이 둘은 비슷해보이지만 몇 가지 차이점이 있다. 간단하게만 정리해봤다.
유사점
세마포어는 공유할 수 있는 프로세스의 수를 정수형으로 저장하고 0보다 클 때 까지만, 접근에 허용한다. 만약 이 정수가 1로 시작한다면 뮤텍스와 동작이 비슷해보인다.
차이점
- 세마포어 정수형 데이터지만, 뮤텍스는 객체다.
- 세마포어는 신호 메커니즘이고, 뮤텍스는 잠금 메커니즘이다.
- 세마포어는 wait, signal 신호로 값이 수정된다.
- 뮤텍스는 뮤텍스를 소유하고 있는 프로세스가 lock 또는 unlock을 할 수 있다.
- 세마포어는 소유의 개념이 없어 시스템 범위에 걸쳐 동작하지만, 뮤텍스는 프로세스 범위 내에서 동작한다.
참고 자료
https://www.guru99.com/mutex-vs-semaphore.html
https://www.geeksforgeeks.org/mutex-vs-semaphore/
https://www.geeksforgeeks.org/mutex-vs-semaphore/
https://medium.com/@kwoncharles/뮤텍스-mutex-와-세마포어-semaphore-의-차이-de6078d3c453