운영체제 뮤텍스랑 세마포어 차이

멀티스레드 환경에서 공유 자원 접근을 제어하는 동기화 도구인 뮤텍스(Mutex)세마포어(Semaphore)의 차이점을 정리한다.

동기화 메커니즘 비교

뮤텍스와 세마포어는 자원 보호를 목적으로 하나 작동 방식에 차이가 있다.

# Mutex (상호 배제)
mutex.lock()
# --- 임계 구역 (Critical Section) ---
mutex.unlock()

# Semaphore (자원 개수 관리)
semaphore.wait()   # 자원 사용 요청
# --- 자원 사용 ---
semaphore.signal() # 자원 반납 알림

뮤텍스는 자원 독점을 위해 잠금 기능을 수행하며, 세마포어는 가용 자원 개수를 관리하고 신호를 전달하는 방식으로 동작한다.

적용 기준

  • 단일 자원 독점 필요 시: 뮤텍스 적용
  • 다수 자원 관리 또는 실행 순서 조율 필요 시: 세마포어 적용

적절한 동기화 도구 선택은 시스템 안정성과 데이터 일관성 확보를 위해 필수적인 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts