1 实验问题描述
以生产者-消费者模型为基础,在Windows环境下创建一个控制台进程,在该进程中创建读者写者线程模拟生产者和消费者。
Writer线程写入数据,然后将数据放置在一个空缓冲区buffer中供Reader线程读取。Reader线程从缓冲区中获得数据,然后释放缓冲区buffer。
当Writer线程写入数据时,如果没有空缓冲区可用,那么Writer线程必须等待Reader线程释放出一个空缓冲区。
当Reader线程读取数据时,如果没有满的缓冲区,那么读入线程将被阻塞,直到新的数据被写进去。
输入
N:缓冲区大小(取16)
输出
按照以下格式输出每一次生产和消费过程,如:
write/read | content | index | production num |
write | --- | 0 | 1 |
read | --- | 0 | 0 |
------ | ---- | --- | --- |
2 测试数据
N = 16
3 流程图
Test-and-Set
Mutex
Empty&Full
Empty&Full&Mutex
4 实验结果
Test-and-Set
Mutex
Empty&Full
Empty&Full&Mutex
5 实验代码
OS-Experiments/exp2 at main · Jackkee27/OS-Experiments