- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PV操作例题
问题1 一个司机与售票员的例子
在公共汽车上,为保证乘客的安全,司机和售票员应协调工作:
停车后才能开门,关车门后才能行车。用PV操作来实现他们之间的协调。
S1:是否允许司机启动汽车的变量
S2:是否允许售票员开门的变量
driver()//司机进程
{
while (1)//不停地循环
{
P(S1);//请求启动汽车
启动汽车;
正常行车;
到站停车;
V(S2); //释放开门变量,相当于通知售票员可以开门
}
}
busman()//售票员进程
{
while(1)
{
关车门;
V(S1);//释放开车变量,相当于通知司机可以开车
售票
P(S2);//请求开门
开车门;
上下乘客;
}
}
注意:busman() driver() 两个不停循环的函数
?
?
?
问题2 ?图书馆有100个座位,每位进入图书馆的读者要在登记表上登记,退出时要在登记表上注销。要几个程序?有多少个进程?(答:一个程序;为每个读者设一个进程)
?
(1)?????? 当图书馆中没有座位时,后到的读者在图书馆为等待(阻塞)
(2)?????? 当图书馆中没有座位时,后到的读者不等待,立即回家。
?
解(1 )
设信号量:S=100;? MUTEX=1
P(S)
P(MUTEX)
登记
V(MUTEX)
阅读
P(MUTEX)
注销
V(MUTEX)
V(S)
?
??
解(2)
设整型变量 COUNT=100;
信号量:MUTEX=1;
P(MUTEX);
IF (COUNT==0)
{ V(MUTEX);
?? RETURN;
}
COUNT=COUNT-1;
登记
V(MUTEX);
阅读
P(MUTEX);
COUNT=COUNT+1;
V(MUTEX);
RETURN;
问题3? 有一座东西方向的独木桥;用P,V操作实现:
(1)?????? 每次只允许一个人过桥;
(2)?????? 当独木桥上有行人时,同方向的行人可以同时过桥,相反方向的人必须等待。
(3)?????? 当独木桥上有自东向西的行人时,同方向的行人可以同时过桥,从西向东的方向,只允许一个人单独过桥。(此问题和读者与写者问题相同,东向西的为读者,西向东的为写者)。
(1)解
设信号量 MUTEX=1
P (MUTEX)
? 过桥
V (MUTEX)
(2)解
设信号量: MUTEX=1 (东西方互斥)
????? MD=1??? (东向西使用计数变量互斥)
?? MX=1??? (西向东使用计数变量互斥)
设整型变量: CD=0? (东向西的已上桥人数)
??????? CX=0? (西向???的已上桥人数)
?
从东向西:
P (MD)
IF (CD=0)
{P (MUTEX)? }
CD=CD+1
V (MD)
过桥
P (MD)
CD=CD-1
IF (CD=0)
{V (MUTEX)? }
V (MD)
从西向东:
P (MX)
IF (CX=0)
{P (MUTEX)? }
CX=CX+1
V (MX)
过桥
P (MX)
CX=CX-1
IF (CX=0)
{V (MUTEX)? }
V (MX)
?
(3) 解:从东向西的,和(2)相同;从西向东的和(1)相同。
?
问题4 有一个俱乐部,有甲乙两个服务员,当顾客有请求时,甲负责送烟,乙负责送火,无顾客请求时,服务员睡眠。顾客自己不能带烟和火,当顾客要抽烟时,可请求服务员送烟和火,烟和火还未送到时,顾客必须等待。
设信号量:SY, SH,CY,CH:初值都为0
?
甲服务员
REPEAT
P(SY)
送烟
V(CY)
UNTIL FALSE
乙服务员
REPEAT
P(SH)
送火
V(CH)
UNTIL FALSE
顾客
V(SY)?
V(SH)?
P(CY)?
P(CH)?
抽烟
?
问题5一家四人父、母、儿子、女儿围桌而坐;桌上有一个水果盘;
(1)? 当水果盘空时,父亲可以放香蕉或者母亲可以放苹果,但盘中已有水果时,就不能放,父母等待。当盘中有香蕉时,女儿可吃香蕉,否则,女儿等待;当盘中有苹果时,儿子可吃,否则,儿子等待。
解 设信号量:SE=1 (空盘子);SA=0 (放了苹果的盘子);SB=0 (放了香蕉的盘子)
?
父亲
REPEAT
剥香蕉
P(SE)
放香蕉
V(SB)
UNTIL FALSE
母亲
REPEAT
削苹果
P(SE)
放苹果
V(SA)
UNTIL FALSE
儿子
P(SA)
拿苹果
V(SE)
吃苹果
?
女儿
P(SB)
拿香蕉
V(SE)
吃香蕉
?
(2) 把(1)改为:儿子要吃苹果时,请母亲放苹果,女儿要吃香蕉时,请父亲放香蕉,(还是盘子为空时才可以
您可能关注的文档
最近下载
- 六年级下册总复习《比和比例》说课稿.pdf
- (2023正式版)JBT 14355-2023 发动机尾焰测温用钨铼热电偶丝 .docx VIP
- 骨架油封结构型式标准用途..docx VIP
- 2024第六届(2024年)“信用电力”知识竞赛活动总试题库资料-上(单选题汇总).pdf
- (完整word版)全新版大学英语综合教程4课文原文及翻译.pdf VIP
- 京能集团招聘笔试题库2023.pdf
- 抗震支架施工方案.doc
- 代买车辆协议书(精选5篇).docx VIP
- USP 1207.1 包装完整性和测试方法选择(中英对照).doc
- 山西梅园许村煤业有限公司120万ta矿井兼并重组整合项目环境影响报告书(公示版)-副本.doc VIP
文档评论(0)