1、考研操作系统-死锁及答案解析(总分:62.00,做题时间:90 分钟)一、B单项选择题/B(总题数:8,分数:16.00)1.以下关于资源分配图的描述中正确的是( )。(分数:2.00)A.有向边包括进程指向资源类的分配边和资源类指向进程申请边两类B.矩阵框表示进程,其中的圆点表示申请同一类资源的各个进程C.圆圈结点表示资源类D.资源分配图是一个有向图,用于表示某时刻系统资源与进程之间的状态2.以下关于死锁的叙述中正确的是( )。(分数:2.00)A.死锁的出现只与资源的分配策略有关B.死锁的出现只与并发进程的执行速度有关C.死锁是系统的一种僵持状态,任何进程无法继续运行D.进程竞争互斥资源是
2、产生死锁的根本原因3.用银行家算法避免死锁时,检测到( )时才分配资源。(分数:2.00)A.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足本次申请量,但不能满足尚需要的最大资源量B.进程首次申请资源时对资源的最大需求量超过系统现存的资源量C.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足尚需要的最大资源量D.进程已占用的资源数与本次申请的资源数之和超过对资源的最大需求量4.通过终止进程或抢夺资源可以解除死锁,下面说法中错误的是( )。(分数:2.00)A.一次终止一个进程比终止所有涉及死锁进程的耗费大B.检测死锁适用于不
3、经常发生死锁的系统中,不适用于经常发生死锁的系统中C.终止进程可以终止涉及死锁的所有进程或一次终止一个进程D.抢夺资源时从执行时间短的进程中抢夺可以避免进程“死”现象5.死锁的 4个必要条件中,无法破坏的是( )。(分数:2.00)A.环路等待资源B.互斥使用资源C.占有且等待资源D.非抢夺式分配6.静态分配破坏了( )两个死锁的必要条件。(分数:2.00)A.占有且等待资源和环路等待资源B.互斥使用资源和非抢夺式分配C.占有且等待资源和互斥使用资源D.环路等待资源和互斥使用资源7.死锁的防止是根据( )采取措施实现的。(分数:2.00)A.防止系统进入不安全状态B.配置足够的系统资源C.破坏
4、产生死锁的四个必要条件之一D.使进程的推进顺序合法8.按序分配资源是为了( )。(分数:2.00)A.死锁的检测B.死锁的防C.死锁的避免D.死锁的解除二、B填空题/B(总题数:12,分数:12.00)9. 1是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。(分数:1.00)填空项 1:_10.产生死锁的原因可以归结为两点: 1 和 2。(分数:1.00)填空项 1:_填空项 1:_11.CPU和主存属于 1 资源;磁带机和打印机属于 2 资源。(分数:1.00)填空项 1:_填空项 1:_12.由于进程具有异步性,这就可能使进程按下述两种顺序向前推进:
5、1 和 2。(分数:1.00)填空项 1:_填空项 1:_13.产生死锁的 4个必要条件是 1、 2、 3 和 4。(分数:1.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_14.目前用于处理死锁的方法可归结为以下四种: 1、 2、 3 和 4。(分数:1.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_15. 1,有可能使系统获得较好的资源利用率和系统吞吐量,但在实现上难度也最大。(分数:1.00)填空项 1:_16.在死锁的预防中,摒弃“请求和保持”条件的方法的缺点是: 1 和 2。(分数:1.00)填空项 1:_填空项 1:_17.避免死锁的实质在于: 1。
6、(分数:1.00)填空项 1:_18.最有代表性的避免死锁算法,是 Dijkstra的 1。(分数:1.00)填空项 1:_19.系统死锁可利用 1 来描述。(分数:1.00)填空项 1:_20.当发现有进程死锁时,便应立即把它们从死锁状态中解脱出来,常采用的两种方法是 1 和 2。(分数:1.00)填空项 1:_填空项 1:_三、B判断改错题/B(总题数:2,分数:4.00)21.预防死锁的方法,优点是简单、易于实现且很安全,而且资源利用率高,进程也能以较快地进行( )。(分数:2.00)A.正确B.错误22.检测死锁能够有效地将进程从死锁状态下解脱下来。( )(分数:2.00)A.正确B.
7、错误四、B简答题/B(总题数:4,分数:20.00)23.简述死锁的检测和解除。(分数:5.00)_24.简述银行家算法。(分数:5.00)_25.简述死锁的防止。(分数:5.00)_26.若系统只有一个进程,它会被卷入死锁吗?请说明理由。(分数:5.00)_五、B应用题/B(总题数:2,分数:10.00)27.某系统有输入机和打印机各一台,今有两个进程都要同时使用它们,采用 PV操作实现请求使用和归还释放后,还会产生死锁吗?若不会,说明理由;若会产生死锁则给出一种防止死锁的方法。(分数:5.00)_28.某系统有 A、B、C、D 这 4类互斥资源供 5个进程共享使用,进程对资源的需求和分配情
8、况如表 8-6所示:B表 86 互斥资源与进程关系表/B已占资源数 最大需求量进程A B C D A B C DP1 0 0 1 2 0 0 1 2P2 1 0 0 0 1 7 5 0P3 1 3 5 4 2 3 5 6P4 0 6 3 2 0 6 5 2P5 0 0 1 4 0 6 5 6现在系统剩余资源情况是(A,B,C,D=(1,5,2,0),请按银行家算法回答下面问题;a现在系统是否处于安全状态?b如果进程 P2提出需要(0,4,2,0)个资源的请求,系统能否去满足它的请求?(分数:5.00)_考研操作系统-死锁答案解析(总分:62.00,做题时间:90 分钟)一、B单项选择题/B(总
9、题数:8,分数:16.00)1.以下关于资源分配图的描述中正确的是( )。(分数:2.00)A.有向边包括进程指向资源类的分配边和资源类指向进程申请边两类B.矩阵框表示进程,其中的圆点表示申请同一类资源的各个进程C.圆圈结点表示资源类D.资源分配图是一个有向图,用于表示某时刻系统资源与进程之间的状态 解析:2.以下关于死锁的叙述中正确的是( )。(分数:2.00)A.死锁的出现只与资源的分配策略有关B.死锁的出现只与并发进程的执行速度有关C.死锁是系统的一种僵持状态,任何进程无法继续运行D.进程竞争互斥资源是产生死锁的根本原因 解析:3.用银行家算法避免死锁时,检测到( )时才分配资源。(分数
10、:2.00)A.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足本次申请量,但不能满足尚需要的最大资源量B.进程首次申请资源时对资源的最大需求量超过系统现存的资源量C.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足尚需要的最大资源量 D.进程已占用的资源数与本次申请的资源数之和超过对资源的最大需求量解析:4.通过终止进程或抢夺资源可以解除死锁,下面说法中错误的是( )。(分数:2.00)A.一次终止一个进程比终止所有涉及死锁进程的耗费大 B.检测死锁适用于不经常发生死锁的系统中,不适用于经常发生死锁的系统中C.终止进程可以终
11、止涉及死锁的所有进程或一次终止一个进程D.抢夺资源时从执行时间短的进程中抢夺可以避免进程“死”现象解析:5.死锁的 4个必要条件中,无法破坏的是( )。(分数:2.00)A.环路等待资源B.互斥使用资源 C.占有且等待资源D.非抢夺式分配解析:6.静态分配破坏了( )两个死锁的必要条件。(分数:2.00)A.占有且等待资源和环路等待资源 B.互斥使用资源和非抢夺式分配C.占有且等待资源和互斥使用资源D.环路等待资源和互斥使用资源解析:7.死锁的防止是根据( )采取措施实现的。(分数:2.00)A.防止系统进入不安全状态B.配置足够的系统资源C.破坏产生死锁的四个必要条件之一 D.使进程的推进顺
12、序合法解析:8.按序分配资源是为了( )。(分数:2.00)A.死锁的检测B.死锁的防 C.死锁的避免D.死锁的解除解析:二、B填空题/B(总题数:12,分数:12.00)9. 1是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进。(分数:1.00)填空项 1:_ (正确答案:死锁)解析:10.产生死锁的原因可以归结为两点: 1 和 2。(分数:1.00)填空项 1:_ (正确答案:竞争资源)填空项 1:_ (正确答案:进程推进顺序非法)解析:11.CPU和主存属于 1 资源;磁带机和打印机属于 2 资源。(分数:1.00)填空项 1:_ (正确答案:可剥夺性
13、)填空项 1:_ (正确答案:不可剥夺性)解析:12.由于进程具有异步性,这就可能使进程按下述两种顺序向前推进: 1 和 2。(分数:1.00)填空项 1:_ (正确答案:进程推进顺序合法)填空项 1:_ (正确答案:进程推进顺序非法)解析:13.产生死锁的 4个必要条件是 1、 2、 3 和 4。(分数:1.00)填空项 1:_ (正确答案:互斥条件)填空项 1:_ (正确答案:请求和保持条件)填空项 1:_ (正确答案:不剥夺条件)填空项 1:_ (正确答案:环路等待条件)解析:14.目前用于处理死锁的方法可归结为以下四种: 1、 2、 3 和 4。(分数:1.00)填空项 1:_ (正确
14、答案:预防死锁)填空项 1:_ (正确答案:避免死锁)填空项 1:_ (正确答案:检测死锁)填空项 1:_ (正确答案:解除死锁)解析:15. 1,有可能使系统获得较好的资源利用率和系统吞吐量,但在实现上难度也最大。(分数:1.00)填空项 1:_ (正确答案:死锁的检测和解除措施)解析:16.在死锁的预防中,摒弃“请求和保持”条件的方法的缺点是: 1 和 2。(分数:1.00)填空项 1:_ (正确答案:资源严重浪费)填空项 1:_ (正确答案:进程延迟运行)解析:17.避免死锁的实质在于: 1。(分数:1.00)填空项 1:_ (正确答案:如何使系统不进入不安全状态)解析:18.最有代表性
15、的避免死锁算法,是 Dijkstra的 1。(分数:1.00)填空项 1:_ (正确答案:银行家算法)解析:19.系统死锁可利用 1 来描述。(分数:1.00)填空项 1:_ (正确答案:资源分配图)解析:20.当发现有进程死锁时,便应立即把它们从死锁状态中解脱出来,常采用的两种方法是 1 和 2。(分数:1.00)填空项 1:_ (正确答案:剥夺资源)填空项 1:_ (正确答案:撤消进程)解析:三、B判断改错题/B(总题数:2,分数:4.00)21.预防死锁的方法,优点是简单、易于实现且很安全,而且资源利用率高,进程也能以较快地进行( )。(分数:2.00)A.正确B.错误 解析:应改为:预
16、防死锁的方法,优点是简单、易于实现且很安全,但资源严重浪费而且进程延迟运行。22.检测死锁能够有效地将进程从死锁状态下解脱下来。( )(分数:2.00)A.正确B.错误 解析:应改为:检测死锁不能将进程从死锁状态下解脱下来,必须与解除死锁配合使用。四、B简答题/B(总题数:4,分数:20.00)23.简述死锁的检测和解除。(分数:5.00)_正确答案:()解析:死锁的检测方法对资源的分配不加限制,只要有剩余的资源,就可把资源分配给申请者。操作系统要做的工作是定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。 1)每个资源类中只有一个资源的死锁检测。记录进程使用资源的情况采用占用表和等待表
17、,前者记录哪些进程占用了什么资源,后者记录处于等待资源状态的进程正在等待什么资源。 死锁检测程序反复检测这两张表,列出所有等待占用关系,若其中有一组进程循环等待资源,则系统出现了死锁。 2)资源类中含有若干资源的死锁检测。根据进程对各类资源的占有量、尚需量和系统中各类资源的剩余量,检测是否有死锁存在。检测可分 3步:打出资源已满足的进程,置上标志,并把它们已占的资源与剩余量相加作为“可分配资源”。 若无标志进程中找出尚需资源量不超过可分配资源量的里程,置上标志,重复此步骤直到所有进程均有标志,或无标志的进程尚需资源均超过可分配的资源量。 若存在无标志进程,表示当前系统已有死锁形成,反之则不会产
18、生死锁。 3)死锁的解除。死锁的解除就是当死锁检测程序检测到有死锁存在时,设法让系统从死锁状态中恢复过来。解除死锁一般采用两种方法:一种是终止进程,另一种是抢夺资源。 终止进程:终止一个或几个进程的执行以破坏循环等待死锁解除后重启动进程时最简单的办法是从头开始执行,有的系统可让进程退回到死锁发生前的校验点开始执行。 抢夺资源:从涉及死锁的一个或多个进程中抢夺资源。24.简述银行家算法。(分数:5.00)_正确答案:()解析:操作系统按银行家制定的规则为进程分配资源,可以使系统保持在安全状态,具体方法如下: 进程首次申请资源的分配。如果系统现存资源可以满足该进程的最大需求量,则按当前的申请量分配
19、资源,否则推迟分配。 进程在执行中继续申请资源的分配。若该进程已占用的资源与本次申请的资源之和不超过对资源的最大需求量,且现存资源能满足该进程尚需要的最大资源量,则按当前申请量分配资源,否则推迟分配。 至少一个进程能完成。在任何时刻保证至少有一个进程能得到所需要的全部资源而执行到结束。 银行家算法通过动态地检测系统中资源分配情况和进程对资源的需求情况来决定如何分配资源,并能在确保系统处于安全状态时才把资源分配给申请者,从而避免系统发生死锁。25.简述死锁的防止。(分数:5.00)_正确答案:()解析:要防止死锁的发生,只要采用的资源分配策略能使这 4个条件中的一个条件不成立。只有允许进程共享设
20、备才能使互斥使用资源条件不成立,而计算机系统中大多数资源必须互斥使用,所以无法互斥条件不成立而防止死锁。 静态分配资源和释放已占资源。使占有并等待资源的条件不成立,常用两种方法。 静态分配资源:静态分配是要求每一个进程在开始执行前中请它所需要的全部资源,当系统能满足里程资源申请要求且把资源分配给进程后,该进程才能开始执行。这种策略也称预分配资源。此法实现简单,但降低了资源的利用率。 释放已占资源:这种分配策略是只有在进程没有占用资源时,才允许它申请资源。若进程已占某种资源又要中请其他资源,则它应归还所占的资源后再中请新资源。 抢夺式分配资源。要使不可抢夺其他进程占用的资源条件不成立,可以这样做
21、:一个进程已经占有了某些资源又要申请新资源,而新资源不能满足必须等待时,系统可以抢夺该进程已占有的资源。 目前抢夺式分配策略只适用于主存空间和处理器,而对打印机、磁带机等不能采用这种分配策略。 按序分配资源。使循环等待条件不成立可采用按序分配的资源分配策略。具体做法是把系统中所有资源排一个顺序,对每一个资源确定编号,规定任何一个进程申请两个以上的资源时,总是先申请编号最小的资源,再申请编号大的资源。可以证明这种策略分配资源时不会出现循环等待资源的情况。26.若系统只有一个进程,它会被卷入死锁吗?请说明理由。(分数:5.00)_正确答案:()解析:若系统中只有一个进程,无论该进程涉及多少资源的使
22、用,只要使用得当;就不会产生死锁。我们用反证法来说明问题: 证明:假定系统中只有一个进程时出现死锁,则根据产生死锁的必要条件可知:此时系统进程必同时具备以下 4个必要条件: 互斥使用资源; 请求并等待资源; 不可抢夺资源; 环路等待资源。 其中,第 4个条件“环路等待资源”要求必须至少存在两个(或两个以上)进程才可能产生;而题设中说明系统只有一个进程,因此,构成环路等待的条件。 这样,死锁的四个必要条件中没有完全成立,即与证明开始作的假设是相矛盾的。 所以,若系统中只有一个进程,不会产生死锁现象。五、B应用题/B(总题数:2,分数:10.00)27.某系统有输入机和打印机各一台,今有两个进程都
23、要同时使用它们,采用 PV操作实现请求使用和归还释放后,还会产生死锁吗?若不会,说明理由;若会产生死锁则给出一种防止死锁的方法。(分数:5.00)_正确答案:()解析:如果 PV操作设计不当,仍会产生死锁。假如用 S1和 S2分别代表输入机和打印机能否被使用的信号量,由于资源是共享的,所以必须互斥使用,因而它们的初始值都为 1。如果用如下方法实现请求使用和归还释放: process A1 begin P(S1); 使用输入机; P(S2); 使用打印机; V(S2); V(S1); end; process A2 begin p(S2); 使用打印机; p(s1); 使用输入机; V(S2);
24、 V(S1); end; 那么,就会出现A1得到输而 A2得到打印机,双方在不释放已有的资源的情况下又去申请新的资源,就会造成死锁。 可以采用为资源编序号的方法,要求按序申请;如下: process A1 begin p(s1); 使用输入机; p(s2); 使用打印机; v(s2); v(s1); end; process A2 begin p(s1); 使用输入机; p(s2); 使用打印机: v(s2); v(s1); end28.某系统有 A、B、C、D 这 4类互斥资源供 5个进程共享使用,进程对资源的需求和分配情况如表 8-6所示:B表 86 互斥资源与进程关系表/B已占资源数最大需求量进程ABCD A B C DP1 0012 0 0 1 2P2 1000 1 7 5 0P3 1354 2 3 5 6P4 0632 0 6 5 2P5 0014 0 6 5 6现在系统剩余资源情况是(A,B,C,D=(1,5,2,0),请按银行家算法回答下面问题;a现在系统是否处于安全状态?b如果进程 P2提出需要(0,4,2,0)个资源的请求,系统能否去满足它的请求?(分数:5.00)_正确答案:()解析:a当前系统状态处于安全状态。 b如果进程 p2提出需要(0,4,2,0)个资源的请求,系统能够满足它的请求。