2) 세마포(Semaphore)
* 열차의 진행/정지 신호(차단기)
* 네달란드의 다익스트라(Dijkstra)가 제안함
: 상호배제(Mutual Exclusion) 문제의 해결 방안
: 음이 아닌 정수 값을 갖는 플래그 변수
* 동기화 문제를 해결하기 위한 소프트웨어 기법
* 1개의 정수 변수와 두 개의 함수로 구성
: int value (초기값 = 1)
: P ( Proberen = test ) => acquire()
: V ( Verhogen = increment ) => release()
====================
void acquire() {value--;
if (value < 0) {
add this process to list;
block;
}
}
void release() {
value++;
if (value <= 0) {
remove a process P from list;
wakeup P;
}
}
댓글 없음:
댓글 쓰기