- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统课程设计(一号黑体加粗)
用多进程同步方法解决生产者-消费者问题
(小二黑体加粗)
院 系: 信息工程学院
班 级: 信工(2)班
学 号: XXXXXXXX
姓 名: XX
同 组 者: 本人
时 间: 2011/12/8
目录(小二黑体加粗)
操作系统课程设计(一号黑体加粗) 1
目录(小二黑体加粗) 2
一、题目:(标题2,即三号黑体加粗) 2
二、设计目的: 3
三、总体设计思想概述: 3
四、说明: 3
五、设计要求: 3
六、设计方案: 3
七、流程图: 3
八、运行结果 4
九 源程序 6
十、总结 10
十一、参考文献 11
一、题目:(标题2,即三号黑体加粗)
用多进程同步方法解决生产者-消费者问题。
二、设计目的:
通过研究Linux 的进程机制和信号量实现生产者消费者问题的并发控制。
三、总体设计思想概述:
生产者—消费者问题是一种同步问题的抽象描述。
计算机系统中的每个进程都可以消费或生产某类资源。当系统中某一进程使用某一资源时,可以看作是消耗,且该进程称为消费者。
而当某个进程释放资源时,则它就相当一个生产者。
四、说明:
有界缓冲区内设有20个存储单元,放入/取出的数据项设定为1-20这20个整型数。
五、设计要求:
1、每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容,当前指针位置和生产者/消费者进程的标识符。
2、生产者和消费者各有两个以上。
3、多个生产者或多个消费者之间须有共享对缓冲区进行操作的函数代码。
六、设计方案:
1、生产者仅仅在仓储未满时候生产,仓满则停止生产。 2、消费者仅仅在仓储有产品时候才能消费,仓空则等待。 3、当消费者发现仓储没产品可消费时候会通知生产者生产。 4、生产者在生产出可消费产品时候,应该通知等待的消费者去消费。 此模型将要结合java.lang.Object的wait与notify、notifyAll方法来实现以上的需求。
八、运行结果
1、截图一:
生产者线程开始生产、消费者线程随后消费及生产者或消费者执行生产操作后缓冲区当前状态的截图:
2、截图二:
缓冲区已满,信号量empty0生产者线程进入等待队列的截图:
上图的辅助解释图:
缓冲区的20个存储单元满时缓冲区的状态的截图:
3、截图三:
生产者线程ProducerThread_0完成自己的任务后,该线程撤销的截图:
4、截图四:
消费者执行消费操作后的缓冲区的状态的部分截图:
5、截图五:
生产消费完毕的截图:
九 源程序
/**
* @(#)ProducerConsumer.java
*
*
* @author
* @version 1.00 2011/12/12
*/
class Buffer { // 有界缓冲区
int [] array = new int[21]; // 设置缓冲区的大小为20个存储单元
int full = 0; // 缓冲区里产品的数目 初始值为0
int empty = 20; // 缓冲区里还剩空位置的数目 初始值为20
//int empty = array.length;
public synchronized void push(int i) { // 生产数据项操作,即P操作(通过syschoronized实现有节缓冲区的互斥操作)
while (empty == 0) {
try {
System.out.println(缓冲区已满,生产者线程进入等待队列);
this.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
notify();
System.out.println(Thread.currentThread().getName() + 生产: +i);
full++;
em
您可能关注的文档
- 课程设计---基于AT89S52单片机数字音乐盒设计.doc
- 课程设计---基于DS18B20的单片机温度采集系统.doc
- 课程设计---基于LCD的电子时钟设计.doc
- 课程设计---基于MATLAB的FIR滤波器设计.doc
- 课程设计---圆锥-圆柱斜齿轮二级减速器.doc
- 课程设计---基于UML的图书管理系统建模.doc
- 课程设计---基于SIMULINK的2ASK频带传输系统的仿真.doc
- 课程设计---基于TMS320F2812 DSP处理器的信号仪的设计与实现.doc
- 课程设计---基于Pro-E的三维造型与模具分模.doc
- 课程设计---基于单片机的数字式秒表的设计.doc
- 数字艺术展览个性化定制服务创新报告.docx
- 一体化压铸车身制造行业发展趋势预测及战略布局建议报告.docx
- 2024年项目管理中的创新模式考题及答案.docx
- 2024年项目管理中的合理分配问题试题及答案.docx
- 2025年云原生架构在企业敏捷开发与部署中的安全性探讨报告.docx
- 基于社交媒体的2025年传媒行业跨文化传播策略与传播效果研究.docx
- 海洋生态修复工程长期监测与2025年海洋生态系统修复技术优化.docx
- 城市慢行交通系统智能化升级,2025年自行车与步行交通绿色出行研究报告.docx
- 拉萨xx风电场建设项目可行性研究报告(参考).docx
- 乡村振兴文旅示范行业发展趋势预测及战略布局建议报告.docx
文档评论(0)