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

📅  最后修改于: 2021-09-25 04:19:45             🧑  作者: Mango

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

if T(Pr) < T(Ph)

     then kill Pr

else wait

以下哪一项是正确的?

(A)该方案是无死锁的,但不是无饥饿的
(B)该方案不是无死锁的,而是无饥饿的
(C)该方案既不无死锁也不无饥饿
(D)该方案既无死锁又无饥饿答案:(一)
解释:

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

从 1 和 2,很明显,任何具有较小时间戳的新进程都将被杀死。因此,不可能出现死锁

但是,新进程将降低时间戳可能必须无限等待,因为它的时间戳较低(因为被杀死的进程也将具有相同的时间戳,因为它之前被杀死)。饥饿绝对是可能的

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