Mutual Exclusion (상호 배제)
Progress (진행)
Bounded Waiting (유한 대기)
⇒ 모든 프로세스의 수행 속도는 0보다 크며, 상대적 수행속도는 가정 X
1.
do{
while (turn != 0); /* 내 프로세스의 차례 */
/* [임계구역] */
turn = 1; /* 다른 프로세스의 차례 */
/* [나머지 구역] */
} while(1);
turn이라는 변수를 가지고 자기 차례에만 임계구역에 들어가게된다.
⇒ Mutual Exclusion(상호배제)를 만족한다.
하지만, 프로세스 간의 임계구역에 들어가야하는 횟수가 다르다면 문제가 생기게 된다.