好文档 - 专业文书写作范文服务资料分享网站

生产者与消费者问题实验报告

天下 分享 时间: 加入收藏 我要投稿 点赞

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

生产者与消费者问题实验报告

篇一:生产者和消费者问题实验报告 实 验 报 告

课程名称:操作系统 实验名称: 生产者和消费者问题 学号: 学生姓名: 班级:指导教师: 评分: 实验日期:XX年 10月 22 日

篇二:操作系统实验报告 经典的生产者—消费者问题 实验二 经典的生产者—消费者问题 一、目的

实现对经典的生产者—消费者问题的模拟,以便更好的理解经典进程同步问题。 二、实验内容及要求

编制生产者—消费者算法,模拟一个生产者、一个消费者,共享一个缓冲池的情形。

1、实现对经典的生产者—消费者问题的模拟,以便更好的理解此经典进程同步问题。生产者-消费者问题是典型的PV操作问题,假设系统中有一个比较大的缓冲池,生产者的任务是只要缓冲池未满就可以将生产出的产品放入其中,而消费者的任务是只要缓冲池未空就可以从缓冲池中拿走产品。缓冲池被占用时,任何进程都不能访问。 2、每一个生产者都要把自己生产的产品放入缓冲池,每个消费者从缓冲池中取走产品消费。在这种情况下,生产

1文档来源为:从网络收集整理.word版本可编辑.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

者消费者进程同步,因为只有通过互通消息才知道是否能存入产品或者取走产品。他们之间也存在互斥,即生产者消费者必须互斥访问缓冲池,即不能有两个以上的进程同时进行。 三、生产者和消费者原理分析

在同一个进程地址空间内执行两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。消费者线程从缓冲区中获得物品,然后释放缓冲区。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放一个空缓冲区。当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻挡,直到新的物品被生产出来。 四、生产者与消费者功能描述:

生产者功能描述:在同一个进程地址空间内执行两个线程。生产者线程生产物品,然后将物品放置在一个空缓冲区中供消费者线程消费。当生产者线程生产物品时,如果没有空缓冲区可用,那么生产者线程必须等待消费者线程释放出一个空缓冲区。

消费者功能描述:消费者线程从缓冲区获得物品,然后释放缓冲区,当消费者线程消费物品时,如果没有满的缓冲区,那么消费者线程将被阻塞,直到新的物品被生产出来。 五、实验环境

操作系统环境:Windows系统。 编程语言:C#。

2文档来源为:从网络收集整理.word版本可编辑.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

六、生产者与消费者的思路和设计 1、程序流程图 (1) 生产者 (2) 消费者 2、主要程序代码 //初始化变量

private void Form1_Load(object sender, EventArgs e){

mutex = 1;//互斥信号量

full = 0;//缓冲池中满缓冲区的数量 empty = 5;//缓冲池中空缓冲区的数量 count1 = 0;//生产的产品数目 i = 0;

lb_mutex.Text = \lb_full.Text = \

lb_empty.Text = \

//消费者从缓冲区中消费一个产品

private void consumer_Click(object sender,

EventArgs e) { if (full > 0)

{ //消费者已进入互斥临界区 if (mutex == 1) //申请进入临界区 {

mutex = 0; //消费者已进入互斥临界区 lb_mutex.Text = \

3文档来源为:从网络收集整理.word版本可编辑.

生产者与消费者问题实验报告

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.生产者与消费者问题实验报告篇一:生产者和消费者问题实验报告实验报告课程名称:操作系统实验名称:生产者和消费者问题学号:学生姓名:班级:指导教师:评分:实验日期:XX年10月22日篇二:操作系统实验报告经典
推荐度:
点击下载文档文档为doc格式
0jd147v5dx5nd0e7n2yj9vfqx3d4wu015vs
领取福利

微信扫码领取福利

微信扫码分享