세마포어

I. 공유 자원 동기화의 핵심 기법, 세마포어의 개요

구분내용
정의여러 프로세스나 스레드가 공유 자원에 동시 접근 제어를 위해 정수형 변수와 두개의 원자적 연산 기반 동기화 도구임
특징- 카운팅 기능
- 원자성
- 소유권 없음

II. 세마포어의 메커니즘 및 핵심 구성요소

가. 세마포어의 동작원리

A 프로세스 P(S) 실행 if S < 0 sleep Wait Queue 세마포어 변수 Value : S B 프로세스 V(S) 실행 if S ≤ 0 wake up Ready Queue - 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 기반 관측성