在个人计算机,服务器和其他类型的交互式系统上实施了常见的调度算法
为每个过程分配一个时间间隔,称为其“量子”,在此期间允许其运行。完成其量子过程后,将其封锁并置于队列的结尾。调度程序是隐含的假设,即所有过程同样重要。循环的有趣问题是量子的长度。设置量子太短会导致太多的过程开关并降低CPU效率。但是设置时间太长可能会导致对简短互动请求的反应不佳。
每个过程都被分配一个优先级,并且可以运行具有最高优先级的可运行的RPOCESS。为了防止高优先级流程无限运行,调度程序可以在每个时钟刻度或其他时间间隔下降低当前运行过程的优先级。如果此操作导致其优先级降至下一个最高过程的优先级,则会发生一个过程开关。可以将优先级分配给静态或动态过程。通常方便地将进程分组为优先级CALSSES并在类中使用优先级调度,但是课程优先调度内的圆形旋转计划存在无限期阻止或饥饿的问题,在该问题中,低优先级任务可以永远等待。解决这个问题的一种常见解决方案是衰老,其中工作的优先级增加了,他们等待的时间越长。在这个计划下,低优先级的工作最终将在时间上获得足够高的优先级。
当可以对过程进行分类时,就可以建立多个单独的队列,每种都实现任何计划算法最适合该类型的作业。还必须在队列之间进行调度,这是计划一个队列以获取与其他队列相对的时间。常见的选择是优先级和圆形旋转。进程无法切换队列,退出队列或输入队列。
由于以下原因,此计划类似于多级队列调度计划,除了作业可以从一个队列转移到另一个队列以外: - 如果过程的特征在CPU -INTIMESIVE之间切换到I/O密集型。 - 如果过程老化,那么该过程已经等待了很长时间
该计划运行最短的过程,并根据过去的行为计算哪些过程最短。计算很简单,将新值添加到当前估计值中,并将总和除以2。通过获取当前测量值的加权平均值来估算序列中的下一个值的技术,而先前的估计有时称为老化。
随着n个过程的运行,所有事物都相等,每个过程都应得到CPU周期的1/N。系统必须跟踪自创建以来每个过程的CPU数量,然后计算每个过程有权与实际CPU时间比率的CPU量。然后,该算法以最低的评分运行,直到其比率超过其最接近的竞争对手的比率
想法是为系统资源(例如CPU时间)提供流程彩票。当必须做出安排决定时,随机选择了彩票,并保存该票证的过程获取资源。可以给更重要的流程提供额外的门票,以增加其获胜的IDD。持有门票f的过程将获得有关资源的一小部分F。如果他们愿意