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