饥饿与车队效应

时间:2019-05-27 06:50:07

标签: operating-system theory starvation

饥饿护卫效应之间的唯一区别是护卫效应主要在 FCFS 调度算法上定义,而饥饿则在基于优先级的调度

我对这两种效果进行了研究,但找不到比较。这是基于我在大学期间学到的操作系统理论。

1 个答案:

答案 0 :(得分:0)

饥饿和护卫舰可能同时发生。可以通过进入此循环的任务来模拟最简单的饥饿(我希望它不是UDB):

while (1) {
}

在FCFS中,此任务将永远不会交出CPU,因此它后面的所有任务都会饿死。在基于优先级的系统中,同一任务将使优先级较低的每个任务饿死。

车队通常被认为是资源争夺问题;一个任务具有资源(cpu),而其他任务则必须等到完成为止。在基于优先级的系统中,这体现在 priority inversion 中,其中阻止了高优先级任务,因为它需要低优先级任务拥有的资源。有很多方法可以缓解这些问题,包括优先级继承天花板协议。缺少这些机制,争用资源的任务将像在fcfs中一样形成车队。与fcf不同,不竞争资源的任务可以随意执行。

响应性,吞吐量和公平性的期望常常是矛盾的,这部分是为什么我们没有真正解决计划问题的原因。