计算机操作系统习题及答案5文档格式.doc
《计算机操作系统习题及答案5文档格式.doc》由会员分享,可在线阅读,更多相关《计算机操作系统习题及答案5文档格式.doc(5页珍藏版)》请在冰豆网上搜索。
A.计算机系统发生了重大故障
B.有多个封锁的进程同时存在
C.若干进程因竞争资源而无休止地相互等待他方释放已占有的资源
D.资源数大大小于进程数或进程同时申请的资源数大大超过资源总数
(7)银行家算法在解决死锁问题中是用于_B__的。
A.预防死锁B.避免死锁
C.检测死锁D.解除死锁
(8)某系统中有3个并发进程,都需要同类资源4个,试问该系统不会发生死锁的最少资源数是_C__。
A.12B.11
C.10D.9
(9)死锁与安全状态的关系是_A__。
A.死锁状态一定是不安全状态B.安全状态有可能成为死锁状态
C.不安全状态就是死锁状态D.死锁状态有可能是安全状态
(10)如果系统的资源有向图_D__,则系统处于死锁状态。
A.出现了环路B.每个进程节点至少有一条请求边
C.没有环路D.每种资源只有一个,并出现环路
(11)两个进程争夺同一个资源,则这两个进程
B
。
A.一定死锁
B.不一定死锁
C.不死锁
D.以上说法都不对
(12)设有4个可用的某类资源,由3个进程共享,每个进程最多可申请
B
个资源而使系统不会死锁。
A.1B.2C.3 D.4
2)填空题
(1)在有m(m>
=2)个进程的系统中出现死锁时,处于死锁状态中的进程个数k应该满足的条件是_2<
=k<
=m____。
(2)银行家算法中,当一个进程提出的资源请求将导致系统从安全状态进入不安全状态时,系统就拒绝它的资源请求。
(3)对待死锁,一般应考虑死锁的预防、避免、检测和解除四个问题。
典型的银行家算法是属于避免死锁,破坏环路等待条件是属于预防死锁,而剥夺资源是检测和解除死锁的基本方法。
(4)死锁检测方法要解决两个问题,一是判断系统是否出现了死锁,二是当有死锁发生时怎样去解除死锁。
3)判断题
(1)在发生死锁的四个必要条件中,要四个同时不具备才不会发生死锁。
解:
错。
在发生死锁的四个必要条件中,只要有一个条件不具备,就不会发生死锁。
(2)若系统处于不安全状态,则一定产生了死锁。
若系统处于不安全状态,不一定产生死锁。
(3)如果系统处于安全状态,则安全序列一定是唯一的。
如果系统处于安全状态,则安全序列不一定唯一。
(4)在对系统资源分配图进行简化时,不同的简化次序会得到相同的简化结果。
对。
(5)计算机产生死锁的根本原因是资源有限和操作次序不当。
4)解答题
(1)产生死锁的必要条件是什么?
解决死锁问题常用哪几种措施?
答:
产生死锁的四个必要条件:
①互斥条件:
一个资源每次只能被一个进程使用。
②请求与保持条件:
一个进程因请求资源而阻塞时,对已获得的资源保持不放。
③不剥夺条件:
进程已获得的资源,在末使用完之前,不能强行剥夺。
④循环等待条件:
若干进程之间形成一种头尾相接的循环等待资源关系。
解决死锁问题常用哪几种措施有忽略死锁,预防死锁,避免死锁,检测和解除死锁。
(2)设系统中仅有一类独占型资源,进程一次只能申请一个资源。
系统中多个进程竞争该类资源。
试判断下述哪些情况会发生死锁,为什么?
①资源数为4,进程数为3,每个进程最多需要2个资源。
②资源数为6,进程数为2,每个进程最多需要4个资源。
①不会。
因为当每个进程拥有一个资源时,系统还有一可用资源,此资源分配给任何一个进程,则该进程可顺利完成,所以不会发生死锁。
②会。
当每个进程拥有3个资源时,系统资源已分配完,而此时2个进程都不能往前推进,彼此相互等待,从而形成死锁。
(3)表5-6给出了系统某时刻的资源分配情况:
表5-6资源分配表
资源情况
进程
Allocation
Need
Available
r1r2r3
A
B
C
D
E
003
100
135
033
001
175
235
065
162
试问:
①此时该状态是否安全?
②如果进程C提出请求RequestC(1,2,2),系统能否将资源分配给它?
解:
①因为存在安全序列,如<
A,D,E,B,C>
,所以此时系统安全。
②若满足进程C的请求,则可用资源变为<
0,4,0>
,此时系统不存在安全序列,也就是说如果分配,系统会从安全状态变成不安全状态,所以不能分配。
(4)考虑一个共有150个存储单元的系统,如下分配给三个进程,P1最大需求70,己占有25;
P2最大需求60,己占有40;
P3最大需求60,己占有45。
使用银行家算法,以确定下面的每个请求是否安全。
如果安全,找出安全序列;
如果不安全,给出结果分配情况。
①P4进程到达,P4最大需求60,最初请求25个。
②P4进程到达,P4最大需求60,最初请求35个。
由题设可知,当前时刻系统中有三个进程,P4尚未到达。
Max
P1
P2
P3
P4
70
60
25
40
45
20
15
因为存在安全序列<
P3,P2,P1>
①当P4进程到达,P4最大需求60,最初请求25个。
试探分配,则系统资源分配情况如下:
35
此时系统仍然存在安全序列<
P3,P2,P1,P4>
,所以此时系统是安全的,可以分配。
②当P4进程到达,P4最大需求60,最初请求35个。
5
此时找不到安全序列,说明该请求不能满足,作废试探,不分配。
(5)设系统中仅有一类数量为M的独占型资源,系统中N个进程竞争该类资源,其中个进程对该资源的最大需求量为W。
当M,N,W分别为下列值时,判断哪些会发生死锁,为什么?
①M=2,N=2,W=1;
②M=3,N=2,W=2;
③M=3,N=2,W=3;
④M=5,N=3,W=2;
⑤M=6,N=3,W=3。
①不会,因为每个进程的资源都可以得到满足。
②不会,总共两个进程,总有一个进程的申请可以得到满足,当它退出时会释放占有的资源,从而满足另一个进程。
③可能,比如说其中一个进程占有两个资源,另一个进程占有1个,两个进程的资源都得不到满足,相互等等,出现死锁。
④不会,因为总有两个进程的资源申请得到满足,它们运行完后会释放资源,满足另一个进程。
⑤可能,3个进程,每个进程都分配两个资源的情况下,这时三个进程都没有得到资源的满足,出现相互等待,从而产生死锁。
(6)假设系统配有相同类型的m个资源,系统中有n个进程,每个进程至少请求一个资源,最多不超过m个资源。
请证明,当n个进程最多需要的资源数之和小于(m+n)时,该系统不会发生死锁。
证明:
设N个进程请求的最大资源量分别为Maxi,i=1,2,…n。
根据条件,有
∑Maxi<m+n。
假设系统发生死锁,则所有资源都被分配,于是
∑Alloci=n
∴∑Needi=∑Maxi-∑Alloci<
n
上式表明n个进程还需要的资源之和小于n,这意味着至少有一个进程的资源需求为0。
而由题设条件知Needi〉=1,矛盾。
所以该系统不会发生死锁。
(7)设有一系统在某时刻的系统资源分配图如图5-5所示。
此时系统是否出现死锁?
为什么?
R1
P2
R2
P3
R3
P5
P4
R4
R5
R6
P7
P6
图5-5资源分配图
对系统资源分配图进行简化,找既不阻塞有不孤立的进程节点。
P6是既不阻塞有不孤立的进程节点,消去其请求边和分配边,使之成为孤立的进程节点;
如下图所示。
此时再也找不到这样的进程节点。
由于系统资源分配图不能进行完全简化,所以此时系统出现死锁。