인터럽트를 disable
lock 전역변수

1 이면 문을 닫음0 이면 들어갈 수 있음→ 문제점) lock 에 1 을 할당받기 전에 멈춘다면? 여러 프로세스가 들어올 수 있다..
Strict Alteration
lock 변수가 변하기를 기다리는 것while (TRUE) {
while (turn != 0) /* loop */
critical_region();
turn = 1;
noncritical_region();
}
while (TRUE) {
while (turn != 1) /* loop */
critical_region();
turn = 0;
noncritical_region();
}
→ 문제점) progress 조건 만족 X
Peterson’s Solution
집에서 읽어보세요 ~~.~~~spi