김원빈 개발 블로그

세마포어 본문

시험공부/운영체제

세마포어

GAMBALL 2018. 11. 27. 16:10

1. 세마포어


세마포어 


- 시그널을 위해 사용되는 특수 변수들.



연산


- 세마포어 초기화 : 세마포어는 음이 아닌 값으로 초기화된다.


- semWait 연산 : 세마포어 값을 감소시킨다. 만일 값이 음수가 되면 semWait을 호출한 프로세스는 블록된다.


- semSignal 연산 : 세마포어 값을 증가시킨다. 만약 값이 양수가 아니면, swmWait연산에 의해 블록된 프로세스들을 깨운다.



지적점


일반적으로 프로세스가 세마포어를 감소시키기 전까지는 프로세스가 블록될지 아닐지 알 수 없다.


프로세스가 세마포어를 증가시키고 블록되어 있던 프로세스를 깨우면 이 두 프로세스 모두 수행 가능 상태가 된다. 단일 처리기 시스템에서 누가 먼저 수행될 지 알 수 없다.


세마포어에 시그널을 보낼 때 우리는 다른 프로세스가 대기 중인지 여부를 알 필요가 없다. 즉 블록되어 있는 프로세스의 개수는 0 또는 1일 수 있다.



'시험공부 > 운영체제' 카테고리의 다른 글

자원 할당 그래프  (0) 2018.11.27
모니터  (0) 2018.11.27
상호배제 기계 명령어 접근 방법의 특성  (0) 2018.11.27
상호 배제 요구조건  (0) 2018.11.27
병행성 용어 정리  (0) 2018.11.27