操作系统死锁练习题.docx
《操作系统死锁练习题.docx》由会员分享,可在线阅读,更多相关《操作系统死锁练习题.docx(8页珍藏版)》请在冰豆网上搜索。
操作系统死锁练习题
第九章死锁练习题
(1)单项选择题
l系统出现死锁的根本原因是()。
A.作业调度不当B.系统中进程太多C.资源的独占性
D.资源管理和进程推进顺序都不得当
2.死锁的防止是根据()采取措施实现的。
A.配置足够的系统资源B.使进程的推进顺序合理C.破坏产生死锁的四个必要条件之一D.防止系统进入不安全状
态
3.采用按序分配资源的策略可以防止死锁.这是利用了使()条件不成立。
A.互斥使用资源B循环等待资源c.不可抢夺资源D.占有并等待资源
4.可抢夺的资源分配策略可预防死锁,但它只适用于()。
A.打印机B.磁带机c.绘图仪D.主存空间和处理器
5.进程调度算法中的()属于抢夺式的分配处理器的策略。
A.时间片轮转算法B.非抢占式优先数算法c.先来先服务算法D.分级调度算法6.用银行家算法避免死锁时,检测到()时才分配资源。
A.进程首次申请资源时对资源的最大需求量超过系统现存的资源量B.进程己占用的资源数与本次申请资源数之和超过对资源的最大需求量c.进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足尚需的最大资源量D进程已占用的资源数与本次申请的资源数之和不超过对资源的最大需求量,且现存资源能满足本次申请量,但不能满足尚需的最大资源量7.实际的操作系统要兼顾资源的使用效率和安全可靠,对资源的分配策略,往往采用()策略。
A死锁的防止B.死锁的避免c.死锁的检测D.死锁的防止、避免和检测的混合
(2)填空题
l若系统中存在一种进程,它们中的每一个进程都占有了某种资源而又都在等待其中另一个进程所占用的资源。
这种等待永远不能结束,则说明出现了。
2.如果操作系统对或没有顾及进程可能出现
的情况,则就可能形成死锁。
3.系统出现死锁的四个必要条件是:
互斥使用资源,
不可抢夺资源和。
4.如果进程申请一个某类资源时,可以把该类资源中的任意一个空闲资源分配给进程,则说该类资源中的所有资源是。
5.如果资源分配图中无环路,则系统中发生。
6.为了防止死锁的发生,只要采用分配策略使四个必要条件中的。
7.使占有并等待资源的条件不成立而防止死锁常用两种方法:
和.
8静态分配资源也称,要求每—个进程在就申
请它需要的全部资源。
9.释放已占资源的分配策略是仅当进程时才允许它
去申请资源。
10抢夺式分配资源约定,如果一个进程已经占有了某些资源又要申请新资源,而新资源不能满足必须等待时、系统可以该进程已占有的资源。
11.目前抢夺式的分配策略只适用于和。
12.对资源采用的策略可以使循环等待资源的条件不
成立。
13.如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于。
14.只要能保持系统处于安全状态就可的发生。
15.是一种古典的安全状态测试方法。
16.要实现,只要当进程提出资源申请时,系统动态
测试资源分配情况,仅当能确保系统安全时才把资源分配给进程。
17.可以证明,M个同类资源被n个进程共享时,只要不等式成立,则系统一定不会发生死锁,其中x为每个进程申请该类资源的最大量
18.对资源的分配不加限制,只要有剩余的资源,就
可把资源分配给申请者。
19.死锁检测方法要解决两个问题,一是是否出现了
死锁,二是当有死锁发生时怎样去。
20.对每个资源类中只有一个资源的死锁检测程序根据
和两张表中记录的资源情况,把进程等待资源
的关系在矩阵中表示出来,以判别是否出现死锁。
21.如果资源类中含有若干个资源,应根据进程对各类资源
的占有量、和各类资源的来考虑是否有死锁存
在。
22.解除死锁的方法有两种,一种是一个或几个进程
的执行以破坏循环等待,另一种是从涉及死锁的进程中
23.中断某个进程并解除死锁后,此进程可从头开始执行,有的系统允许进程退到发生死锁之前的那个开始执
行。
24.操作系统中要兼顾资源的使用效率和安全可靠,对不同的资源采用不同的分配策略,往往采用死锁的、避免
和的混合策略。
(三)简答题1.何谓死锁?
产生死锁的原因是有哪些?
2.可以通过哪些途径防止死锁的产生?
3.什么叫系统处于安全状态?
常用什么方法保持系统处于安全状态?
4.简述解决死锁问题的三种方法。
5.用抢夺资源的方法解除死锁时要注意什么问题?
(四)应用题
1若有10个同类资源供三个进程共享,下表列出了这三个进
程目前己占资源和最大需求量的情况,现在这三个进程P1,
P2,P3又分别申请1个、2个、1个资源,请问<1)能否先满足进程P2的要求?
为什么?
(2)如何为这三个进程分配资源比
较合适?
进程
已占资源数
最大需求量
P1
3
7
P2
3
8
P3
2
3
2.现有五个进程A,B,c,d,E共享Rl,R2,R3,R4这四类资源,进程对资源的需求量和目前分配情况如下表。
若系统还有剩余资源数分别为R1类2个,R2类6个,R3类
2个和R4类1个,请按银行家算法回答下列问题:
⑴目前
系统是否处于安全状态?
(2)现在如果进程D提出申请(2,5,0,0)个资源,系统是否能为它分配资源?
进程已占资源数最大需求量
R1R2R3R4R1R2R3R4
A36205620
个进程最多需要的资源数之和小于(m+n)时,该系统不会发生死锁。
4.若某一系统有同类资源12个,进程A,B,c所需的资源总
数分别为5,10,7。
下表中列出了这些进程向系统申请资源的次序和数量,请回答:
(1)如采用银行家算法分配资源.请写出完成第5次分配后各进程的状态及所占资源量.
(2)请继续完成以后的资源分配,直到全部进程满足资源分配的要
求。
次序
进程
申请量
次序进程申请量
1
B
4
5
B
2
2
C
3
6
A
2
3
A
3
7
B
4
4
C
2
8
C
2
5.如果在某个系统中有四个资源类,每个资源类中只有一
个资源,这四个资源分别为Rl,R2,R3和R4。
现有三个进程Pl,P2.P3各自已申请到了部分资源,又在等待其他资源。
表1和表2分别为资源占用表和等待表。
表1
资源占用进程
P3
R2P1
R1P2
R4P3
表2
进程等待资源
P1R4
P2R2
P3R3
请根据占用表和等待表形成一张“等待占用”关系矩阵,设矩
阵中的元素为bij,i=1,2,3,j=l3,死锁检测程序为:
for
k:
=1to3dofori:
=1to3doforj:
=1to3dobij:
=bijV(bikAbkj)
试算:
k=1,2,3时,矩阵中哪些元素会变成I,从而判断
是否会出现死锁。
第九章死锁练习题参考答案
(1)单项选择题
1.D2.C3.B4.D5.A6C7D
(二)填空题
1.死锁2.资源管理不得当,并发执行时3.占有并等待
资源,循环等待资源4.等价的5.没有死锁6.一个条件不成立7.静态分配资源,释放已占资源8.预分配资源.开始执行前9.没有占用资源10.抢夺11.主存空间,处理器12.按序分配13安全状态14.避免死锁15.银行家算法16.死锁的避免17.n(x-1)+l<=m18.死锁检测方法19判断系统,解除死锁20.占用表,等待表21.尚需量,剩余量22终止,抢夺资源23.校验点24.防止,检测
(三)简答题1.若系统中存在一组进程、它们中的每—个进程都占用了
某种资源而又都在等待其中另一个进程所占的资源,这种等待永远不能结束,则说明系统出现了死锁。
产生死锁的原因有两个:
一是操作系统对资源的管理不当,二是没有顾及进程并发执行时可能出现的情况。
2.采用某些资源分配策略使死锁的四个必要条件之一不成立,就能防止死锁。
除第一个条件互斥使用资源没有对应策略外,对占有并等待资源、不可抢夺资源和循环等待资源这三个条件可采用静态分配资源,释放已占资源,抢夺式分配资源和按序分配资源等资源分配策略。
3.如果操作系统能保证所有的进程在有限的时间内得到需要的全部资源,则称系统处于安全状态。
常用银行家算法动态地检测系统中的资源分配情况和进程对资源的需求情况进行资源分配,确保系统处于安全状态。
4解决死锁问题有以下三种方法:
(1)死锁的防止。
系统按预定的策略为进程分配资源,这些分配策略能使死锁的四个必要条件之一不成立,从而使系统不产生死锁。
(2)死锁的避免。
系统动态地测试资源分配情况,仅当能确保系统安全时才给进程分配资源。
(3)死锁的检测。
对资源的申请和分配不加限制,只要有剩余的资源就可把资源分配给申请者,操作系统要定时判断系统是否出现了死锁,当有死锁发生时设法解除死锁。
5.用抢夺资源的方式解除死锁时要注意三点:
(1)抢夺进程
资源时希望付出的代价最小。
(2)为被抢夺者的恢复准备好条件,如返回某个安全状态,并记录有关信息。
(3)防止被抢夺
资源的进程“饿死”一,般总是从执行时间短的进程中抢夺资源。
(四)应用题
1.
(1)根据表,P1,P2和P3三个进程尚需资源数分别是4,
5和I,系统的资源剩余量为2,若把剩余的资源量全部分配给P2,系统产已无资源可分配,使三个进程都等待资源而无法完成,形成死锁。
所以不能先满足进程P2的要求。
⑵可先为进程P3分配1个资源,当它归还3个资源后,这
样共有4个可分配资源,可满足P1申请1个资源的要求,再分配3个资源给进程P1,待P1归还7个资源后,先满足P2申请2个资源的请求,分配给进程P2,再分配3个资源
给P2,使它完成。
2.
(1)系统目前尚余有的资源数为(2,6,2,1),五个进程尚需的资源数分别是A:
(2,0,0,0);B:
(0,0,0,0);C:
(4,6,2,0);D:
(5,7,0,0);E:
(0,0,2,1);由于进程B己满足了全部资源需求,它在有限时间内会归还这些资源,因此可分配资源达到(3,6,4,1),这样就可分配给进程A;等A归还资源后,可分配资源达到(6,12,6,1),再分配
给进程c;之后可分配资源会达到(7,12,10,1),分配给进程D并等待一段时间后,可分配资源将达到(7,12,10,2),最后,可分配给进程E,满足其全部请求。
所以说目前系统处于安全状态。
(2)若此时给进程D分配(2,5,0,0)个资源,进程D尚需(3,2,0,0),则系统剩余的资源量为(0,1,2,1);若待进程B归还资源后,可分配资源能达到(1,1,4,1),根据各进程尚需资源量,只有先满足E的资源需求,待它归还资源后,可配资源只有(1,1,6,1),显然无法满足进程A,c,D中任何一个进程的资源要求,这样系统就会产生死锁。
所以此时系统不能