一、单项选择题 1.C 2.B 3.C 4.Cﻩ 5.Dﻩ 6.Aﻩ 7.B 8.C 9.B ﻩ10.A
二、多项选择题 ABCDE 三、判断题 1.[题解]是。
2.[分析]限制共享资源互斥使用后仍可能引起系统死锁,可举例说明。例如,教材中五个哲学家问题,采用了PV操作来保证共享资源的互斥使用,但还是发生了循环等待,且这种等待永远不能结束,引起了死锁。所以,资源的互斥使用不能保证系统不会死锁。 [题解]否。
3. [分析]若任何一个进程在申请新资源前总是先归还已得到的资源,则任何进程都不会发生“占有且等待资源”的情况。也就是说,这种资源分配策略能破坏形成死锁的四个必要条件中的第二个条件,故可防止死锁。 [题解]是。 四、填空题
1. 保持申请,循环等待
2 死锁预防,死锁避免,死锁恢复 3.预防
4.预先分配策略,有序分配 5.不安全 6.银行家 7.安全
8.重新启动、终止进程、剥夺资源、进程回退 9.循环等待 10.预先分配 五、综合计算题
1. 死锁是因竞争资源而引起的一种具有普遍性的现象,在多道程序系统中,由于多个并发进程共享系统的资源,如使用不当有可能造成一种僵局,即系统中两个或多个进程无限期地等待永远不会发生的条件,在无外力的干预下,这些进程都不能向前推进,我们称之为死锁。死锁不仅在两个进程之间发生,也可能在多个进程之间,甚至在系统全部进程之间发生。当死锁发生时,一定布一个资源被无限期地占用而得不到释放。
"饿死\"是指系统中的每个资源占用者都在有限的时间内释放它所占用的资源,但是仍然存在申请者永远得不到资源的现象。因此,在操作系统中,不仅要考虑如何防止\"死锁\还要考虑如何避免\"饿死\"。
2. 死锁是指多个进程因竞争资源而造成的一种僵局,若无外力的作用,这些进程都将永远不能再向前推进。所以,死锁是由于系统中多个进程所共享的资源不足以同时满足需要时,引起对资源的竞争而产生的。但竞争资源不一定都会产生死锁,因为只要进程推进顺序合法,就不会产生死锁。
3. ①T0时刻是安全状态,因为可以找到一个安全的序列(P4,P5,Pl,P2,P3)。
②不能分配。因为所剩余的资源数量不够。 ③可以分配。当分配完成后,系统剩余的资源向量为(0,3,2),这时仍可找到一个安全的序列队, (P4,P5,Pl,P2,P3)。 ④不能分配。若分配完成后,系统剩余的资源向量为(0,3,匀,这时无法找到一个安全的序列。
4. (1)可能会发生死锁
例如:进程P1、P2和P3分别获得资源S3、S1和S2后再继续申请资源时都要等待,这是循环等待。
(或答进程在等待新源时均不释放已占资源。) (2)可有几种答案: A.采用静态分配
由于执行前己获得所需的全部资源,故不会出现占有资源又等待别的资源的现象(或不l会出现循环等待资源现象)。 或B.采用按序分配
不会出现循环等待资源现象。 或C.采用银行家算法
因为在分配时,保证了系统处于安全状态。
5.解:(1)利用银行家算法对此T0时刻的资源分配情况进行分析,可得此时刻的安全性分析情况: 进程ﻩclaim allocation need work A BﻩC A BﻩC A BﻩC A B C P1 5 5 9ﻩ2 1ﻩ2 3ﻩ4ﻩ7ﻩ3ﻩ2ﻩﻩ3 P2 5 3ﻩ6 4 0ﻩ2ﻩ1 3ﻩ 4
P3 4 0ﻩ11ﻩ4 0 5 0 0 6 P4 4 25ﻩ 2 0 4 2 2 1 4 3 7 P5 4ﻩ2 4 3 14ﻩ 1 1 0 7 4 11
9 5 13
13 5 15 17 5 20 从上述情况分析中可以看出,此时存在一个安全序列:P4—P5—P1—P2—P3, 故该状态是安全的。
(2)在T0时刻若进程P2请求资源(0,3,4),因请求资源数(0,3,4)>剩余资源数(2,3,3),所以不能分配。
6. (1)利用银行家算法对此T0时刻的资源分配情况进行分析,可得此时刻的安全性分析情况:
进程 分配矩阵 最大需求矩阵 尚需资源矩阵 可用资源 A 3 0 1 1 4 1 1 1 1ﻩ1 0 0 1 0ﻩ2 0
B 0 1 0 0 0 2 1 2ﻩﻩﻩ0 1 1 2 C 1 1 1 0 4 2 1 0 ﻩ 3 1ﻩ0ﻩ0 D 1 1 0 1 1 1 1 1ﻩ ﻩ0 0ﻩ1 0 ﻩ2 1 2ﻩ1
E 0 0 0 0 2 1 1 0 2ﻩ1ﻩ10ﻩ 2 1ﻩ2 1 ﻩﻩ 51ﻩ 3 2 ﻩﻩﻩﻩﻩ ﻩﻩ ﻩﻩ5ﻩ2ﻩ3ﻩ2 ﻩﻩﻩﻩ ﻩ ﻩ ﻩ ﻩﻩ6ﻩ3ﻩ4 2
从上述情况分析中可以看出,此时存在一个安全序列:D—E—A—B—C, 故该状态是安全的。 (2) 若进程B请求(0,0,1,0)<(1,0,2,0),假设满足分配,此刻分配情况如下
进程 分配矩阵 最大需求矩阵 尚需资源矩阵 可用资源
A 3 0 1 1 4 1 1 1 1 1ﻩ0ﻩ0ﻩ 1ﻩ0 1ﻩ0 B 0 1 1 0 0 2 1 2 0 1 0 2 C 1 1 1 0 4 2 1 0ﻩﻩ 3 1ﻩ0 0 D 1 1 0 1 1 1 1 1ﻩ 0ﻩ0ﻩ1 0ﻩﻩ2 1ﻩ1ﻩ1 E 0 0 0 0 2 1 1 01ﻩ2ﻩﻩﻩ 1 0ﻩﻩ2ﻩ1 1 1
ﻩ 5 1 2ﻩ2 ﻩ ﻩ ﻩ ﻩ ﻩ ﻩﻩ ﻩ5 2 3 2 ﻩ ﻩ ﻩ ﻩ ﻩ6 3ﻩ4 2
从上述情况分析中可以看出,此时存在一个安全序列:D—E—A—B—C, 故该状态是安全的。
(3)进程E也请求(0,0,1,0) <(1,0,1,0),假设满足分配,此刻分配情况如下
进程 分配矩阵 最大需求矩阵 尚需资源矩阵 可用资源 A 3 0 1 1 4 1 1 1 10ﻩ0ﻩ1ﻩ ﻩ1ﻩ0 0 0 B 0 1 1 0 0 2 1 2ﻩﻩ 0 1 0 2 C 1 1 1 0 4 2 1 0ﻩ 30ﻩ1ﻩ 0 D 1 1 0 1 1 1 1 1ﻩ 00ﻩ1ﻩ0ﻩ ﻩ E 0 0 1 0 2 1 1 0 2ﻩ1ﻩ0ﻩ0
此时可用资源为(1,0,0,0),不能满足任何一个进程的需求,使得进程进入不安全状态,所以不能分配。
7. [分析]本题要求限制进程申请的资源数来确保系统的安全,若要使系统不发生死锁则应 保证系统处于“安全状态”,即要保证所有的进程能在有限的时间里得到所需的资源。我们可以假设允许每个进程最多可以申请x个资源(1= n(x-1)+1= 当m= [讨论]在实际的系统中每个进程需要多少个资源是由进程自己决定的,不能人为地去限制它。但是,如果在设计系统时能预计到并发进程申请资源量的情况,则可用上述方法来预测系统的安全性。只要系统拥有的资源数、可能并发执行的进程数、每个进程所需资源量之间的关系符合上述关系,则不必受资源分配策略的限制,只要有空闲资源就可分配给申请者,系统不会出现死锁现象。 8. [题解]有上题可知,每个进程最多可以申请3台磁带机,共有 N个进程,为保证系统不发生死锁,应满足最坏的情况是每个进程都已得到了2个资源,现均要申请最后一个资源,系统中共有9台磁带机,所以此时应满足2*N+1=9,解得N=4. 9. 设每个进程对共享资源的最大需求量为x(0 因篇幅问题不能全部显示,请点此查看更多更全内容