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(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、生产者和消费者实验报告【实验目的】1. 加深对进程概念的理解,明确进程和程序的区别。2. 进一步认识并发执行的实质。3. 验证用信号量机制实现进程互斥的方法。4. 验证用信号量机制实现进程同步的方法。【实验要求】用 c 语言编程搭建“生产者和消费者”经典进程通信问题的环境。要求程序运行时,按任意键停止,显示当前系统的各个参数的值。提交实验报告,以及相关程序列表。打包成附件上传。【实验环境】Visual C+【实验内容】1.了解经典同步问题“生产者和消费者”生产者与消费者可以通过一个环形缓冲池联系起来,环形缓冲池由几个大小相等的缓冲块组成, 每个缓冲块容纳一个产品。 每个生产者可不断地每次往缓冲
2、池中送一个生产产品,而每个消费者则可不断地每次从缓冲池中取出一个产品。指针 i 和指针 j 分别指出当前的第一个空缓冲块和第一个满缓冲块。2.分析和理解(1)既存在合作同步问题,也存在临界区互斥问题合作同步:当缓冲池全满时,表示供过于求,生产者必须等待,同时唤醒消费者;当缓冲池全空时,表示供不应求,消费者应等待,同时唤醒生产者。互斥:缓冲池显然是临界资源, 所在生产者与消费都要使用它,而且都要改变它的状态。(2)基于环形缓冲区的生产者与消费者关系形式描述:公用信号量 mutex:初值为 1,用于实现临界区互斥生产者私用信号量empty:初值为 n,指示空缓冲块数目消费者私用信号量full:初值
3、为 0,指示满缓冲块数目整型量 i 和 j 初值为 0,i 指示首空缓冲块序号, j 指示首满缓冲块序号(3)PV原语var mutex,empty,full:semaphore;i,j:integer;buffer:array0.n-1 of item;i:=j:=1;Procedure producer;beginwhile true dobegin精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 6 页 - - - - - - - - - - produce a product;P(emp
4、ty);P(mutex);buffer(i):=product;i:=(i+1) mod n;V(mutex);V(full);end;end;Procedure consumer;beginP(full);P(mutex);goods:=buffer(j);j:=(j+1) mod n;V(mutex);V(empty);consume a product;end;end;【实验源程序代码】#include #include const unsigned short SIZE_OF_BUFFER = 10; . ; std:cerr Succeed std:endl; . ; g_buffe
5、rin = ProductID; in = (in+1)%SIZE_OF_BUFFER; std:cerr Succeed std:endl; . ; ConsumeID = g_bufferout; out = (out+1)%SIZE_OF_BUFFER; std:cerr Succeed std:endl; . ; std:cerr Succeed std:endl; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 6 页 - - - - - - - - - - 精品资料 - - - 欢
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 生产者 消费者 实验 报告
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内