티스토리 뷰

### 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 소비
}

 

반응형
공지사항
최근에 올라온 글