공유 자원을 관리하기 위해서 뮤텍스와 세마포어라는 기법으로 상호배제를 보장할 수 있다. 이 둘은 비슷해보이지만 몇 가지 차이점이 있다. 간단하게만 정리해봤다.

유사점

세마포어는 공유할 수 있는 프로세스의 수를 정수형으로 저장하고 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