(1) 产生死锁的主要原因是什么?
(2) 有哪些处理死锁的基本方法?静态分配资源的方法属于哪种处理死锁的方法?而银行家算法属于哪种死锁处理方法?
(3) 设系统中有三种类型的资源(A,B,C)和五个进程(P1,P2,P3,P4,P5),A的资源的数量为17,B的资源的数量为5,C的资源的数量为20,在T0时刻状态如下:
最大资源需求量 | 已分配资源需求量 | |||||
A | B | C | A | B | C | |
P1 | 5 | 5 | 9 | 2 | 1 | 2 |
P2 | 5 | 3 | 6 | 4 | 0 | 2 |
P3 | 4 | 0 | 11 | 4 | 0 | 5 |
P4 | 4 | 2 | 5 | 2 | 0 | 4 |
P5 | 4 | 2 | 4 | 3 | 1 | 4 |
剩余资源数 | A | B | C |
2 | 3 | 3 |
系统采用银行家算法实施死锁处理策略。
(a) T0时刻是否为安全状态?若是请给出安全序列。
(b) 在T0时刻,若进程P2请求资源(0,3,4),是否能实施资源分配?为什么?
(c) 在(2)基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?
(d) 在(3)基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?为什么?