Blog
Anki
운영체제

Mutex Lock과 Semaphore의 차이에 대해서 설명하고 어느 상황에 쓰는게 적절한지 설명해주세요.

답 보기
  • Mutex
    • Mutex Lock은 내부적으로 Spin Lock을 사용하며 Context Switching이 발생하지 않는다.
    • 그래서 Critical Section의 길이가 짧은 경우 Spin Lock 방식이 더 효율적일 수 있다.
  • Semaphore
    • Semaphore는 스케줄링 하는 큐를 두고 사용하는 방식으로 스레드가 가용 상태가 되면 Context Switching이 발생한다.
    • 그래서 Critical Section의 길이가 짧은 경우 Semaphore를 활용한 스케줄링 방식이 좀 더 효율적일 수 있다. (CPU 점유를 하지 않기 때문)
    • Semaphore는 리소스의 양을 제한할 때 주로 사용된다.