实验一模板

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验报告
专业班级学号姓名
课程名称操作系统学年2010-2011 学期
课程类别专业必修■限选□任选□实践□实验时间2010年月日
实验名称
实验一:生产者与消费者问题
实验目的和要求
全面理解生产者与消费者问题模型,掌握解决该问题的算法思想,正确使用同步机制。

实验软硬件要求
XXXXCPU XXXXX内存
WINDOWS XP Professional
Visual C++
实验内容、方法和步骤(可附页)
问题描述:一组生产者向一组消费者提供商品,共享一个有界缓冲池,生产者向其中放入商品,消费者从中取得商品。

假定这些生产者和消费者互相等效,只要缓冲池未满,生产者可将商品送入缓冲池;只要缓冲池未空,消费者可从缓冲池取走一商品。

功能要求:根据进程同步机制,编写一个解决上述问题的程序,可显示缓冲池状态、放商品、取商品等过程。

具体参数:有X个生产者进程,分别为P1、P2、。

P x-1和P x;
有X个消费者进程,分别是C1、C2、。

C x-1和C x;
缓冲区单元个数N=15;
不同的生产进程可生产不同的产品,自己可任意定义,在本程序中是直接将相应生产者代号放入缓冲区,消费时将某消费者消费某生产者的信息显示出来
实验结果(可附页)
附页
小结
评定成绩:批阅教师:年月日
一、问题概述
一组生产者向一组消费者提供消息,它们共享一个有界缓冲池,生产者向其中投放消息,消费者从中取得消息。

假定这些生产者和消费者互相等效,只要缓冲池未满,生产者可将消息送入缓冲池;只要缓冲池未空,消费者可从
缓冲池取走一个消息。

二、设计流程图
主要流程:

阻塞为空?

缓冲区状态?

阻塞队列有生
产者?

生产否
就绪队列第一
个是生产者?是
生产否
结束

阻塞队列消费
者?

消费否
就绪队列第一
个是消费者?是
消费否
结束


阻塞队列第一个生产/消费
三、数据定义
MyArray=array[0..14] of string;
hcdl,zsdl,jxdl:MyArray; //定义缓冲队列、阻塞队列和就绪队列,大小为15 function sta(dl:MyArray):string;
//函数:判断指定队列空、满或有值
function searchPC(pc:string;dl:MyArray):integer; // 函数:从指定列找出生产者或消费者进程,返回该元素在阻塞队列的序号
function dlval(dl:MyArray;pos:integer):string; //函数,得到指定队列指定元素的内容,并判断其类型 procedure PC(var dl:MyArray;pos:integer); //过程,根据参数所指定的队列和元素进行生产或消费 procedure ZS(var dl:MyArray;pos:integer);
// 过程,将指定队列中指定元素送入阻塞队列
结束
阻塞为空?

子就绪队列空?


就绪队列第一
个是消费者?

生产

阻塞
缓冲队列状
态?


其它
就绪队列 第一个
生产/消费
就绪队列第一个是生产者?

阻塞

消费
四、源程序
五、运行结果。

相关文档
最新文档