欢迎来到天天文库
浏览记录
ID:60357957
大小:319.68 KB
页数:7页
时间:2020-12-05
《实验二生产者消费者问题实践.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二生产者消费者问题实践【实验目的】配合操作系统课程的学习,加深对生产者与消费者问题的理解并熟悉VC的使用。【实验学时】建议2学时【实验内容】利用信号量机制完成5个生产者10个消费者的同步。【实验原理】生产者消费者问题是把并发进程的同步和互斥问题一般化后得到的一个抽象的一般模型。首先同步问题:消费者只有在有界缓冲区内有数据的时候才能进行消费,而生产者只能在有界缓冲区内有空间的时候才能够进行生产。其次,由于有界缓冲区是临界资源,所以生产者进程和消费者进程必须互斥。为此,本实验中设置了一个公用的信号量即“ct”用来保证互斥的实现,它的初始值
2、为1。另外为生产者和消费者分别设置了两个私用信号量,分别为“notem”和“notfu”。其中“notfu”表示有界缓冲区中的空单元数,初始值为20;“notem”表示有界缓冲区中非空单元数,初始值为0。由于信号量的值只能通过P、V原语来操作,所以本实验中还定义了P、V的有关操作。【实验要求】实现生产者、消费者的模拟函数(produce、consume),用它们来模拟生产者消费者问题。【实验步骤】1、创建一个控制台类型的、名为P_C的工程(如图5-1所示)。下一步选择简单应用(如图5-2所示)。12、在P_C.cpp文件中添加如下代码:2
3、3、添加一个类,用于控制生产者消费者的状态。点击Insert->NewClass.类名为"Monitor"(如图5-3所示)。34、在Monitor.h文件中添加如下代码:45、在Monitor.cpp文件中添加如下代码:566、在Stdafx.h文件中添加如下代码:7、BuildP_C.exe,点击Build图标。Output输出如下所示,则P_C工程建立完毕。8、运行P_C.exe。点击!图标。7
此文档下载收益归作者所有