进程同步补充作业.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设有两个优先级相同的进程p1与p2,令信号量s1、s2的初值为0,已知z=2,试问p1、p2并发运行后x=?,y=?,z=? 进程p1:y=1; 进程p2: x=1; y=y+2; x=x+1; signal(s1); wait(s1); z=y+1; x=x+y; wait(s2); signal(s2); y=z+y; z=z+x; 解: x=5,y=12,z=9 ②x=5,y=7,z=9 ③ x=5,y=7,z=4 2. 有桥如下图所示,车流方向如箭头所示。假设桥上不允许两车交会,但允许同方向多辆车依次通过(即桥上可有多个相同方向行驶的车辆),试用wait和signal操作实现桥交通管理。 算法: Var lmutex,rmutex,mutex:semapghore:=1,1,1; Var lcount,rcount:integer:=0,0; begin parbegin left:begin repeat wait(lmutex);//准备上桥 if lcount=0 then wait(mutex); lcount=lcount+1; signal(lmutex); 车自左向右过桥; wait(lmutex);//下桥 lcount=lcount-1; if lcount=0 then signal(mutex); signal(lmutex); until false; end. right:begin repeat wait(rmutex);//准备上桥 if rcount=0 then wait(mutex); rcount=rcount+1; signal(rmutex); 车自右向左过桥; wait(rmutex);//下桥 rcount=rcount-1; if rcount=0 then signal(mutex); signal(rmutex); until false; end. parend. end. 某银行人民币储蓄业务由若干个柜员负责。每个顾客进入银行后先取一个号,并且等着叫号,当一个柜员空闲下来时,就叫下一个号,持该号的顾客被服务。试用wait、signal操作正确编写柜台人员进程和顾客进程的同步算法。 分析:count:表示排队等候服务的顾客数,初值为0。 Mutex:互斥信号量,用于对顾客队列互斥访问。 算法: Var mutex,count:semapghore:=1,0; begin parbegin customer:begin 取号码; wait(mutex); 进入队列排队等候被服务; signal(mutex); signal(count); end. server:begin repeat wait(count); wait(mutex); 从等待队列中取下一个号码; signal(mutex); 为该号码持有者服务; until false end. parend. end.

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档