《第三章 死锁习题》由会员分享,可在线阅读,更多相关《第三章 死锁习题(47页珍藏版)》请在金锄头文库上搜索。
1、死锁习题,【例】某系统采用了银行家算法,则下列叙述正确的是()A 系统处于不安全状态时一定会发生死锁B 系统处于不安全状态时可能会发生死锁C 系统处于安全状态时,可能会发生死锁D 系统处于安全状态时,一定会发生死锁【解答】B,【例】在下列选项中,属于解除死锁的方法是()A 剥夺资源法B 资源分配图简化法C 银行家算法D 资源静态分配法【解答】A,【例】资源静态分配法可以预防死锁的发生,因它使死锁四个条件中的()不成立A 互斥条件B 请求和保持条件C 不可剥夺条件D 环路等待条件【解答】B,【例】下面不属于产生死锁的必要条件的是( ).A 互斥条件B 请求和保护条件C 剥夺条件D 环路等待条件【
2、答】C,【例】下面4个选项中,属于处理死锁的基本方法是( )A 资源独占B 资源共享C 进程并发D 预防死锁【答案】D,【例】在银行家算法的数据结构中,其中最大需求矩阵Max,分配矩阵Allocation和需求矩阵Need三者之间的关系是( )A Needi,j=Allocationi,j-Maxi,jB Needi,j=Maxi,j+Allocationi,jC Needi,j=Maxi,j-Allocationi,jD Needi,j=Maxi,j*Allocationi,j【答案】C,【例】系统死锁可利用( )来描述。A 进程B 程序C 系统流程图D 资源分配图【答案】D,【例】按序分配
3、资源是为了( )A 死锁的检测B 死锁的预防C 死锁的避免D 死锁的解除【答案】B,【例】死锁的预防是根据()而采取措施实现的A 配置足够的系统资源B 使进程的推进顺序合理C 破坏死锁的第2、3、4个必要条件D 防止系统进入不安全状态【解答】C,【例】在下列解决死锁的办法中,属于死锁预防策略的是()A 化简进程的资源分配图B 银行家算法C 资源的有序分配法D 死锁检测法【解答】C,【例】死锁产生的必要条件有4个,要预防死锁发生,必须破坏死锁的四个必要条件之一,但破坏()条件是不太实际的。实现起来最简单的条件是()A 请求和保持B互斥C 不剥夺D 环路等待【解答】B。因为这是由设备的固有特性决定
4、的A 采用静态分配方法实现,在进程开始运行前,将它需要的全部资源分配给它。在运行过程中,不再请求。这是早期操作系统采用的方法,但资源的利用率不高。,【例】通过撤消进程可进行死锁恢复,还可以采用()方法解除死锁A 阻塞进程B 资源剥夺C 提高进程优先级D 降低进程优先级【解答】B 采用资源剥夺法,将剥夺的资源分配给死锁进程,以解决死锁。,【例】以下关于资源分配图的描述中正确的是( )A有向边包含进程指向资源类的分配边和资源类指向进程申请边两类B 矩阵框表示进程,其中的原点表示申请同一类资源的各个进程C 圆圈结点表示资源类D 资源分配图是一个有向图,用于表示某时刻系统资源与进程之间的状态【答案】D
5、,【例】死锁的4个必要条件中,无法破坏的是( )A 环路等待资源B 互斥使用资源C 占有且等待资源D 非抢夺式分配【答案】B,【例】采用“按序分配”策略,可以破坏死锁产生的条件是()A 互斥B 请求和保持C 非剥夺D 环路等待【解答】D,【例】从下面关于安全状态和非安全状态的论述中,正确的论述是()A 安全状态是没有死锁的状态,非安全状态是有死锁的状态B 安全状态是可能有死锁的状态,非安全状态也是可能有死锁的状态C 安全状态是可能没有死锁的状态,非安全状态是有死锁的状态D 安全状态是没有死锁的状态,非安全状态是可能有死锁的状态【解答】D,【例】关于产生死锁的现象,下面的描述最准确的是()A 每
6、个进程共享某一个资源B 每个进程竞争某一个资源C 每个进程等待着某一个不能得到且不可释放的资源D 某个进程因等待着某一个资源而无法进行下去【解答】C,【例】银行家算法是一种()算法A 死锁解除B 死锁避免C 死锁预防D 死锁检测【解答】B,【例】_是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进【答案】死锁,【例】死锁是指系统的全部进程都处于阻塞状态【解答】错死锁是指系统中涉及死锁的进程全部处于阻塞状态,而不处于死锁状态的进程则不一定。,【例】操作系统处理死锁,只要采用预防,解除,检测,避免等方法中的一种就足够了【解答】错误因为操作系统要兼顾资源的使用效率和
7、安全性两方面,常见的是将预防,解除,检测,避免等四种处理方法混合使用。例如,只有检测死锁而无解除死锁的方法,检测出死锁又有什么用?,【例】如果系统在所有进程运行前,一次性地将其在整个运行过程所需的全部资料分配给进程,即所谓”静态分配“,是预防死锁发生的。【解答】正确,【例】多个进程竞争比进程数目少的资源分配情况进行安全分析,如果该时刻状态是安全的,则存在一个安全序列,且这个安全序列是唯一的。【解答】错误系统在调用银行家算法进行安全检查时,只要找到一个安全序列就可断定系统是安全的。但安全序列可能不止一个。,【例】当由于为进程分配资源而使系统处于不安全状态时,系统一定会导致死锁【解答】错。当由于进
8、程分配资源而使系统处于不安全状态使,系统不一定会死锁。因为可能有些进程的资源没有达到最大需求时,就已经完成或故障终止,【例】产生死锁的原因可以归结为两点:_和_【答案】竞争资源;进程推进顺序非法,【例】产生死锁的4个必要条件是_,_,_,_【答案】互斥条件;请求和保持条件;不剥夺条件;环路等待条件,【例】目前用于处理死锁的方法可归结为以下四种:_,_,_,_【答案】预防死锁;避免死锁;检测死锁;解除死锁,,【例】在死锁的预防中,摒弃”请求和保持“条件的方法的缺点是_【答案】资源严重浪费;进程延迟运行,【例】避免死锁的实质在于:_【答案】如何使系统不进入不安全状态,【例】最有代表性的避免死锁算法
9、,是Dijkstra的_【答案】银行家算法,【例】当发现有进程死锁时,便应立即把它们从死锁状态中解脱出来,常采用的两种方法是_和_【答案】剥夺资源;撤销进程,【例】在避免死锁的方法中,允许进程动态地申请资源,系统在进行资源分配之前,先计算资源分配的安全性,是否能进入_.否则,将不分配资源给进程,来为每个进程分配其所需资源,直至最大需求,使每个进程按顺序完成。若系统不存在一个安全序列,则系统处于不安全状态。虽然并非所有不安全状态都是死锁状态,但当系统进入不安全状态后,便可能进而进入死锁状态;反之,只有系统处于安全状态,系统便可避免进入死锁状态。因此,避免死锁的实质在于:如何使系统不进入不安全状态
10、。【安全状态】,【例】预防死锁的方法,优点是简单,易于实现且很安全,而且资源利用率高,进程也能较快地进行( )【答案】错。预防死锁的方法,优点是简单,易于实现且很安全,但资源严重浪费且进程延迟运行,【例】检测死锁能够有效地将进程从死锁状态解脱下来( )【答案】错。检测死锁不能将进程从死锁状态解脱下来,必须与解除死锁配合使用,【例】当由于为进程分配资源使系统处于不安全状态时,系统一定会导致死锁。( )【答案】错。当由于进程分配资源系统处于不安全状态时,系统可能会导致死锁。,【例】采用资源静态分配算法可以预防死锁的发生。( )【答案】对,【例】某一系统有两个进程和三个相同资源。每个进程最多需要两个
11、资源。这种情况下有没有可能发生死锁?为什么?【解答】这个系统是无锁的。假设每个进程都有一个资源。还有一个自由的资源,每个进程都可以请求并得到该资源,则这种情况下,该进程就会结束并把两个资源都释放掉,从而不会发生死锁,【例】假设现在有p个进程,每个进程最多需要m个资源,并且有r个资源可用,什么样的条件可以保证死锁不会发生。【解答】如果一个进程有m个资源它就能够结束,不会使自己陷入死锁中。因此,最差的情况是每个进程有m-1个资源并且需要另外一个资源。如果留下有一个资源可用,那么其中某一个进程就能够结束并释放它所有的资源,使其他进程也能结束。所以避免死锁的条件是:r=p(m-1)+1,【例】一台计算
12、机有6台磁带机,由n个进程竞争使用,每个进程可能需要两台磁带机,那么n是多少时,系统才没有死锁的危险?【解答】对于三个进程,每个进程能够有两个驱动器。对于4个进程,驱动器可以按照(2,2,1,1)的方法进行分配,使前面两个进程先结束。对于5个进程,可以按照(2,1,1,1,1)的方法进行分发,使一个进程先结束。对于六个进程,每个进程都拥有一个磁带驱动器同时需要另外一个驱动器,产生了死锁。因此,对于n6的系统来说是无锁的。,【例】一个计算机系统中拥有6台打印机,现有n个进程竞争使用,每个进程要求两台。试问,N的最大值如何选取时系统中绝对不会出现死锁?【解答】已知系统中的每个进程需要2台打印机。那
13、么在最坏的情况下,各进程都占用了其中的一台,而且都在请求自己所需的另一台。如果此时系统尚有多余的一台,那么就可以满足其中一个进程运行完毕。当该进程运行完毕释放出它所占有的打印机后,又可进一步满足其他进程。系统不会出现死锁。因此,如果将61台打印机分配给N个进程,满足每个进程一台的话,进程数量N必然小于等于5.此时系统中不会发生死锁,【例】假定系统有4个同类资源和3个进程,进程每次只申请或释放1个资源。每个进程最大资源需求量为2。请问这个系统为什么不会发生死锁?【解答】由于每个进程最多需要2个资源,最坏的情况下,每个进程获得1个,系统还剩下1个。这1个资源,无论分配给谁,都能完成。完成进程释放资
14、源后,使剩余进程也完成。故系统不会发生死锁,【例】假设某系统中有4种资源(R1,R2,R3,R4),在某时刻系统中共有5个进程,进程P1,P2,P3,P4,P5的最大资源需求数量和此刻已分配到资源数向量分别如下系统中当前可用资源向量为(2,1,0,0),问1 当前系统是否是安全的?2 如果进程P3发出资源请求向量(0,1,0,0),系统能否将资源分配给它?,【分析】进程的最大资源需求数减去当前进程已获得的资源数就是进程仍需要的资源数,此刻各个进行的仍需要资源数向量为:P1(0,0,0,0);P2(0,7,5,0);P3(6,6,2,2);P4(2,0,0,2);P5(0,3,2,0)而系统的可
15、用资源向量为(2,1,0,0),这时存在如下执行序列,使进程顺序执行完毕,状态安全进程 可用资源数P1完成后 (2,1,1,2)P4完成后 (4,4,6,6)P5完成后 (4,7,9,8)P2完成后 (6,7,9,8)P3完成后 (6,7,1,12),(2)在P3发出资源请求(0,1,0,0)后,假设系统把资源分配给P3,则个进程已分配资源数为:P1(0,0,1,2);P2(2,0,0,0);P3(0,1,3,4);P4(2,3,5,4);P5(0,3,3,2)此时系统可用资源为(2,0,0,0),各进程仍需要资源向量为:P1(0,0,0,0);P2(0,7,5,0);P3(6,5,2,2);P4(2,0,0,2);P5(0,3,2,0)满足资源需求的进程执行序列为:进程名 可用资源数P1完成后 (2,0,1,2)P4完成后 (4,3,6.6)P5完成后 (4,6,9,8)此时可用资源不能满足P2,P3的需求,即此时系统状态是不安全的,将拒绝资源请求,【答案】1 当前系统是安全的2 系统不能将资源分配给它,