synchronization 문제의 여러 유형들이 존재한다.bounded-buffer problemreaders and writers problem : schedulingdining-philosophers problem : deadlockBounded-buffer problemProducer consumer problembuffer를 shared memory로 사용하면서 발생하는 문제 기존 buffer memory를 shared memory로 사용하기 때문에 해당 부분을 동기화시켜줘야 한다.하지만 이 외에도 producer는 buffer가 꽉 차있으면 더 이상 쓰면 안되고, consumer는 buffer가 비어있으면 더 이상 읽으면 안된다는 특징이 있다. 따라서 각 producer와 comsumer는 현..
process synchronization
Background서로 다른 process가 shared data에 동시에 접근하게 되는 경우 문제가 발생할 수 있다.위와 같이 여러 process가 동시에 동일한 데이터에 접근하게 되는 상황을 Race condition이라고 한다.위의 c언어로 한 줄 짜리 코드를 실행하더라도 assambly어로 여러줄로 번역된다.따라서 위의 assambly어를 교차로 실행하게 되면 한쪽의 연산 결과가 반영되지 않게 된다. 이러한 race conditions을 방지하기 위해 process 간의 synchronization이 필요synchronization이란 서로가 상대를 인지한 상태로 동작하는 것을 의미이러한 synchronization은 os의 안정성을 높히지만 효율성은 낮추게 된다.효율성(efficiency/spe..