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