- semapore
- 뮤텍스와 다른게 공유 자원에 하나 이상의 작업이 접근이 가능한 것
- 두 개 이상의 작업이 세마포어에 락을 걸거나 해제 가능
- 일반화된 뮤텍스를 말함
- 뮤텍스를 세마포어의 특수한 형태로도 볼 수 있음
- 뮤텍스의 계수기는 0과 1 두개 값만 가질수 있으므로 이진 세마포어 에 해당
- 간단한 정수 S와 두 가지 함수 wait(), signal()로 공유 자원(Shared Resource)에 대한 접근 처리
- 이를 통해 여러 프로세스가 동시에 임계 영역에 접근 가능
- S: 현재 쓸 수 있는 공유자원 수
- wait(): S를 1씩 감소. 음수가 된다면 공유 자원 못 쓰기에 프로세스는 차단되며, 대기열에 들어감(P())
- signal(): S를 1씩 증가. 공유 자원을 프로세스가 다 쓴 상태. 만약 S가 0 이하라면, 대기열에 있던 프로세스가 동작함(V())
- 이를 통해 여러 프로세스가 동시에 임계 영역에 접근 가능
- 종류
