先决条件: 优先级调度
我们已经讨论了中的优先级调度 这 邮递它是批处理系统中最常见的调度算法之一。每个流程都有一个优先级。优先级最高的进程将首先执行,以此类推。
在这篇文章中,我们将讨论与优先级调度相关的一个主要问题及其解决方案。
饥饿 或者不确定阻塞是和优先级调度算法相关联的现象,在这种情况下,准备为CPU运行的进程可以因为低优先级而无限期等待。在负载沉重的计算机系统中,稳定的高优先级进程流可以防止低优先级进程占用CPU。
有传言称,1967年MIT的IBM 7094使用了优先级调度,他们发现了一个直到1973年才提交的低优先级进程。
正如我们在上面的示例中所看到的,进程的优先级比其他进程更早获得CPU的优先级更高。我们可以想象这样一个场景,其中只有一个进程的优先级非常低(例如127),而我们给另一个进程的优先级很高,这可能会导致无限期地等待CPU的优先级较低的进程,这会导致 饥饿 此外,我们还讨论了解决饥饿问题的方法。
区别 僵局 还有OS中的饥饿:
- 如下图所示,当集合中的任何进程都无法前进时,就会发生死锁。另一方面,当一个进程等待一段不确定的时间来获取它所需的资源时,就会发生饥饿。
- 死锁的另一个名字是 循环等待 .饥饿的另一个名称是 活锁 .
- 当死锁发生时,任何进程都无法取得进展,而在饥饿状态下,除了受害者进程之外,其他进程都可以进行或继续。
饥饿的解决方案:衰老
老化是一种逐渐增加系统中等待时间较长的进程优先级的技术。例如,如果优先级从127(低)到0(高),我们可以将等待过程的优先级每15分钟增加1。最终,即使是初始优先级为127的进程,也不需要超过32小时,优先级为127的进程就可以老化为优先级为0的进程。
本文由 萨洛尼·古普塔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。
如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。