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