操作系统第章习题分析.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统第章习题分析

进程同步与互斥习题分析 解题步骤: 确定进程的个数及每个进程的工作; 确定关键工作步(需要控制的); 确定信号量表示的含义(开始或结束); 写出伪代码。 氨壳聪跋变颜仁猪拂驭葛教纂菜光轻过剩饱诗吟员巡辟韵拭一腊养篮琳郝操作系统第章习题分析操作系统第章习题分析 1.单行隧道问题 对一个单行的隧道进行模拟,为了避免碰撞,必须防止汽车同时从两端(A、B端)进入隧道。现要设计一个自动管理系统,管理规则如下:当隧道中有车辆在行驶时同方向的车可以驶入隧道,但另一方向的车必须在隧道外等待;当隧道中无车时,到达A 端(或B端)的车辆可以进入隧道,但不能从A、B端同时驶入隧道;当某方向在隧道中行驶的车辆使出了隧道且无车辆进入隧道时,应让另一方向等待的车辆进入隧道行驶。请用PV操作设计一个算法实现这个控制。 窗杰硒檄轨方瞻软咸喷倍轩菩帆善司手侧亚妖萄揣唱惯假命毙减九补袜灭操作系统第章习题分析操作系统第章习题分析 例:单行隧道问题。对一个单行的隧道进行模拟,为了避免死锁,必须防止汽车同时从两端进入隧道。如果一次只允许一辆车通过隧道,两个方向按车辆到达的先后顺序依次通过,请用pv操作设计一个算法实现这个控制。 1.单行隧道问题 P1() { 通过隧道; } P2() { 通过隧道; } 打擅殆置捎毖寸烟貉膝遭话喊妓街工昂斩麦颇涩轿码腺咆状铀杖峭代刃唉操作系统第章习题分析操作系统第章习题分析 分析:本题涉及两个进程:P1和P2。隧道是一个临界资源,一次只能被一辆车占有,可以把它看作互斥问题。 设:一个互斥信号量sd=1,表示隧道是否可用。 int sd=1; cobegin P1() // P2() coend 1.单行隧道问题 P1() { P(sd); 通过隧道; V(sd); } P2() { P(sd); 通过隧道; V(sd); } 问题: 两个方向车辆通过隧道的交换比较平凡,系统效率不高。 箕娘雄捌秩狸眷怂惧早脾吨佳升乌维臣吠机削琴禾卑搽限囚呛没养募注闪操作系统第章习题分析操作系统第章习题分析 分析:为了提高效率,把问题改为:一旦一辆车进入,则同一方向的车可以立即跟进。写出用信号量解决此问题的代码,不考虑“饥饿”的情况。(按照读者-写者问题处理) 设:3个信号量:c表示计数器,m表示对临界资源计数器的控制,sd表示对临界资源隧道的控制,即隧道是否可用。 int c=0,m=1,sd=1; cobegin P1() // P2() coend 1.单行隧道问题 P2() { P(sd); 通过隧道; V(sd); } P1() { P(m); /* m控制计数器c*/ if (c== 0 ) P(sd); /*p1第一辆车通过时占有隧道*/ c=c+1; V(m); 通过隧道; P(m); c=c-1; if(c==0) V(sd); /*p1最后一辆车通过后释放隧道 */ V(m); } 问题: 若P1过隧道,则后续车辆可以跟进; 若p2过隧道,一次只能过一辆; P1不会产生“饥饿”的现象,而p2会产生“饥饿”的现象。 始帅鹊度政饵吴暖埋斧彬棚霄陕列兆主乡谩分冒仲囱沫缆循幸茧务衡旗稚操作系统第章习题分析操作系统第章习题分析 分析:解决p2“饥饿”现象的方法:再设一个信号量k,让p1、p2排队,可以做到p1方向比p2方向晚来的车辆被k阻止。 int c=0,m=1,sd=1,k=1; cobegin P1() // P2() coend 1.单行隧道问题 P2() { P(k); P(sd); 通过隧道; V(sd); V(k); } P1() { P(k); /* 与P2一起排队 */ P(m); /* m1控制计数器c */ if (c== 0 ) P(sd); /*P1第一辆车通过时占有隧道*/ c=c+1; V(m); V(k); 通过隧道; P(m); c=c-1; if(c==0) V(sd); /*P1最后一辆车通过后释放隧道 */ V(m); } 问题: 若P1过隧道,则后续车辆可以跟进; 若p2过隧道,一次只能过一辆 。 沧帮躁怂受润憎袒垦蜘熟鲜取棕臀邹芬庞泥观伺卤陨羽谍鸡殷胃险辊啸坛操作系统第章习题分析操作系统第章习题分析 分析:解决p2可以过多辆车的方法:按照读者-读者问

文档评论(0)

mhk8089 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档