강의지원 게시판

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

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

주어진 예시 코드에서, 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를 돌리는걸 직접 해 보시기 바랍니다.