상호 배제(Mutual Exclusion)를 위한 OS에서 제공하는 동기화 기법으로는 Spin Lock, Mutex, Semaphore가 있다 단순히 Race Condition을 피하기 위한 상호 배제만 달성할 뿐이지, 데드락(Deadlock)이나 기아(Starvation)을 발생시킬 수도 있다 Spin Lock - lock을 얻고자 하는 쓰레드가 CPU점유를 다른 쓰레드에 내주지 않고, 계속해서 lock을 얻을 수 있는지 무의미한 루프를 돌면서(busy wait) 체크하는 방법이다. 다른 쓰레드에게 CPU점유를 내주지 않으니 Context Switching을 함으로써 생기는 오버헤드가 없다는 장점이 있지만, lock을 얻기전까지 쓸데 없는 루프를 돌면서 CPU를 점유하는데, 그 점유를 다른 쓰레드에게 ..