在一个系统中,存在三种类型的资源:E、F 和G。四个进程P 0 、P 1 、P 2和P 3并发执行。一开始,进程使用名为 Max 的矩阵声明了它们的最大资源需求,如下所示。例如,Max[P 2 , F] 是 P 2需要的 F 的最大实例数。在任何给定状态下分配给各个进程的资源实例数由名为 Allocation 的矩阵给出。
考虑具有如下所示的分配矩阵的系统状态,其中 E 的 3 个实例和 F 的 3 个实例是唯一可用的资源。
从避免死锁的角度来看,下列哪一项是正确的?
(A)系统处于安全状态
(B)该系统是不是处于安全状态,但将是安全的如果E的一个实例更是可用
(C)系统并非处于安全状态,但将是安全的如果f多一个实例是可用
(d)系统并非处于安全状态,但将是安全的,如果其中一个G多个实例是可用答案:(一)
解释:
可用(3, 3, 0),既可以满足P0,也可以满足P2。
取 P0 <3, 3, 0>。完成后我们有 (3, 3, 0) + (1, 0, 1) = (4, 3, 1)
取 P2 <0, 3, 0>。完成后我们有 (4, 3, 1) + (1, 0, 3) = (5, 3, 4)
取 P1 <1, 0, 2>。完成后我们有 (5, 3, 4) + (1, 1, 2) = (6, 4, 6)
取 P3 <3, 4, 1>。完成后我们有 (6, 4, 6) + (2, 0, 0) = (8, 4, 6)
安全顺序: P0–>P2–>P1–>P3
因此,选项(A)是正确的。
这个问题的测验