📜  门| GATE-IT-2004 |第63章

📅  最后修改于: 2021-07-02 15:42:28             🧑  作者: Mango

在某些操作系统中,尝试使用以下方案防止死锁。每个进程都分配有唯一的时间戳,如果被终止,则会以相同的时间戳重新启动。假设Ph是保存资源R的进程,Pr是请求相同资源R的进程,T(Ph)和T(Pr)分别是它们的时间戳。等待或抢占进程之一的决定基于以下算法。

if T(Pr) < T(Ph)

     then kill Pr

else wait

以下哪一项是TRUE?

(A)该方案没有死锁,但没有饥饿
(B)该计划并非没有僵局,而是没有饥饿
(C)该计划既没有僵局,也没有饥饿
(D)该计划既无死锁,又无饥饿答案: (A)
解释:

  1. 该方案确保请求过程的时间戳始终小于保持过程的时间戳
  2. 如果终止,则该进程将使用相同的时间戳记重新启动,并且该时间戳记不能大于现有时间戳记

从1和2开始,很明显任何具有LESSER时间戳的新进程都将被杀死,因此没有DEADLOCK可能

但是,新进程将降低时间戳,因为它的时间戳较低,可能不得不无限等待(因为被终止的进程也将具有与先前被终止的时间戳相同的时间戳)。绝对有可能饿死

所以答案是A
这个问题的测验