spinlocks의 대안
sleep() - 프로세스를 블락하는 시스템 콜
wakeup() - 블락된 프로세스를 깨우는 시스템 콜
busy waiting 하지 않음
Producer-consumer problem
N이 되면 sleep()1이 되면 wakeup(consumer)0이 되면 sleep()N-1이 되면 wakeup(producer)문제점?
if문에서 멈추면 둘 다 sleep() 해서 데드 락→ 아토믹 X
down(semaphore)
waitup(semaphore)
→ 아토믹 액션
Binary semaphore
Counting semaphore
Producer-consumer problem
mutexfullempty