호빵의 IT 개발소

세마포어와 뮤택스의 차이점 본문

CS(전공지식)/기술면접 준비

세마포어와 뮤택스의 차이점

호빵Stack 2025. 3. 28. 21:53
세마포어(Semaphore)
  • 정수 값을 이용한 동기화 도구
  • 여러 스레드가 공유 자원에 접근 가능 (카운팅 가능)
  • 연산: wait(P), signal(V)
  • 커널 또는 사용자 공간에서 동작 가능
뮤텍스(Mutex)
  • 하나의 스레드만 접근 가능한 락 기반 동기화 도구
  • 임계 구역 보호용
  • 락을 획득한 스레드만 접근 가능
  • 반드시 해제해야 데드락 방지 가능
차이점 요약
  • 세마포어는 다중 접근 가능, 뮤텍스는 단일 접근만 허용
  • 세마포어는 카운터, 뮤텍스는 소유권 있는 락
  • 세마포어는 스레드 간 신호용, 뮤텍스는 임계영역 보호용

 

 

면접 스타일 답변 예시:

세마포어는 카운팅 기반의 동기화 도구로 여러 개의 스레드가 공유 자원에 접근하는 상황에서 접근 가능한 개수를 관리할 수 있습니다.
반면 뮤텍스는 오직 하나의 스레드만 임계 영역에 진입하도록 보장하는 락 개념입니다.
가장 큰 차이점은 세마포어는 여러 스레드가 동시에 자원을 사용할 수 있도록 설정할 수 있는 반면 뮤텍스는 항상 1개의 스레드만 자원에 접근할 수 있다는 점입니다.
Comments