*목적 Race Condition방지, data corruption 방지 *Race condition 특정 접근 순서에 따라서 실행결과가 달라지는 경우 *silient corruption data corruption을 운이좋게 피해간 경우 *Non-preemptive kernel no race condition. 평균 대기시간 증가 *Critical Section process들이 공유변수들을 수정할수 있는 코드의 영역 *Critical Section Problem critical section에는 오직 한 process만 실행되도록 하는 문제 Requirement : 1) mutual exclusion : critical section에는 오직 한 process만이 실행될수 있다. 2) progress : 어떤 process가 임계영역에 들어가려 할때, 무기한 연기가 되어서는 안된다. 3) Bounded Waiting : 어떤 process가 임계영역에 들어가기 위해 대기하는 시간은 유한해야한다. 구현방법: Static Alternation progress requirement를 만족하지 않음. 한 프로세스가 실행되고나서 다른 process가 실행되기 전까지는 무기한 연기됨. Peterson’s algorithm progress, Bounded waiting 모두 만족 Special H/W instruction atomic operation을 코드로 구현하는 것이 아니라, 하나의 instruction으로 구현. Mutex Locks critical section 문제를 해결하기 위한 SW tool 문제점 : busy waiting이 발생함 bush waiting이란 instruction을 수행하면서 기다림(CPU cycle 낭비) 해결책 : 1) process를 semaphore의 waiting queue에 넣고 wait state...