학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 179 · 실전 면접 답변

동기화 도구인 뮤텍스(Mutex)와 세마포어(Semaphore)는 어떤 차이점이 있나요?

이렇게 답해 보세요 (핵심 답변)

뮤텍스는 소유권(Ownership)을 가진 잠금으로, 한 번에 한 스레드만 임계 구역에 들어가도록 상호 배제를 보장하며 잠금을 건 스레드만 해제할 수 있습니다. 반면 세마포어는 정수 카운트와 대기(wait)·신호(signal) 연산을 통해 동시에 사용 가능한 자원 수를 제한하거나 실행 순서를 조율합니다. 카운트를 1로 둔 이진 세마포어로 비슷한 배제를 구성할 수는 있지만 소유권과 해제 규칙이 뮤텍스와 같지는 않으며, 둘 다 예외 경로에서도 해제가 누락되지 않게 짝맞춰야 합니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. DB 커넥션 풀처럼 동시에 최대 N개까지만 접근을 허용하는 문제에는 카운팅 세마포어가 자연스럽게 어울립니다.
  2. 특정 조건식이 참이 될 때까지 잠금을 풀고 대기해야 하는 상황은 세마포어보다 뮤텍스와 조건 변수(Condition Variable)를 함께 쓰는 편이 명확합니다.

면접에서 자주 하는 실수

이진 세마포어와 뮤텍스의 소유권·안전성 의미가 모든 환경에서 완전히 똑같다고 단정하면 안 됩니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 179번을 바탕으로 질문과 답변을 새로 정리했습니다.

← 운영체제