세마포어 (Semaphore)

1. 세마포어의 개념

정의시스템 공유 자원의 race condition 상태 방지 위해 P(), V()연산기반의 OS 레벨에서 수행하는 상호배제 기법
특징– 정수 형태의 변수 : 통상 S로 변수 정의
– OS 수준의 상호 배제 기법 : P, V연산 수행 통한 임계 구역 통제

2. 세마포어의 동작 원리와 유형

1) 세마포어의 동작 원리

연산
동작
설명
P연산 (Wait)S값 1 → 0 으로 변경임계영역 진입하며 S값 1개 차감
V연산 (Signal)S값 0 → 1로 변경임계영역에서 복귀하며 S값 1개 반환

2) 세마포어의 유형

유형목적내용
Binary Semaphore– 상호배제, 프로세스 동기화0 또는 1로 변수 구성
Count Semaphore– 초기에 동시 진행 가능한 프로세스 개수 정의정수 형태의 변수

3. 세마포어의 타이밍 오류와 모니터를 통한 해결방안

  • P(), V() 연산의 순서가 뒤바뀌는 경우 오류 발생 가능
  • Critical Section 종료 후 V() 연산 대신 P()연산 수행 시 오류 발생 가능
  • 모니터 내 정의한 함수만이 모니터 내에 지역적으로 선언된 변수들과 형식 매개변수에 접근 가능케 함으로써 상호 배제 구현

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다