循环调度算法示例

什么是循环调度?

该算法的名称来自循环原则,即每个人轮流获得相等份额的东西。它是最古老、最简单的调度算法,主要用于多任务处理。

在循环调度中,每个就绪任务仅在循环队列中按顺序运行有限的时间片。此算法还提供无饥饿执行的进程。

循环调度的特点

以下是循环调度的重要特征:

  • 循环调度是一种抢占式算法
  • CPU 经过固定的间隔时间(称为时间量/时间片)后转到下一个进程。
  • 被抢占的进程被添加到队列末尾。
  • 循环调度是一种时钟驱动的混合模型
  • 时间片应为最小值,分配给需要处理的特定任务。但是,它可能因操作系统而异。
  • 它是一种实时算法,可以在特定的时间限制内对事件做出响应。
  • 循环赛是最古老、最公平、最简单的算法之一。
  • 传统操作系统中广泛使用的调度方法。

循环调度示例

考虑以下三个过程

进程队列 爆发时间
P1 4
P2 3
P3 5

循环调度

步骤1) 执行从进程 P1 开始,其突发时间为 4。此时,每个进程执行 2 秒。P2 和 P3 仍在等待队列中。

循环调度

步骤2)在时间 =2 时,P1 被添加到队列末尾,P2 开始执行

循环调度


步骤3) 在时间=4时,P2被抢占并添加到队列末尾。P3开始执行。

循环调度

步骤4) 在时间=6时,P3被抢占并添加到队列末尾。P1开始执行。

循环调度

步骤5) 在时间=8时,P1的突发时间为4。它已完成执行。P2开始执行

循环调度

步骤6) P2 的突发时间为 3。它已经执行了 2 个间隔。在时间=9 时,P2 完成执行。然后,P3 开始执行,直到完成。

循环调度

步骤7) 让我们计算一下上述例子的平均等待时间。

Wait time 
P1= 0+ 4= 4
P2= 2+4= 6
P3= 4+3= 7

循环调度的优点

以下是循环调度方法的优点/好处:

  • 它不会面临饥饿或护航效应的问题。
  • 所有作业都获得公平的 CPU 分配。
  • 它处理所有流程,没有任何优先级
  • 如果您知道运行队列中的进程总数,那么您还可以假设同一进程的最坏情况响应时间。
  • 这种调度方法不依赖于突发时间。这就是它在系统上易于实现的原因。
  • 一旦某个进程在特定时间段内执行完毕,该进程就会被抢占,而另一个进程则会在给定的时间段内执行。
  • 允许操作系统使用上下文切换方法保存被抢占进程的状态。
  • 就平均响应时间而言,它提供了最佳的性能。

循环调度的缺点

以下是使用循环调度的缺点/弊端:

  • 如果操作系统的切片时间较低,处理器的输出将会减少。
  • 这种方法在上下文切换上花费了更多时间
  • 其性能很大程度上取决于时间量。
  • 无法为进程设置优先级。
  • 循环调度不会对更重要的任务给予特殊优先权。
  • 理解力下降
  • 较短的时间量会导致系统中的上下文切换开销较高。
  • 在这个系统中,找到正确的时间量是一项相当困难的任务。

最坏情况延迟

该术语用于表示执行所有任务所需的最大时间。

  • dt = 表示任务被带入列表的检测时间
  • st = 表示从一个任务切换到另一个任务的时间
  • et = 表示任务执行时间

分子式:

Tworst = {(dti+ sti + eti ), + (dti+ sti + eti )2 +...+ (dti+ sti + eti )N., + (dti+ sti + eti  + eti) N} + tISR	
t,SR = sum of all execution times

总结

  • 该算法的名称源自循环原理,即每个人轮流获得平等的份额。
  • 循环调度是最古老、最公平、最简单的算法之一,也是传统调度方法中广泛使用的调度方法。 OS.
  • 循环调度是一种抢占式算法
  • 循环调度方法的最大优点是,如果你知道运行队列上进程的总数,那么你也可以假设同一个进程的最坏情况响应时间。
  • 这种方法在上下文切换上花费了更多时间
  • 最坏情况延迟是指执行所有任务所需的最大时间。