循环调度算法示例
什么是循环调度?
该算法的名称来自循环原则,即每个人轮流获得相等份额的东西。它是最古老、最简单的调度算法,主要用于多任务处理。
在循环调度中,每个就绪任务仅在循环队列中按顺序运行有限的时间片。此算法还提供无饥饿执行的进程。
循环调度的特点
以下是循环调度的重要特征:
- 循环调度是一种抢占式算法
- 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.
- 循环调度是一种抢占式算法
- 循环调度方法的最大优点是,如果你知道运行队列上进程的总数,那么你也可以假设同一个进程的最坏情况响应时间。
- 这种方法在上下文切换上花费了更多时间
- 最坏情况延迟是指执行所有任务所需的最大时间。