循环计划:允许多次列出流程?
-
16-10-2019 - |
题
在循环调度程序中,多次在流程列表中添加一个流程是一种使其更高优先级的廉价方法。
我想知道这可能是多么实用。它比其他技术具有什么好处,例如给流程更长的时间切片(好处:更少的切换时间)或保持高优先级流程的单独列表。特别是,多次列出过程如何影响公平和反应性?
(练习2.16在安德鲁·塔南鲍姆(Andrew Tanenbaum) 操作系统:设计和实施 第一版)
解决方案
这种方法的优点是循环计划非常有效,因此您无需依靠更复杂的调度程序,这会窃取周期。引入更长的时间切片以提高优先级流程将降低其他线程的响应能力,并使OS更难跳入打断中断等。维护单独的流程列表将需要更复杂的调度程序,这在周期方面会更昂贵。不过,我看不出公平有什么问题。我猜问题是粒度是相当的过程:过程只能具有基本时机的整数倍数。
一个负数是,删除过程将更加昂贵,因为该过程的每次发生都必须从队列中删除。不过,也许这可以懒惰地做到。
其他提示
多次将任务添加到循环计划队列中,这会打开一个问题,即确保条目保持合理分布。这很容易确保系统是否允许动态任务创建或删除,但通常不可能。
除了从队列中删除项目的更复杂的过程外,队列中的过程条目最终会导致行为不平衡,这在多个优先级级别上更容易公平。
不隶属于 cs.stackexchange