세마포어, 뮤텍스, 모니터, 임계구역

출제 빈도: ★★★★★ | 기출: ★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)         | 이진/계수        |
   | 재귀 획득  | 가능 (재귀 뮤텍스)  | 불가 (교착 위험)  |
   | 주 목적    | 상호배제            | 자원 개수 제어   |


해당 키워드의 기술적 구성요소와 동작 원리를 서술한다.

### Ⅲ. 특징 및 비교

핵심 기술의 장단점과 유사 기술과의 차이를 분석한다.

### Ⅳ. 적용 사례

실무 환경에서의 적용 사례와 기대효과를 제시한다.

### Ⅴ. 전망

최신 기술 동향과 향후 발전 방향을 서술한다.