강의지원 게시판

[OS] Producer-Consumer 답안 & 추가 문제

O S
작성자
ASL @ KAU ASL @ KAU
작성일
2015-04-18 00:55
조회
1041

주어진 예시 코드에서, 2개의 Consumer thread가 번갈아가면서 한번씩 item을 소비하게 만드는 문제였습니다.

첨부파일의 wqueue.h에 remove부분을 보시면 됩니다.
 


추가문제


전제조건 : Producer thread가 2개, Consumer thread가 3개 있다.


1. Queue의 크기가 언제나 1이게 만들 것

(정확히 말하면 Producer가 item을 1개 생성했다면, Consumer가 소비할 때 까지 기다린다.)


2. Producer도 번갈아가면서 item을 생성하게 할 것.


3. Producer 1이 생성하는 item은 Consumer 1, 2만 소비하고,

    Producer 2가 생성하는 item은 Consumer 3만 소비하게 할 것.

(단, 모든 Thread는 Queue는 공유한다.)


추가적인 자료구조를 사용하지 말고, Mutex와 Condition Variable을 적당히 활용하여, 순차적으로 문제를 해결해보도록 하세요.



+ pthread 라이브러리를 사용하여 thread를 돌리는걸 직접 해 보시기 바랍니다.