2022年生产者消费者问题设计与实现.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年生产者消费者问题设计与实现.pdf》由会员分享,可在线阅读,更多相关《2022年生产者消费者问题设计与实现.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统课程设计任务书学院计算机与信息工程专业计算机科学与技术课程名称操作系统题目生产者消费者问题设计与实现完成期限自 2015 年 6 月 23 日至 2015 年 6 月 29 日共 1 周内容及任务一、项目的目的1.理生产者消费者问题基本概念和工作原理,以及实现技术;2.理解并掌握生产者消费者问题相关算法,以及它的实现方法;3.掌握在 eclipse环境下,系统开发的基本步骤和方法;4.掌握在 eclipse 环境下,设计和开发一个简单的生产者消费者问题系统来模拟操作系统中生产者消费者问题。二、项目任务的主要内容和要求1.精读并理解和掌握生产者消费者问题;2.编写程序来模拟生产者消费者问
2、题的实现;3.编写应用程序测试生产者消费者问题,并显示结果。三、项目设计(研究)思路本课程设计的基本思路是, 首先理解和掌握生产者消费者问题的基本思想和原理,然后根据理解的基本思想和原理编程实现生产者消费者问题,最后通过数据分析生产者消费者问题。四、具体成果形式和要求成果:生产者消费者问题程序语言实现;设计说明书。要求:编写好的生产者消费者问题程序能够正确启动运行;设计说明书规范、合理。进度安排起止日期工作内容至熟悉相关内容至系统设计和实现至系统实现和撰写相关文档精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - -
3、-第 1 页,共 13 页 - - - - - - - - - - 主要参考资料1.计算机操作系统 汤子瀛哲凤屏汤小丹主编西安电子科技大学出版社.2.计算机操作系统概论陈宏杨忠耀主编重庆邮电大学出版社 .3.计算机操作系统基本知识廖成崔阳 主编 电子工业出版社 .4.操作系统实现与设计陆刚望能主编电子工业出版社 .5.java程序语言设计丁振凡主编,薛清华副主编清华大学出版社.指导教师意见(签字) :年月日系 (教研室)主任意见(签字) :年月日精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共
4、13 页 - - - - - - - - - - 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 13 页 - - - - - - - - - - 目录1.选题背景 . 错误!未定义书签。2.设计思路 . 错误!未定义书签。3.过程讨论 . 错误!未定义书签。4.结果分析 . 错误!未定义书签。5.结论 . 错误!未定义书签。参考文献 . 错误!未定义书签。致谢 . 错误!未定义书签。附录 . 错误!未定义书签。指导教师评语 . 错误!未定义书签。成绩评定 . 错误!未定义书签。精品资料 -
5、- - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 13 页 - - - - - - - - - - 1.选题背景生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库, 生产者可以将产品放入仓库, 消费者则可以从仓库中取走产品。解决生产者 /消费者问题的方法可分为两类:(1)采用某种机制保护生产者和消费者之间的同步;(2)在生产者和消费者之间建立一个管道。第一种方式有较高的效率,并且易于实现,代码的可控制性较好,属于常用的模式。第二种管道缓冲区不易控制,被传输数据对象不易于封装等
6、,实用性不强。因此本文只介绍同步机制实现的生产者/消费者问题。同步问题核心在于:如何保证同一资源被多个线程并发访问时的完整性。常用的同步方法是采用信号或加锁机制,保证资源在任意时刻至多被一个线程访问。 Java语言在多线程编程上实现了完全对象化,提供了对同步机制的良好支持。在 Java中一共有四种方法支持同步,其中前三个是同步方法,一个是管道方法。2设计思路.生产者消费者问题是一种同步问题的抽象描述。计算机系统中的每个进程都可以消费或生产某类资源。当系统中某一进程使用某一资源时,可以看作是消耗,且该进程称为消费者。而当某个进程释放资源时,则它就相当一个生产者3.过程论述首先,生产者和消费者可能
7、同时进入缓冲区,甚至可能同时读/写一个存储单元,将导致执行结果不确定。这显然是不允许的。所以,必须使生产者和消费者互斥进入缓冲区。即某时刻只允许一个实体(生产者或消费者)访问缓冲区,生产者互斥消费者和其他任何生产者。其次, 生产者不能向满的缓冲区写数据, 消费者也不能在空缓冲区中取数据,即生产者与消费者必须同步。当生产者产生出数据,需要将其存入缓冲区之前,首先检查缓冲区中是否有“空”存储单元,若缓冲区存储单元全部用完,则生产者必须阻塞等待,直到消费者取走一个存储单元的数据,唤醒它。若缓冲区内有“空”存储单元,生产者需要判断此时是否有别的生产者或消费者正在使用缓冲区,若是有,则阻塞等待,否则,获
8、得缓冲区的使用权,将数据存入缓冲区,释放缓冲区的使用权。 消费者取数据之前, 首先检查缓冲区中是否存在装有数据的存储单元,若缓冲区为“空” ,则阻塞等待,否则,判断缓冲区是否正在被使用,若正被使用,若正被使用,则阻塞等待,否则,获得缓冲区的使用权,进入缓冲区取数据,释放缓冲区的使用权。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 13 页 - - - - - - - - - - 系统流程图生产者流程图:消费者流程图:精品资料 - - - 欢迎下载 - - - - - - - - - - -
9、欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 13 页 - - - - - - - - - - 主程序流程图:生产者 :ProducerThread 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 13 页 - - - - - - - - - - roduct = -1;pBufferi.hasProduct = false; roduct; roduct = 0; asProduct = false; roduct = productNo; asProduct =
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 生产者 消费者 问题 设计 实现
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内