Mutex 와 Semaphore 는 모두 병행성 프로그래밍에서 상호배제를 달성하는 도구
- Mutex (뮤텍스):
- 한 번에 하나의 스레드만이 자원에 접근할 수 있도록 하는 동기화 메커니즘입니다.
- 이는 보통 크리티컬 섹션을 보호하거나 공유 자원에 대한 접근을 제어할 때 사용됩니다.
- Mutex는 잠금을 획득한 스레드만이 해당 자원을 사용할 수 있도록 합니다
- 세마포어 (Semaphore):
- 동시에 여러 스레드가 자원에 접근할 수 있는 허용 개수를 지정할 수 있는 동기화 기법입니다.
- Counting Semaphore 과 Binary Semaphore로 나뉘며, Counting Semaphore은 여러 자원을 제어할 수 있습니다.
- Semaphore는 초기값과 현재 값을 비교하여 스레드의 접근을 허용하거나 차단합니다
두 기법의 주요 차이
- Mutex : 단일 자원에 대한 접근을 보호
- Semaphore: 동시 접근 허용의 유연성을 제공
'컴퓨터 공학 > 운영체제' 카테고리의 다른 글
[OS] 경쟁상태 (Race Condition) (1) | 2024.06.19 |
---|---|
[ OS ] 문맥교환 (context switch) (0) | 2024.06.18 |
[ OS ] 시스템 콜 (system call) (0) | 2024.06.18 |