饥饿与僵局(操作系统)

时间:2015-10-11 20:12:52

标签: operating-system deadlock

我知道死锁和饥饿的定义,但我仍然对这几点感到困惑(无法得出哪一个是正确的)

  • a)死锁是一种极端的饥饿案例
  • b)僵局和饥饿是两个不相关的概念
  • c)饥饿只会导致僵局

3 个答案:

答案 0 :(得分:10)

死锁:是指所有进程都无法访问资源,因为每个进程都在等待另一个进程并且存在一个循环。

饥饿:是指低优先级进程无法访问所需资源,因为存在访问资源的高优先级进程。在这种情况下,整个过程系统都没有停止。

因为,只有低优先级进程无权访问饥饿资源,而在死锁中没有进程可以访问他们需要的资源,因此死锁是饥饿的极端情况 极端标准是无法访问资源的进程总数。

死锁和饥饿是相关的,因为两者都是进程无法访问资源的情况。

饥饿不会导致死锁,因为一个饥饿的低优先级进程会一直等待,而其他具有高优先级的进程会一直运行完毕。

有传言说,当他们在1973年关闭麻省理工学院的IBM 7094时,他们发现了一个低优先级的流程,该流程在1967年提交但尚未运行。

Abraham Silberschatz在Operating System Concepts book中提到,Peter B. Galvin,Greg Gagne

答案 1 :(得分:0)

嗯,一个是正确的。

饥饿会导致软锁或次优性能(日程安排)。

由于死锁是饥饿的特例(所有竞争者都资源匮乏),他们是/不/无关。

答案 2 :(得分:0)

DeadLock:如果两个线程一直在相互等待,则这种无限等待类型称为死锁。对永无休止的线程的长时间等待也称为死锁。 饥饿:长时间等待某个线程在某个点结束的线程称为死锁。 例如,低优先级线程必须等到完成所有高优先级线程后,它可能要等待很长时间,但要在某个时候结束,除了饥饿之外什么都没有。