티스토리 뷰
운영체제/이론
(34) Bounded Buffer Problem (Synchronization Problems)
geonwoopaeng@gmail.com 2020. 9. 24. 21:23### 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);
wait(mutex);
// buffer에 next_produced 추가
signal(mutex);
signal(full);
}
// consumer process
while (true){
wait(full);
wait(mutex);
// buffer에서 next_consumed 제거
signal(mutex);
signal(empty);
// next_consumed에서 item 소비
}
반응형
'운영체제 > 이론' 카테고리의 다른 글
(36) Dining Philosophers Problems (철학자들의 만찬 문제) (Synchronization Problems) (0) | 2020.09.24 |
---|---|
(35) Readers and Writers Problem (Synchronization Problems) (0) | 2020.09.24 |
(33) Synchronization Problems (0) | 2020.09.24 |
(32) Mutex Lock & Semaphore (0) | 2020.09.23 |
(31) Hardware Support Synchronization (0) | 2020.09.23 |
공지사항
최근에 올라온 글