操作系统原理 庞丽萍 答案 习题五答案

上传人:n**** 文档编号:88892505 上传时间:2019-05-12 格式:PDF 页数:12 大小:230.16KB
返回 下载 相关 举报
操作系统原理 庞丽萍 答案 习题五答案_第1页
第1页 / 共12页
操作系统原理 庞丽萍 答案 习题五答案_第2页
第2页 / 共12页
操作系统原理 庞丽萍 答案 习题五答案_第3页
第3页 / 共12页
操作系统原理 庞丽萍 答案 习题五答案_第4页
第4页 / 共12页
操作系统原理 庞丽萍 答案 习题五答案_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《操作系统原理 庞丽萍 答案 习题五答案》由会员分享,可在线阅读,更多相关《操作系统原理 庞丽萍 答案 习题五答案(12页珍藏版)》请在金锄头文库上搜索。

1、操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 习题五参考答案(P117)习题五参考答案(P117) 5-4 三个进程共享四个同类资源,这些资源的分配与释放只能一次一 个。已知每一进程最多需要两个资源,试问:该系统会发生死锁吗? 为什么? 三个进程共享四个同类资源,这些资源的分配与释放只能一次一 个。已知每一进程最多需要两个资源,试问:该系统会发生死锁吗? 为什么? 答:该系统不会发生死锁。答:该系统不会发生死锁。 因为最坏情况是每个进程都占有一个资源, 申请第二个资源, 而此时 系统中剩下一个资源, 不管这个资源分给哪个进程, 都能满足它的资 源要求, 因此它能在有限时间内

2、运行结束从而释放它所占有的两个资 源,这两个资源又可以分配给另外两个进程,使它们能够运行结束, 所以系统不会发生死锁。 因为最坏情况是每个进程都占有一个资源, 申请第二个资源, 而此时 系统中剩下一个资源, 不管这个资源分给哪个进程, 都能满足它的资 源要求, 因此它能在有限时间内运行结束从而释放它所占有的两个资 源,这两个资源又可以分配给另外两个进程,使它们能够运行结束, 所以系统不会发生死锁。 5-5 p 个进程共享个进程共享 m 个同类资源,每一个资源在任一时刻只能供一个 进程使用, 每一进程对任一资源都只能使用一有限时间, 使用完便立 即释放。并且每个进程对该类资源的最大需求量小于该类

3、资源的数 目。设所有进程对资源的最大需求数目之和小于 个同类资源,每一个资源在任一时刻只能供一个 进程使用, 每一进程对任一资源都只能使用一有限时间, 使用完便立 即释放。并且每个进程对该类资源的最大需求量小于该类资源的数 目。设所有进程对资源的最大需求数目之和小于 p+m。试证:在该 系统中不会发生死锁。 。试证:在该 系统中不会发生死锁。 证明:假设每个进程最多请求证明:假设每个进程最多请求Xi(1ip)个资源,则根据题意有:)个资源,则根据题意有: X1+X2+Xp-1+Xpp+m X1+X2+Xp-1+Xp-pm (X1-1)+(X2-1)+(Xp-1-1)+(Xp-1)m (X1-1

4、)+(X2-1)+(Xp-1-1)+(Xp-1)+1m+1 (X1-1)+(X2-1)+(Xp-1-1)+(Xp-1)+1m 1 操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 这说明在最坏情况下, 每个进程均还差一个资源, 而此时系统中 还有一个没被分配的可用资源。 将它分配给任何一个进程, 都可以使 该得到全部资源的进程运行结束而释放其占有的资源, 并将释放的资 源分配给其它的进程, 使其它进程都能运行结束, 系统不会发生死锁。 这说明在最坏情况下, 每个进程均还差一个资源, 而此时系统中 还有一个没被分配的可用资源。 将它分配给任何一个进程, 都可以使 该得到全部资源的

5、进程运行结束而释放其占有的资源, 并将释放的资 源分配给其它的进程, 使其它进程都能运行结束, 系统不会发生死锁。 证毕证毕 5-6 图图 5.7 表示一带闸门的运河,其上有两架吊桥。吊桥坐落在一条 公路上, 为使该公路避开一块沼泽地而令其横跨运河两次。 运河和公 路的交通都是单方向的。 运河上的基本运输由驳船担负。 在一艘驳船 接近吊桥 表示一带闸门的运河,其上有两架吊桥。吊桥坐落在一条 公路上, 为使该公路避开一块沼泽地而令其横跨运河两次。 运河和公 路的交通都是单方向的。 运河上的基本运输由驳船担负。 在一艘驳船 接近吊桥 A 时就拉汽笛警告,若桥上无车辆,吊桥就吊起,直到驳 船尾部通过

6、此桥为止。对吊桥 时就拉汽笛警告,若桥上无车辆,吊桥就吊起,直到驳 船尾部通过此桥为止。对吊桥 B 也按同样次序处理。也按同样次序处理。 (1) 一艘典型驳船的长度为) 一艘典型驳船的长度为 200 米,当它在河上航行时是否会产生 死锁?若会,其理由是什么? 米,当它在河上航行时是否会产生 死锁?若会,其理由是什么? (2) 如何能克服一个可能的死锁?请提出一个防止死锁的办法。) 如何能克服一个可能的死锁?请提出一个防止死锁的办法。 (3) 如何利用信号灯上的) 如何利用信号灯上的 P、V 操作实现车辆和驳船的同步?操作实现车辆和驳船的同步? 弯道弯道 * * * * * * * * * *

7、* * * * * 运河河道运河河道 公路公路 B A 100m * * * * * * * * * * * * * * * 驳船前 进方向 驳船前 进方向 汽车前 进方向 汽车前 进方向 2 操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 答: (答: (1)驳船长)驳船长 200 米,当驳船通过了米,当驳船通过了 A 桥,其船头到达桥,其船头到达 B 桥,请 求 桥,请 求 B 桥吊起,而此时它的尾部仍占据桥吊起,而此时它的尾部仍占据 A 桥。若这个时候桥。若这个时候 B 桥上及桥上及 B 桥到桥到 A 桥之间的公路上都被汽车占据,而汽车又要求通过桥之间的公路上都被汽车占

8、据,而汽车又要求通过 A 桥。这 样驳船和汽车都无法前进,形成死锁的局面。 桥。这 样驳船和汽车都无法前进,形成死锁的局面。 (2)可以规定资源按序申请和分配,从而破坏了死锁的循环等待条 件,防止死锁的发生。规定如下: )可以规定资源按序申请和分配,从而破坏了死锁的循环等待条 件,防止死锁的发生。规定如下:B 桥的序号小于桥的序号小于 A 桥的序号,驳 船和汽车都必须先申请序号小的资源 桥的序号,驳 船和汽车都必须先申请序号小的资源 B 桥,申请得到满足后,再申 请序号大的资源 桥,申请得到满足后,再申 请序号大的资源 A 桥。桥。 (4) 算法如下:) 算法如下: 设置两个互斥信号量设置两个

9、互斥信号量 mutexa,mutexb,用来实现驳船和汽车对,用来实现驳船和汽车对 A 桥 和对 桥 和对 B 桥的互斥使用;设置两个共享变量桥的互斥使用;设置两个共享变量 counta 和和 countb,分别用 来记录 ,分别用 来记录 A桥和桥和 B桥上的汽车数并设置互斥信号量桥上的汽车数并设置互斥信号量mutex1和和mutex2, 用来实现汽车对共享变量 , 用来实现汽车对共享变量 counta 和和 countb 的互斥访问。的互斥访问。 Main( ) int mutexa, mutexb, mutex1, mutex2, counta, countb; mutexa=1; mu

10、texb=1; mutex1=mutex2=1; counta=countb=0; cobegin bargei; /i=1,2,m carj; /j=1,2,n 3 操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 coend bargei() P(mutexb); 吊起吊起 B 桥桥; P(mutexa); 吊起吊起 A 桥桥; 驳船通过驳船通过 A 桥;桥; 放下放下 A 桥桥; V(mutexa); 驳船通过驳船通过 B 桥桥; 放下放下 B 桥桥; V(mutexb); carj() P(mutex2); countb+; 4 操作系统课后习题参考答案 湖北工业大学信

11、息工程学院计算机系 沈华 if(countb=1) P(mutexb); V(mutex2); 汽车通过汽车通过 B 桥桥; P(mutex2); countb-; if(countb=0) V(mutexb); V(mutex2); 汽车通过汽车通过 AB 段公路段公路; P(mutex1); counta+; if(counta=1) P(mutexa); V(mutex1); 汽车通过汽车通过 A 桥;桥; P(mutex1); counta-; if(counta=0) V(mutexa); V(mutex1); 5 操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 5

12、-7 讨论图讨论图 5.8 描述的交通死锁的例子(设各方向上的汽车是单线、 直线行驶) : 描述的交通死锁的例子(设各方向上的汽车是单线、 直线行驶) : (1)对于产生死锁的四个必要条件中的哪些条件在此例中是适用 的? )对于产生死锁的四个必要条件中的哪些条件在此例中是适用 的? (2)提出一个简单的原则,它能避免死锁。)提出一个简单的原则,它能避免死锁。 (3)若用计算机实现交通自动管理,请用信号灯上的)若用计算机实现交通自动管理,请用信号灯上的 P、V 操作来 实现各方向上汽车行驶的同步。 操作来 实现各方向上汽车行驶的同步。 ? ? 答: (答: (1)路口是共享资源。)路口是共享资源

13、。 ? 互斥条件:路口必须互斥使用,即汽车对它所需要的路口是排他 性控制的。 互斥条件:路口必须互斥使用,即汽车对它所需要的路口是排他 性控制的。 6 操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 ? 不剥夺条件:汽车一旦占用了路口,除非自己让出路口,别人无 权剥夺。 不剥夺条件:汽车一旦占用了路口,除非自己让出路口,别人无 权剥夺。 ? 部分分配条件:每个方向的车队都占有一个路口,同时因申请新 路口而等待。 部分分配条件:每个方向的车队都占有一个路口,同时因申请新 路口而等待。 ? 环路等待条件:占有路口的车都在等待其它车占有的路口,循环 等待。 环路等待条件:占有路口的

14、车都在等待其它车占有的路口,循环 等待。 (2)可以在每个路口设置红绿灯进行控制:绿灯亮时,南北方向的 车可以通行,东西方向的车禁止通行;当红灯亮时,东西方向的车可 以通行,而南北方向的车禁止通行。 )可以在每个路口设置红绿灯进行控制:绿灯亮时,南北方向的 车可以通行,东西方向的车禁止通行;当红灯亮时,东西方向的车可 以通行,而南北方向的车禁止通行。 (3)设置)设置 4 个互斥信号灯个互斥信号灯 mutexi(i=1、2、3、4) ,用来实现汽车对 每个路口的互斥使用; ) ,用来实现汽车对 每个路口的互斥使用;8 个进程,个进程,4 个生产者,个生产者,4 个消费者,个消费者,4 对同步

15、信号量。 对同步 信号量。 Main() int mutex1,mutex2,mutex3,mutex4; int SA1,SB1,SA2,SB2,SA3,SB3,SA4,SB4; mutex1=mutex2=mutex3=mutex4=1; SA1=SA2=SA3=SA4=1; SB1=SB2=SB3=SB4=0; cobegin P1; P2; P3; 7 操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 P4; P5; P6; P7; P8; coend P1() while(1) P(SA1); P(mutex1); 通过一辆汽车;通过一辆汽车; V(mutex1); P(SB1); P2() while(1) P(SB1); P(mutex2); 8 操作系统课后习题参考答案 湖北工业大学信息工程学院计算机系 沈华 通过一辆汽车;通过一辆汽车; V(mutex2); P(SA1); P3() while(1) P(SA2); P(mutex2); 通过一辆汽车;通过一辆汽车; V(mutex2); P(SB2); P4() while(1) P(SB2); P(mutex3); 通过一辆汽车;通过一辆汽车; V(mutex3); P(SA2); 9 操作系统课

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号