동기화
-
[OS] Synchronization ProblemCS/Operating System 2021. 12. 1. 23:07
Semaphore를 사용하여 race condition이 발생할 수 있는 문제들을 해결해보자!!!!!! Bounded-Buffer Problem Bounded-Buffer Problem은 앞의 포스팅에서 봤던 Producer-Consumer Problem을 말한다. 이때 아이템을 생성하고 소비하는 데이터가 공유되기 때문에 race condition이 발생했다. 👉 Semaphore를 사용하여 해결한다. 조건 Producer와 Consumer 스레드를 가진다. N 크기의 buffer를 가진다. 공유 데이터 Semaphore mutex = 1 → critical section Semaphore full = 0 → buffer 안의 아이템의 수 Semaphore empty = N → buffer 안의 빈 슬롯..