CS

[CS]뮤텍스와 세마포어

programmer-faust 2025. 8. 28. 04:35
  • 순서
    1. 뮤텍스란?
    2. 뮤텍스의 특징
    3. 세마포어란?
    4. 세마포어의 특징
    5. 공통 개념
    6. 뮤텍스와 세마포어 비교
  • 뮤텍스란?
    1. Mutual Exclusion
    2. 한 번에 하나의 스레드만 접근 가능함
    3. 임계영역을 보호하는 용도이다.
  • 뮤텍스의 특징
    1. 1:1 접근 제어로 동시 접근이 불가함
    2. 소유권 개념으로 잠근 스레드만 해제 가능함
    3. 재진입 가능 여부
      • 일반 Mutex: 소유자가 아니면 재진입 불가 > 데드락 가능
      • Recursive Mutex: 소유자가 재진입 가능
  • 세마포어란?
    1. 동시 접근 가능한 스레드 수를 카운트로 관리
    2. 카운트 = 1이면 뮤텍스와 동일하게 동작 > Binary Semaphore
    3. 카운트 > 1이면 여러 스레드가 동시에 접근 가능 > Counting Semaphore
  • 세마포어의 특징
    1. 여러 스레드 허용 가능 > 임계영역 공유 가능
    2. 소유권 없음 > unlock은 다른 스레드가 해도 가능함
    3. 주로 자원 개수 제한에 사용함.
  • 공통 개념
    1. 둘 다 멀티스레드 환경에서 공유 자원을 보호하는 동기화 도구
    2. 목적: 동시 접근으로 인한 데이터 손실 방지
    3. 차이는 잠금 단위와 허용 가능한 동시 접근 수에 있음.
  • 뮤텍스와 세마포어 비교
구분 뮤텍스 세마포어
접근 가능 스레드 수 1 N(1 이상)
소유권 있음 없음
사용 목적 임계영역 보호 지원 개수 제한, 임계영역 보호
데드락 가능성 있음 관리 잘못 시 있음

'CS' 카테고리의 다른 글

[CS] RVO  (0) 2025.09.05
[CS] TCP/UDP  (0) 2025.09.03
[CS]리틀 엔디안과 빅 엔디안  (1) 2025.08.28
[CS]스택 오버 플로우  (2) 2025.08.28
[CS]busy-waiting  (3) 2025.08.28