1、第5章 死锁1)选择题(1)为多道程序提供的可共享资源不足时,可能出现死锁。但是,不适当的 _C_ 也可能产生死锁。A. 进程优先权 B. 资源的线性分配C. 进程推进顺序 D. 分配队列优先权(2)采用资源剥夺法可以解除死锁,还可以采用 _B_ 方法解除死锁。A. 执行并行操作 B. 撤消进程C. 拒绝分配新资源 D. 修改信号量(3)发生死锁的必要条件有四个,要防止死锁的发生,可以通过破坏这四个必要条件之一来实现,但破坏 _A_ 条件是不太实际的。A. 互斥 B. 不可抢占C. 部分分配 D. 循环等待(4)为多道程序提供的资源分配不当时,可能会出现死锁。除此之外,采用不适当的 _ D _
2、 也可能产生死锁。A. 进程调度算法 B. 进程优先级C. 资源分配方法 D. 进程推进次序(5)资源的有序分配策略可以破坏 _D_ 条件。A. 互斥使用资源 B. 占有且等待资源C. 非抢夺资源 D. 循环等待资源(6)在 _C_ 的情况下,系统出现死锁。A. 计算机系统发生了重大故障B. 有多个封锁的进程同时存在C. 若干进程因竞争资源而无休止地相互等待他方释放已占有的资源D. 资源数大大小于进程数或进程同时申请的资源数大大超过资源总数(7)银行家算法在解决死锁问题中是用于 _B_ 的。A. 预防死锁 B. 避免死锁C. 检测死锁 D. 解除死锁(8)某系统中有3个并发进程,都需要同类资源
3、4个,试问该系统不会发生死锁的最少资源数是 _C_ 。A. 12 B. 11C. 10 D. 9(9)死锁与安全状态的关系是 _A_ 。A. 死锁状态一定是不安全状态 B. 安全状态有可能成为死锁状态C. 不安全状态就是死锁状态 D. 死锁状态有可能是安全状态(10)如果系统的资源有向图 _ D _ ,则系统处于死锁状态。A. 出现了环路 B. 每个进程节点至少有一条请求边C. 没有环路 D. 每种资源只有一个,并出现环路(11)两个进程争夺同一个资源,则这两个进程 B 。 A. 一定死锁B. 不一定死锁 C. 不死锁 D. 以上说法都不对(12)设有4个可用的某类资源,由3个进程共享,每个进
4、程最多可申请 B 个资源而使系统不会死锁。 A. 1 B. 2 C. 3 D. 4 2)填空题(1)在有m(m=2)个进程的系统中出现死锁时,处于死锁状态中的进程个数k应该满足的条件是_2=k=m_ 。(2)银行家算法中,当一个进程提出的资源请求将导致系统从 安全状态 进入 不安全状态 时,系统就拒绝它的资源请求。(3)对待死锁,一般应考虑死锁的预防、避免、检测和解除四个问题。典型的银行家算法是属于 避免死锁 ,破坏环路等待条件是属于 预防死锁 ,而剥夺资源是 检测和解除死锁 的基本方法。(4)死锁检测方法要解决两个问题,一是 判断系统 是否出现了死锁,二是当有死锁发生时怎样去 解除死锁 。3
5、)判断题(1)在发生死锁的四个必要条件中,要四个同时不具备才不会发生死锁。解:错。在发生死锁的四个必要条件中,只要有一个条件不具备,就不会发生死锁。(2)若系统处于不安全状态,则一定产生了死锁。解:错。若系统处于不安全状态,不一定产生死锁。(3)如果系统处于安全状态,则安全序列一定是唯一的。解:错。如果系统处于安全状态,则安全序列不一定唯一。(4)在对系统资源分配图进行简化时,不同的简化次序会得到相同的简化结果。解:对。(5)计算机产生死锁的根本原因是资源有限和操作次序不当。解:对。4)解答题(1)产生死锁的必要条件是什么?解决死锁问题常用哪几种措施?答:产生死锁的四个必要条件: 互斥条件:一
6、个资源每次只能被一个进程使用。 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。 解决死锁问题常用哪几种措施有忽略死锁,预防死锁,避免死锁,检测和解除死锁。(2)设系统中仅有一类独占型资源,进程一次只能申请一个资源。系统中多个进程竞争该类资源。试判断下述哪些情况会发生死锁,为什么?资源数为4,进程数为3,每个进程最多需要2个资源。资源数为6,进程数为2,每个进程最多需要4个资源。解:不会。因为当每个进程拥有一个资源时,系统还有一可用资源,此资源分配给
7、任何一个进程,则该进程可顺利完成,所以不会发生死锁。 会。当每个进程拥有3个资源时,系统资源已分配完,而此时2个进程都不能往前推进,彼此相互等待,从而形成死锁。(3)表5-6给出了系统某时刻的资源分配情况:表5-6 资源分配表资源情况进程AllocationNeedAvailabler1 r2 r3r1 r2 r3r1 r2 r3 A B C D E0 0 31 0 01 3 50 3 30 0 10 0 11 7 52 3 50 6 50 6 51 6 2试问:此时该状态是否安全?如果进程C提出请求RequestC(1,2,2),系统能否将资源分配给它? 解:因为存在安全序列,如,所以此时系
8、统安全。 若满足进程C的请求,则可用资源变为,此时系统不存在安全序列,也就是说如果分配,系统会从安全状态变成不安全状态,所以不能分配。(4)考虑一个共有150 个存储单元的系统,如下分配给三个进程,P1 最大需求70,己占有25;P2最大需求60,己占有40;P3 最大需求60,己占有45。使用银行家算法,以确定下面的每个请求是否安全。如果安全,找出安全序列;如果不安全,给出结果分配情况。P4进程到达,P4最大需求60,最初请求25个。P4进程到达,P4最大需求60,最初请求35个。解:由题设可知,当前时刻系统中有三个进程,P4尚未到达。资源情况进程MaxAllocationNeedAvail
9、able P1 P2 P3 P470606025404545201540因为存在安全序列,所以此时系统安全。当P4进程到达,P4最大需求60,最初请求25个。试探分配,则系统资源分配情况如下:资源情况进程MaxAllocationNeedAvailable P1 P2 P3 P470606060254045254520153515 此时系统仍然存在安全序列,所以此时系统是安全的,可以分配。 当P4进程到达,P4最大需求60,最初请求35个。试探分配,则系统资源分配情况如下:资源情况进程MaxAllocationNeedAvailable P1 P2 P3 P470606060254045354
10、52015255 此时找不到安全序列,说明该请求不能满足,作废试探,不分配。 (5)设系统中仅有一类数量为M的独占型资源,系统中N个进程竞争该类资源,其中个进程对该资源的最大需求量为W。当M,N,W分别为下列值时,判断哪些会发生死锁,为什么? M=2,N=2,W=1; M=3,N=2,W=2; M=3,N=2,W=3; M=5,N=3,W=2; M=6,N=3,W=3。解:不会,因为每个进程的资源都可以得到满足。 不会,总共两个进程,总有一个进程的申请可以得到满足,当它退出时会释放占有的资源,从而满足另一个进程。 可能,比如说其中一个进程占有两个资源,另一个进程占有1个,两个进程的资源都得不到
11、满足,相互等等,出现死锁。 不会,因为总有两个进程的资源申请得到满足,它们运行完后会释放资源,满足另一个进程。 可能,3个进程,每个进程都分配两个资源的情况下,这时三个进程都没有得到资源的满足,出现相互等待,从而产生死锁。 (6)假设系统配有相同类型的m个资源,系统中有n个进程,每个进程至少请求一个资源,最多不超过m个资源。请证明,当n个进程最多需要的资源数之和小于(m+n)时,该系统不会发生死锁。证明:设N个进程请求的最大资源量分别为Maxi,i1,2,n。根据条件,有Maxim+n。假设系统发生死锁,则所有资源都被分配,于是Alloci=nNeedi=Maxi-Allocin上式表明n个进程还需要的资源之和小于n,这意味着至少有一个进程的资源需求为0 。而由题设条件知Needi=1,矛盾。所以该系统不会发生死锁。(7)设有一系统在某时刻的系统资源分配图如图5-5所示。此时系统是否出现死锁?为什么?P1R1P2R2P3R3P5P4R4R5R6P7P6图5-5 资源分配图解:对系统资源分配图进行简化,找既不阻塞有不孤立的进程节点。P6 是既不阻塞有不孤立的进程节点,消去其请求边和分配边,使之成为孤立的进程节点;如下图所示。此时再也找不到这样的进程节点。由于系统资源分配图不能进行完全简化,所以此时系统出现死锁。P1R1P2R2P3R3P5P4R4R5R6P7P6
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100