实验二生产者消费者问题实践_第1页
实验二生产者消费者问题实践_第2页
实验二生产者消费者问题实践_第3页
实验二生产者消费者问题实践_第4页
实验二生产者消费者问题实践_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二生产者消费者问题实践【实验目的】配合操作系统课程的学习,加深对生产者与消费者问题的理解并熟悉VC 的使用。【实验学时】建议 2 学时【实验内容】利用信号量机制完成5 个生产者10 个消费者的同步。【实验原理】生产者消费者问题是把并发进程的同步和互斥问题一般化后得到的一个抽象的一般模型。首先同步问题: 消费者只有在有界缓冲区内有数据的时候才能进行消费,而生产者只能在有界缓冲区内有空间的时候才能够进行生产。其次,由于有界缓冲区是临界资源,所以生产者进程和消费者进程必须互斥。为此 ,本实验中设置了一个公用的信号量即“ ct”用来保证互斥的实现,它的初始值为1。另外为生产者和消费者分别设置了两个

2、私用信号量,分别为“ notem”和“ notfu ”。其中 “ notfu ”表示有界缓冲区中的空单元数,初始值为20;“ notem”表示有界缓冲区中非空单元数,初始值为 0。由于信号量的值只能通过P、V 原语来操作, 所以本实验中还定义了P、V 的有关操作。【实验要求】实现生产者、消费者的模拟函数 (produce、 consume),用它们来模拟生产者消费者问题。【实验步骤】1、 创建一个控制台类型的、名为P_C 的工程 (如图 5-1 所示)。 下一步选择简单应用(如图5-2 所示)。12、 在 P_C.cpp 文件中添加如下代码:23、 添加一个类,用于控制生产者消费者的状态。点击Insert-NewClass.类名为Monitor(如图5-3 所示)。34、 在 Monitor.h文件中添加如下代码:45、 在 Monitor.cpp 文件中添加如下代码:566、 在 Stdafx.h 文件中添加如下代码:7、 Build P_C.exe ,点击 Build 图标。 Output 输出如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论