自私轮循CPU调度


操作系统中的调度算法根据进程的到达时间或优先级执行进程。每个算法都通过抢占或非抢占方法选择等待队列中的进程。抢占式算法为具有更高优先级的进程提供对 CPU 的访问权限,并抢占任何正在以较低优先级运行的其他进程。但在非抢占式调度的情况下,当进程开始执行时,即使在就绪状态下存在更高优先级的进程,它也无法被抢占。

传统的轮循调度算法是一种抢占式算法,其中每个进程在其执行中获得固定数量的时间片或量子。在给定的时间片后,进程进入队列的末尾,并且就绪队列中的其他进程以 FCFS 模式进行服务。自私轮循算法是传统算法的一种变体,但它为执行时间更长且具有高优先级的进程提供支持,并且比传统方法提供了更好的实现。

自私轮循调度

此算法为执行时间更长且具有更高优先级的进程提供 CPU 资源,并且队列中的其他进程可以提高其优先级以在短时间内获得 CPU,因此称为“自私”。就绪队列中的每个进程都被分配一个优先级级别,优先级较高的进程比优先级较低的进程接收更多的 CPU 时间。

在这里,为就绪队列中的所有进程创建两个列表,即“新”和“已接受”。第一次进入队列的进程必须等到“已接受”进程完成其服务。列表中的所有进程都通过应用传统的轮循方法获得相等数量的 CPU 时间,其中每个进程都被分配一个时间片来执行,并且在时间片内完成执行后,它被附加到队列的末尾,从而为下一个进程提供执行的机会。

考虑一个示例,P1、P2 和 P3 是三个不同的进程,每个进程都有不同的优先级级别。P1 被分配为高优先级,其次是 P2,P3 的优先级最低。为每个进程设置一个具有预定义时间片的轮循分配。

  • 进程 P1 可以随时请求操作系统提高其优先级。其余进程的优先级级别将由操作系统更改。

  • 其余进程的优先级级别将由操作系统更改。进程 P2 将请求一个包含更高级别的优先级,操作系统将调整分配给 P2 的优先级级别,使其优先级高于 P1 和 P3。

  • 因此,现在进程 P2 将在下一个进程中拥有最多的 CPU 时间。

  • 如果某个进程不必要地使用了给定的时间片,这可能会导致其他进程等待更长时间。

  • 这鼓励进程有效地利用 CPU,而不是占据 CPU。从这个例子中,说明了 SRR 的基本思想,其中每个进程都可以根据其活动动态地更改其优先级,例如它使用了多少 CPU 时间或它等待 CPU 多长时间。

  • SRR 可以通过多种方式应用,并且有各种提高或降低进程优先级的标准。系统可能会考虑进程的大小或它在等待 CPU 时已使用的 CPU 时间。

优点

  • 通过有效利用 CPU 来提高系统吞吐量,因为每个进程只需要利用执行所需的 CPU 时间。

  • 根据轮循算法,每个进程都将分配相等数量的 CPU 时间。

缺点

  • 任何进程都可以自私地利用所有分配的 CPU 时间,即使不需要。因此,其他进程会长时间等待获取 CPU 以执行其处理。

  • 执行其处理。对于基于时间约束工作的实时系统来说,它可能不是一个合适的算法,在实时系统中,每个进程或任务都必须在给定时间段内完成。

  • 对于需要较少 CPU 时间的进程来说,响应时间较高,因为它必须等待“已接受”进程完成其量子时间。

结论

自私轮循调度为高优先级进程提供有效的 CPU 时间,新进程必须等到高优先级进程完成其服务时间。它比普通的轮循调度或其他基于优先级的调度技术更有效。CPU 从不空闲,因为进程会长时间执行,并且就绪队列中的其他进程具有在给定时间片内完成执行的优先级。但主要缺点是它不支持需要处理离散事件的实时系统。

更新于: 2023年7月18日

493 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始
广告