GATE | GATE-IT-2004 |问题63

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

null
 if T(Pr) < T(Ph)

     then kill Pr

else wait

以下哪一项是正确的?

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

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

从1和2可以看出,任何时间戳较小的新进程都将被终止。所以 不可能出现僵局

然而,一个新的过程可能会降低时间戳 不得不无限期地等待 因为它的时间戳较低(as killed进程也将具有相同的时间戳,就像它之前被终止一样)。 饥饿绝对是可能的

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

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享