《独木桥答案.doc》由会员分享,可在线阅读,更多相关《独木桥答案.doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
【精品文档】如有侵权,请联系网站删除,仅供学习与交流独木桥答案.精品文档.假定有如下独木桥问题:过桥时,同一方向的行人可连续过桥,当某一方有人过桥时,另一方向的行人必须等待;当某一方向无人过桥时,另一方向的行人可以过桥。试用信号量机制解决。(1) 需要设置几个信号量?分别是互斥信号量还是同步信号量?初值设为多少?并说明设置它们的意义。(2) 写出用信号量机制解决此问题的算法。答案:(1) 将独木桥的两个方向分别标记为A和B。用整型变量countA和countB分别表示A、B方向上已在独木桥上的行人数。初值为0。需要设置三个初值都为1的互斥信号量:SA用来实现对countA的互斥访问,SB用来实现对countB的互斥访问,mutex用来实现对独木桥的互斥使用。(2)A方向行人过桥:BeginP(SA); countA=countA+1; if (countA= =1) P(mutex);V(SA);过桥;P(SA); countA=countA-1; if(countA= =0) V(mutex);V(SA);EndB方向行人过桥:BeginP(SB); countB=countB+1; if (countB= =1) P(mutex);V(SB);过桥;P(SB); countB=countB-1; if(countB= =0) V(mutex);V(SB);End2.