📜  门| GATE-CS-2014-(Set-1) |第 65 题

📅  最后修改于: 2021-09-25 06:23:09             🧑  作者: Mango

操作系统在管理三种资源类型 X、Y 和 Z 到三个进程 P0、P1 和 P2 的分配时使用银行家算法来避免死锁。下表给出了当前的系统状态。这里,Allocation 矩阵显示当前分配给每个进程的每种类型的资源数,Max 矩阵显示每个进程在执行过程中所需的每种类型的最大资源数。

GATECS2014Q42

尚有 3 个 X 型单元、2 个 Y 型单元和 2 个 Z 型单元。该系统是
目前处于安全状态。考虑以下对额外资源的独立请求
当前状态:

REQ1: P0 requests 0 units of X,  
      0 units of Y and 2 units of Z
REQ2: P1 requests 2 units of X, 
      0 units of Y and 0 units of Z

以下哪一项是正确的?
(A)只允许 REQ1。
(B)只允许 REQ2。
(C) REQ1 和 REQ2 都可以被允许。
(D)不允许 REQ1 和 REQ2答案:(乙)
说明:这是当前的安全状态。

AVAILABLE X=3, Y=2, Z=2
MAX ALLOCATION
X Y Z X Y Z
P0 8 4 3 0 0 1
P1 6 2 0 3 2 0
P2 3 3 3 2 1 1

现在,如果请求 REQ1 被允许,状态将变为:

AVAILABLE X=3, Y=2, Z=0
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 3 8 4 0
P1 6 2 0 3 2 0 3 0 0
P2 3 3 3 2 1 1 1 2 2

现在,凭借当前的可用性,我们可以满足 P1 的需求。状态将变为:

AVAILABLE X=6, Y=4, Z=0
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 3 8 4 0
P1 6 2 0 3 2 0 0 0 0
P2 3 3 3 2 1 1 1 2 2

由于缺乏 Z 资源,由此产生的可用性将无法满足 P0 或 P2 的需求。

因此,系统将陷入僵局。

⇒ 我们不能允许 REQ1。

现在,在给定的安全状态下,如果我们接受 REQ2 :

AVAILABLE X=1, Y=2, Z=2
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 1 8 4 2
P1 6 2 0 5 2 0 1 0 0
P2 3 3 3 2 1 1 1 2 2

有了这种可用性,我们可以为 P1 提供服务(也可以为 P2 提供服务)。所以,状态是:

AVAILABLE X=6, Y=4, Z=2
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 1 8 4 2
P1 6 2 0 5 2 0 0 0 0
P2 3 3 3 2 1 1 1 2 2

根据当前的可用性,我们为 P2 提供服务。状态变为:

AVAILABLE X=8, Y=5, Z=3
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 1 8 4 2
P1 6 2 0 5 2 0 0 0 0
P2 3 3 3 2 1 1 0 0 0

最后,我们为 P0 服务。状态现在变为:

AVAILABLE X=8, Y=5, Z=4
MAX ALLOCATION NEED
X Y Z X Y Z X Y Z
P0 8 4 3 0 0 1 0 0 0
P1 6 2 0 5 2 0 0 0 0
P2 3 3 3 2 1 1 0 0 0

如此获得的状态是安全状态。 ⇒ 可以允许 REQ2。

因此,只能允许 REQ2。

因此,B 是正确的选择。

如果您发现上面的帖子有任何错误,请在下面发表评论。
这个问题的测验