세마포어
I. 공유 자원 동기화의 핵심 기법, 세마포어의 개요
| 구분 | 내용 |
|---|
| 정의 | 여러 프로세스나 스레드가 공유 자원에 동시 접근 제어를 위해 정수형 변수와 두개의 원자적 연산 기반 동기화 도구임 |
| 특징 | - 카운팅 기능 - 원자성 - 소유권 없음 |
II. 세마포어의 메커니즘 및 핵심 구성요소
가. 세마포어의 동작원리
- P(S) 연산 : 음수인 경우 대기 큐에서 대기함.
- V(S) 연산 : 자원 사용 완료 후 값을 증가시킴.
나. 세마포어 핵심구성 요소 및 기법
| 분류 | 기술 | 설명 |
|---|
| 변수유형 | - Counting Semaphore | - 정수값 범위 무제한 |
| - Binary Semaphore | - 0과 1값만 가짐 |
| 핵심연산 | - P(Wait/Down) | - 자원 점유 시도 |
| - V(Signal/Up) | - 자원 반납 |
| 운영체제 | - Wait Queue | - 대기하는 Queue |
| - Atomic Op | - 하드웨어 수준 연산 |
| 부작용관리 | - Priority Inversion | - Priority Inheritance |
III. 세마포어와 뮤텍스 비교 및 최신 동향
| 비교 항목 | 세마포어 | 뮤텍스 |
|---|
| 동기화 대상 | 자원개수 관리 | 단일공유 자원 |
| 소유권 | 없음 | 있음 |
| 동작범위 | 광범위 | 프로세스내 스레드 |
| 주요목적 | 시그널링, 할당관리 | 상호배제 |
- Lock-free / Wait-free 아키텍처
- 하드웨어 가속 동기화, eBPF 기반 관측성