操作系统生产者消费者算法.doc

操作系统生产者消费者算法.doc

ID:50865262

大小:82.00 KB

页数:4页

时间:2020-03-15

操作系统生产者消费者算法.doc_第1页
操作系统生产者消费者算法.doc_第2页
操作系统生产者消费者算法.doc_第3页
操作系统生产者消费者算法.doc_第4页
资源描述:

《操作系统生产者消费者算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、经典进程同步问题——生产者消费者问题一、基本原理进程同步是多道程序环境下一个十分重要的问题,而生产者消费者问题则是经典的进程同步问题之一。它是相互合作进程关系的抽象,描述了一组生产者向一组消费者提供产品,共享一个有界缓冲池,生产者向其中投入产品,消费者从中取得产品。       程序假设缓冲池中的缓冲区是等效的,生产者和消费者依次投入和取出产品。只要有空闲的缓冲区,生产者就可以投入产品,同样,只要缓冲池中还有产品,消费者就可以消费。生产者和消费者在使用缓冲池的缓冲区时必须互斥,而两者的同步关系也将禁止向满缓冲池投入产品或从空缓冲池中取得产品。二、设计目的本程序简单描述了生产者消费者

2、问题,只要有空闲的缓冲区,生产者就可以投入产品,同样,只要缓冲池中还有产品,消费者就可以消费。生产者和消费者在使用缓冲池的缓冲区时必须互斥。三、运行结果键入a表示生产一个产品并送到有界缓冲区;键入d表示从有界缓冲区取走一个产品并消费掉;键入l表示注销进程;键入s表示生产/消费过程是否结束,键入y表示结束,键入n表示继续进行生产消费过程,运行结果如下:缓冲区满和缓冲区空的情况:三、源代码:#include#defineSIZE10intproducer(0),consumer(0);//生产者、消费者信号灯intn=SIZE;//缓冲区长度intproduce

3、=0;//生产产品数intconsume=0;//消费产品数charc,ts;intc1();intc2();intc1(){if(consumer==0){producer=1;c2();}return0;}intc2(){if(producer){cout<<"请进行生产/消费操作!"<>ts;if((ts=='a')&&(n>0)){produce++,n--;//生产一个,空闲缓冲区-1cout<<"生产了一个产品并已送到有界缓冲区."<

4、冲区+1{consume++,n++;cout<<"从有界缓冲区取走了一个产品并已消费掉."<=SIZE){cout<<"有界缓冲区已空,请尽快送来产品!"<>c;if(c=='y'){cout<<"此次生产/消费操作结束."<

5、ndl;cout<<"产品消费数为:"<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。