<기본미션 | p.304 1번 >
semaphore의 wait 함수는 사용할 수 있는 resource가 없으면 process를 대기 상태로 만든다. (busy waiting X)
<추가미션 >
*critical section : 둘 이상의 thread가 동시에 shared resource에 접근X, 독점을 보장하는 영역
*mutual exclusion : 둘 이상의 process가 critical section에 진입하는 것을 방지. race condition을 막아줌.
💟 process synchronization
process들 사이의 수행 시기를 맞추는 것
✔ 실행 순서 제어를 위한 synchronization
✔ mutual exclusion - Shared resource, critical section, race condition, Producer & consumer problem
*mutual exclusion을 위한 3가지 원칙: mutual exclusion, progress, bounded waiting
💟 mutex lock
lock, acquire, release
💟 semaphore
shared resource가 n개, wait, signal
💟 monitor
shared resource를 다루는 interface에 접근하기 위한 queue를 만들고, monitor 안에 하나의 process만 들어오도록 mutual exclusion을 위한 synchronization 제공
💟 Dining philosphers problem
💟 Deadlock 발생 조건
💟 Deadlock 해결방법