【问题标题】:Starvation and Deadlock (Operating System)饥饿和死锁(操作系统)
【发布时间】:2015-10-11 20:12:52
【问题描述】:

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

  • a) 死锁是饥饿的极端情况
  • b) 死锁和饥饿是两个不相关的概念
  • c) 饥饿只会导致死锁

【问题讨论】:

    标签: operating-system deadlock


    【解决方案1】:

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

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


    因为,只有低优先级的进程在饥饿状态下无法访问资源,而在死锁状态下,任何进程都无法访问它们所需的资源,因此死锁是一种极端的饥饿状态 em> 极端标准是无法访问资源的进程总数。


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


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

    有传言说,当他们在 1973 年关闭 MIT 的 IBM 7094 时,他们发现了一个在 1967 年提交且尚未运行的低优先级进程。‡


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

    【讨论】:

    • 我们可以说如果有死锁就一定有饥饿吗?
    • @MuditKumarSaini:当然!饥饿 - 低优先级进程未获得所需资源。死锁 - 没有进程获得所需的资源。
    【解决方案2】:

    嗯,a 是正确的。

    饥饿可能导致软锁或次优性能(调度)。

    由于死锁是饥饿的一种特殊情况(所有竞争者都资源匮乏),因此它们/not/无关。

    【讨论】:

    • 感谢您的回答我也这么认为...但是如果我将“c”作为逻辑推理然后“c”选项“a”的超集我使用 ven -选项'c'的图表表示
    【解决方案3】:

    DeadLock :如果两个线程永远在等待对方,这种无限等待称为死锁。等待永远不会结束的线程的长时间等待也称为死锁。 饥饿:在某个点等待结束的线程的长时间等待称为死锁。 例如低优先级线程必须等待直到完成所有高优先级线程,它可能会等待很长时间但在某个点结束,只是饥饿。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 2014-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多