세마포어, 뮤텍스, 모니터, 임계구역
출제 빈도: ★★★★★ | 기출: ★132회
답안.
Ⅰ. 개요
세마포어(Semaphore): 정수 값을 가진 동기화 도구. P(Wait) 연산으로 감소, V(Signal) 연산으로 증가. 다중 자원 접근 제어 가능. 뮤텍스(Mutex): 상호배제(Mutual Exclusion)를 위한 이진 잠금. 소유권 개념 존재 (획득한 스레드만 해제 가능). 모니터(Monitor): 고급 언어 수준의 동기화 구조. 조건변수(condition variable)와 함께 사용.
Ⅱ. 핵심 구성요소
I. 임계구역 문제와 동기화 필요성
- 경쟁 조건 (Race Condition): 실행 순서에 따라 결과 달라짐
- 임계구역 (Critical Section): 공유 자원 접근 코드 영역
- 3가지 요구 조건: 상호배제, 진행, 한정 대기
II. 세마포어 (Semaphore)
[이진 세마포어] sem = 1
P(sem): sem > 0이면 sem--, else 대기
V(sem): sem++, 대기 중 프로세스 깨움
[계수 세마포어] sem = N (자원 수)
→ N개의 자원 풀 관리 가능
[생산자-소비자 문제]
empty = N (버퍼 빈 슬롯)
full = 0 (버퍼 찬 슬롯)
mutex = 1 (버퍼 접근 상호배제)
생산자: P(empty) → P(mutex) → 생산 → V(mutex) → V(full)
소비자: P(full) → P(mutex) → 소비 → V(mutex) → V(empty)
III. 뮤텍스 vs 세마포어
| 항목 | 뮤텍스 | 세마포어 |
|-----------|--------------------|--------------------|
| 소유권 | 있음 (획득 스레드만 해제) | 없음 |
| 타입 | 이진 (0/1) | 이진/계수 |
| 재귀 획득 | 가능 (재귀 뮤텍스) | 불가 (교착 위험) |
| 주 목적 | 상호배제 | 자원 개수 제어 |
해당 키워드의 기술적 구성요소와 동작 원리를 서술한다.
### Ⅲ. 특징 및 비교
핵심 기술의 장단점과 유사 기술과의 차이를 분석한다.
### Ⅳ. 적용 사례
실무 환경에서의 적용 사례와 기대효과를 제시한다.
### Ⅴ. 전망
최신 기술 동향과 향후 발전 방향을 서술한다.