当前位置:网站首页 > 云计算与后端部署 > 正文

操作系统课后题答案第二版(操作系统第二版第二章课后答案)



1、第三章 死锁 作业答案1,3,9,11,13,14, 161. 什么是死锁?试举出一个生活中发生死锁的例子。参考答案:所谓死锁,是指在一个进程集合中的每个进程都在等待仅由该集合中的另一个进程才能引发的事件而无限期地僵持下去的局面。(也可以是:多个进程因竞争资源而造成的一种僵局,若无外力作用这些进程都将永远不能再向前推进。)举例:1)书中例子“两辆汽车过窄桥发生冲突” 2)公共汽车到站,车上的人要下车,车下的人要上车,挤在车门口。结果是车上的人下不来,车下的人上不去。3. 发生死锁的四个必要条件是什么?参考答案:发生死锁的四个必要条件是:互斥条件、占有且等待条件、不可抢占条件和循环等待条件。9.

2、 设想有一条带闸门的运河,其上有两座吊桥,它们在一条公路上,运河和公路的交通都是单方向的。河上的交通工具是轮船。当轮船距A桥100m时就鸣笛警告,若桥上无车辆,吊桥就吊起,直至轮船尾部过桥为止。对吊桥B也做同样处理。设轮船的长度为200m。车辆和轮船任意前进时,是否会发生死锁?若会,说明理由。怎样发现?并请提出一种防止死锁的办法。参考答案:会产生死锁。当轮船距A桥100m时鸣笛警告,此时若桥上无车辆,吊桥就吊起,但是B桥上有车辆,而且由于A桥吊起,车辆无法前进,B桥上的车辆无法下桥。于是,轮船和车辆都不能前进,造成死锁现象。一种防止死锁的办法是:当轮船距A桥100m时就鸣笛警告,车辆不能再上B

3、桥。当B桥上无车辆时,就吊起B桥;然后,当A桥上无车辆,则吊起A桥。轮船通过A桥和B桥后,两个吊桥放下,车辆可以通行。(该方法相当于资源有序分配,也可以采用资源预分配策略,即同时吊起A、B两桥的方法,资源利用率相对较低。)11. 死锁和“饥饿”之间的主要差别是什么?参考答案:处于死锁状态的进程都占有一定的资源,而处于饥饿状态的进程永远都得不到所申请的资源死锁是一种僵局,在无外力干预下,处于死锁状态的全部进程都不能前进,即它们都处于阻塞态,可能造成整个系统瘫痪;而出现饥饿时系统照常运行,只是某个或某几个进程永远也不能得到所需的全部服务造成死锁的根本原因是资源有限且使用不当;而造成饥饿的原因是资源

4、分配策略或调度策略不合适,如果采用先来先服务的资源分配策略就可以避免饥饿。发生死锁时,一定至少有一个资源被无限期地占用而得不到释放;而饥饿出现时,系统中的每个资源占有者都在有限的时间内释放它所占用的资源。13. 设有三个进程P1,P1,P3,各按如下所示顺序执行程序代码:进程P1 进程P2 进程P3¯¯¯P(s1) P(s3)P(s2)P(s2) P(s1)P(s3) V(s1) V(s3)V(s2)V(s2) V(s1)V(s3)¯¯¯其中s1,s2,s3是信号量,且初值均为1.在执行时能否产生死锁?如果可能产生死锁,请说明在什么情

5、况下产生死锁?并给出一个防止死锁产生的修改办法。参考答案:可能产生死锁。当进程P1执行P(s1),进程P2执行P(s3),进程P3执行P(s2)后,三个资源(即信号量s1,s2,s3)被三个进程分别占用,接下来任何一个进程都无法得到所申请的资源,于是都无限地循环等待,造成死锁。一个防止死锁产生的办法是:进程申请信号量时,按序申请,如图: 进程P1 进程P2 进程P3¯¯¯P(s1) P(s1)P(s2)P(s2) P(s3)P(s3) V(s1) V(s1)V(s2)V(s2) V(s3)V(s3)¯¯¯这里是按s1,s2,s3顺序申

6、请信号量,也可按相反顺序申请,即s3,s2,s1另外,也可以采用资源预分配策略(同时申请两个信号量)防止死锁发生。还有的同学回答:将P3申请顺序改为P(s3),P(s2)也可以防止死锁发生14. 设进程对资源的申请和释放可在任何时刻进行,如果有一个进程所申请的资源不能马上满足,则查看所有因等待资源而封锁的进程,如果它们占有的资源是申请进程所需要的,则强行将这些资源取出分给申请进程。设系统中有三类资源,所有可用资源依次为4个、2个和2个,表示为(4,2,2)。进程A占有资源(2,2,1),进程B占有(1,0,1)。若A有请求资源(0,0,1),被封锁。此时,若进程C申请资源(2,0,0),它可分

7、到剩余资源(1,0,0),且从进程A中取走一个资源(1,0,0),从而满足C的要求,但此时A的占有资源为(1,2,1),而A的需求资源成为(1,0,1)。 这种资源分配方式会导致死锁吗?若会,请举一例;若不会,请说明产生死锁的哪个必要条件不成立? 这种方式会使某些进程无限地等待下去吗?为什么?参考答案: 这种资源分配方式不会导致死锁。因为这是一种抢占式分配资源方式,它破坏了产生死锁的四个必要条件之一,即不可抢占条件。这种方式会使某些进程无限地等待下去。因为某个进程如果需要的资源较多,系统当前不能满足其要求,则它被封锁。然而后续的进程接连抢走该进程所分到的资源,使之回到初始状态,该进程始终得不到

8、所需的全部资源,出现“饥饿”现象。16.设系统中有三种类型的资源(A,B,C)和五个进程(P1,P2,P3,P4,P5),A资源的数量为17,B资源的数量为5,C资源的数量为20.在T0时刻系统状态如表3-9所示。系统采用银行家算法来避免死锁。 T0时刻是否为安全状态?若是,请给出安全序列。 在T0时刻,若进程P2请求资源(0,3,4),能否实现资源分配,为什么? 在的基础上,若进程P4请求资源(2,0,1),能否实现资源分配,为什么? 在的基础上,若进程P1请求资源(0,2,0),能否实现资源分配,为什么? 进程最大资源需求量已分配资源数量系统剩余资源数量A B CA B CA B CP1P

9、2P3P4P55 5 95 3 64 0 114 2 54 2 42 1 24 0 24 0 52 0 43 1 42 3 3参考答案: T0时刻的安全序列先求出Need和Work进程最大需求MAX已分配AllocationNeedA B CA B CA B CP1P2P3P4P55 5 95 3 64 0 114 2 54 2 42 1 24 0 24 0 52 0 43 1 43 4 71 3 40 0 62 2 11 1 0A(17)、B(5)、C(20)Work=(2,3,3) 进程Work剩余数Allocation已经给多少Need还要多少W+AFinishA B CA B

10、 CA B CA B CP5P4P3P2P12 3 35 4 77 4 1111 4 1615 4 183 1 42 0 44 0 54 0 22 1 21 1 02 2 10 0 61 3 43 4 75 4 77 4 1111 4 1615 4 1817 5 20TTTTT T0时刻是安全状态,因为存在一个安全序列(P5,P4,P3,P2,P1)。 在T0时刻,若进程P2请求资源(0,3,4),不能实现资源分配。因为剩余资源数量Available(2,3,3)< Request2(0,3,4) 在的基础上,若进程P4请求资源(2,0,1),能实现资源分配。P4:Request(2,0

11、,1) < Available(2,3,3)P4:Request(2,0,1) < Need4(2,2,1)假设可以分配,修改相应数据进程AllocationNeedAvailableA B CA B CA B CP1P2P3P4P52 1 24 0 24 0 54 0 53 1 43 4 71 3 40 0 60 2 01 1 00 3 2执行安全性算法:进程Work剩余数Allocation已经给多少Need还要多少W+AFinishA B CA B CA B CA B CP4P5P3P2P10 3 24 3 77 4 1111 4 1615 4 184 0 53 1 44 0

12、 54 0 22 1 20 2 01 1 00 0 61 3 43 4 74 3 77 4 1111 4 1615 4 1817 5 20TTTTT有安全序列(P4 P5 P3 P2 P1 ) 可以分配 在的基础上,若进程P1请求资源(0,2,0),能否实现资源分配,为什么?P1 :Request(0,2,0) < Available(0,3,2)P1 :Request(0,2,0) < Need1(3,4,7)修改相关数据:进程AllocationNeedAvailableA B CA B CA B CP1P2P3P4P52 3 24 0 24 0 54 0 53 1 43 2 71 3 40 0 60 2 01 1 00 1 2(0,1,2)不能满足任何进程的需要,无法找到安全序列 不能分配主要问题:1. 什么是死锁?试举出一个生活中发生死锁的例子。 没有举例子 线程、进程、CD-ROM9. 设想有一条带闸门的运河,其上有两座吊桥.,

到此这篇 操作系统课后题答案第二版(操作系统第二版第二章课后答案)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • redis16379端口(redis配置端口与实际端口不一样)2025-01-28 11:45:10
  • 架设git服务器(git服务器端)2025-01-28 11:45:10
  • 操作系统课后作业答案(操作系统作业1答案)2025-01-28 11:45:10
  • 手机软件后缀有哪些(手机软件文件名后缀)2025-01-28 11:45:10
  • nfs客户端端口(nfs 端口)2025-01-28 11:45:10
  • ceph存储部署(ceph文件存储特性)2025-01-28 11:45:10
  • nfs客户端软件(nfs客户端服务)2025-01-28 11:45:10
  • 服务器怎么部署项目(服务器怎么部署搭建)2025-01-28 11:45:10
  • redis的端口号是多少(redis client 端口)2025-01-28 11:45:10
  • 前端埋点框架是什么(前端埋点技术是什么)2025-01-28 11:45:10
  • 全屏图片