- 222
- 0
- 约 10页
- 2016-08-21 发布于重庆
- 举报
第2章补充习题1
例:抽烟问题:有一个烟草代理商(Agent)和3个抽烟者(smoker)。每个抽烟者连续不断地制造香烟并吸掉它。但是,制造一支香烟需要三种材料:烟草、烟纸和火柴。三个抽烟者中,一人有烟纸,一人有烟叶,一人有火柴。烟草代理商源源不断地供应这三种材料。他将两种材料一起放在桌上,持有另一种材料的吸烟者即可制造一支香烟并抽掉它。当此抽烟者抽香烟时,他发出一个信号通知烟草代理商,烟草代理商马上给出另外两种材料,如此循环往复。试用信号量同步烟草代理商和3个抽烟者。
解:Semaphore smoker[3]; //初始0,三个抽烟者
Semaphore material[3]; //初始0,三种原料
Semaphore agent; //初始1,供应商
Int turn; //初始0,到谁
Agent:
While (1) {
Wait(agent);
Signal(smoker[turn]);
Signal(material[(turn+1)%3]);
Signal(material[(turn+2)%3]);
Turn=(turn+1)%3;
}
Smoker-i:
While (1) {
wait(smoker[i]);
wait(material[(i+1)%3]);
wait(material[(i+2)%3]);
signal(agent);
}
例2;从读卡机上读进n张卡片,然后复制一份,要求复制出来的卡片与读进来的卡片完全一致。这一工作由3个进程get、copy、put以及两个缓冲区buffer1和buffer2完成。get进程的功能是把一张卡片信息从读卡机上读进buffer1;进程copy的功能是把buffer1中的信息复制到buffer2;进程put的功能是取出buffer2中的信息并从行式打印机上打印输出。试用P、V操作完成这3个进程间的尽可能并发正确执行的关系(用程序或框图表示),并指明信号量的初值。
解答:这3个进程间的关系可用下图来表示:
get copy put
分析这3个进程之间的关系,可以得知,get和copy进程之间通过buffer1进行合作,这是一种生产者-消费者问题;同理,进程copy和put之间通过buffer2进行合作,两者之间也是一种生产者-消费者问题。
为此,设计互斥信号量mutex1,mutex2来实现对buffer1和buffer2的互斥访问;为实现get和copy之间的同步,设置两个信号量semptybuffer1和sfullbuffer1,分别表示缓冲区buffer1是空的还是满的;为实现copy和put之间的同步,设置两个信号量semptybuffer2、sfullbuffer2,分别表示缓冲区buffer2是空的还是满的。
Var mutex1,mutex2,semptybuffer1,sfullbuffer1,semptybuffer2,sfullbuffer2:semaphore:=1,1,1,0,1,0;
Get:begin
Repeat
从读卡机读入一张卡片信息;
P(semptybuffer1);
P(mutex1);
将信息放入buffer1;
V(sfullbuffer1);
V(mutex1);
Until false;
End
Copy:begin
Repeat
P(sfullbuffer1);
P(mutex1);
从buffer1复制信息;
V(semptybuffer1);
V(mutex1);
P(semptybuffer2);
P(mutex2);
将信息复制放入buffer2;
V(sfullbuffer2);
V(mutex2);
Until false;
End;
Put:begin
Repeat
P(sfullbuffer2);
P(mutex2);
从buffer2取出信息;
V(semptybuffer2);
V(mutex2);
把信息从打印机输出;
Until false;
End;
例3:在4×100m接力赛中,4个运动员之间存在如下关系:运动员1跑到终点把接力棒交给运动员2;运动员2一开始处于等待状态,在接到运动员1传来的接力棒后才能往前跑,他跑完100m后交棒给运动员3;运动员3也只有接到运动员2传来的接力棒后才能往前跑,他跑完100m后交棒给运动员4;运动员4接棒后跑完全程,试用信号量机制进行描述。
分析:在本题中,4个运动员相当于4个进程,他们处于并发运行状态。运动员1跑完100m后发信号给运动员2,运动员2原来处于等
您可能关注的文档
- 第2章数据库和表操作.pptx
- 第2章数据恢复基础知识---硬盘基础知识.ppt
- 第2章数据通信基础与物理层基础.ppt
- 第2章环境因素对植物的影响中职首页.doc
- 第2章硬件基础.ppt
- 第2章第3节自感现象的应用随堂达标自测.doc
- 第2章网康ICG的【网络接入】.ppt
- 第2章网络体系结构及协议基础.ppt
- 第2章网络安全的协议基础--习题答案.doc
- 第2章表格表单和框架.ppt
- 三年级下册语文1-8单元默写通关训练(含答案)(2).docx
- 2026年及未来5年市场数据中国金属钒市场发展规划及投资战略可行性预测报告.docx
- 2026年及未来5年市场数据中国金属工艺品行业全景调研及投资可行性报告.docx
- 2026年及未来5年市场数据中国金属家具市场分析及投资战略研究预测可行性报告.docx
- 2026年及未来5年市场数据中国金属膜电阻器行业市场需求预测与投资战略规划分析报告.docx
- 2026年及未来5年市场数据中国金银花行业市场发展战略分析及投资前景专项预测报告.docx
- 2026年及未来5年市场数据中国金银花行业市场研究及投资战略预测报告.docx
- 2026年及未来5年市场数据中国抗氧化剂市场专项调查分析及投资前景预测报告.docx
- 2026年及未来5年市场数据中国救护车市场运行格局及投资战略研究报告.docx
- 2026年及未来5年市场数据中国精细化工行业发展前景预测及投资分析报告.docx
最近下载
- 泵站安全培训课件.ppt VIP
- 年产5万吨氢氧化镁、5万吨碱式碳酸镁、1万吨氧化锆、1000吨硼酸锌、1000吨五硼酸铵和100吨钛酸钡产品项目环境影响报告书.pdf VIP
- 工程成本会计会计要素03会计要素7利润.pdf VIP
- 《电气工程复习题》课件.ppt
- 贵州国企招聘:2025贵州省黔晟国有资产经营有限责任公司选聘考前自测高频考点模拟试题及答案详解1套.docx VIP
- 高一中外历史纲要(上)的知识点总结 .pdf VIP
- 【通用版】高考地理常考必背15种主观题题型答题模板梳理汇编(含高考模拟试卷及答案3套).docx VIP
- 25秋 典中点 三年级数学上(R版)极速提分法.docx VIP
- 2026秋招:贵州黔晟国有资产经营公司笔试题及答案.doc VIP
- 体检主要检查项目临床意义及正常值详解-体检主要检查项目临.docx VIP
原创力文档

文档评论(0)