2025-11-03 01:02
Tags: 운영체제
세마포어
- 여러 프로세스나 스레드가 공유 자원에 동시에 접근하는 것을 제어하기 위한 동기화 도구다.
- 한 번에 하나의 스레드만 임계 구역에 진입하도록 보장하는 ‘상호 배제(Mutual Exclusion)‘를 구현하는 것
- 정수형 변수]와 대기 큐로 구성되며,
wait와signal이라는 원자적 연산을 통해 자원의 가용 상태를 관리한다.
| 특징 | 뮤텍스 (Mutex) | 세마포어 (Semaphore) |
|---|---|---|
| 소유권 | 잠금을 획득한 스레드만이 해제할 수 있음 | 잠금을 획득한 스레드가 아니어도 해제할 수 있음 |
| 목적 | 상호 배제 (자원 보호) | 상호 배제 + 실행 순서 제어 |
| 상태 | 잠김 / 잠기지 않음 (Locked/Unlocked) | 카운터 값 (정수) |
| 스코프 | 주로 스레드 간 동기화에 사용 | 프로세스 간 동기화에도 사용 가능 (System-wide) |