### Bounded Buffer Problem ### : 유한 buffer 문제 : 생산자와 소비자 문제(생상자가 data를 buffer에 넣고 소비자가 buffer에서 data를 읽는다) : pool/buffer cache (1개의 buffer에는 1개의 item을 저장할 수 있다) int n; // mutual exclusion을 해결하기 위한 semaphore 변수들 semaphore mutex = 1; //lock 담당, 제공하는 역할 semaphore empty = n; //buffer 상태 semaphore full = 0; //buffer 상태 // producer process while (true) { // next_produce에서 item 생성 wait(empty); wa..
### Synchronization Problems ### - Disabling interrupt : process가 shared data에 접근하는 동안에는 interrupt/systemcall이 걸리지 않게 비활성화 시키는 것 - Atomic instruction(test-and-set, compare-and-swap) : 값을 수정하는 동안에 다른 instruction이 수행이 되지 않게 하는 것(cpu 차원 지원-하드웨어 기반) : 다른 기법과 연관되서 사용한다. - Mutex lock : process가 critical section에 접근하면 lock을 걸어 다른 process가 접근 하지 못하게 하는 것 - Semaphore : 일반화된 mutex lock(2진 lock) + 정수..