最长作业优先 (LJF) 和循环 (RR) 调度算法的区别

最长作业优先 (LJF) 和循环 (RR) 调度算法的区别

1. 最长作业优先(LJF):

最长作业优先 (LJF) 基于流程的突发时间。这些进程根据它们的突发时间被放入就绪队列。在该算法中,首先处理突发时间最长的进程。仅比较在该时间之前存在或已经到达的那些进程的突发时间。它本质上也是非抢占式的。它的抢先版本称为最长剩余时间优先(LRTF)算法。

该算法的主要缺点是它为给定的一组进程提供了非常高的平均等待时间和平均周转时间,从而降低了系统的有效性。它也可能导致车队效应。

注意:如果两个进程具有相同的突发时间,则使用 FCFS 打破平局,即先处理先到达的进程。

2. 循环赛(RR):

Round-Robin (RR) 调度算法是专门为分时系统设计的。进程被放入就绪队列,在这种情况下是一个循环队列。在这种情况下,定义了一个称为时间量子的小时间单位。该算法从队列中选择第一个进程并在时间量定义的时间内执行它。如果进程的突发时间小于时间量子,则 CPU 执行下一个进程,但如果它的突发时间高于时间量子,则该进程被中断,并在相同的时间量子内执行下一个进程。如果一个进程被中断,则会发生上下文切换,并将该进程放回队列的尾部。它本质上是先发制人的。

该算法主要依赖于时间量子。非常大的时间量使 RR 与 FCFS 相同,而非常小的时间量将导致开销,因为上下文切换将在非常小的间隔后一次又一次地发生。该算法的主要优点是所有进程一个接一个地执行,这不会导致进程饥饿或进程等待很长时间才能执行。

Longest Job First(LJF)和Round-Robin(RR)调度算法的区别如下:

最长作业优先 (LJF) 循环 (RR)
最长作业优先 (LJF) 根据突发时间执行流程,即按突发时间的降序排列。 Round-Robin (RR) 根据定义的时间量执行进程,即每个进程执行固定的时间量。
LJF 也是非抢占式的,但它的抢占式版本也称为最长剩余时间优先 (LRTF) 算法。 Round-Robin (RR) 本质上是抢占式的。
给定流程集的平均等待时间和平均周转时间非常长。 给定进程集的平均等待时间非常短,并且取决于时间量。
LJF 算法难以实现。 实现 RR 非常容易。
一个短进程可能永远不会被执行,而系统可能会继续执行较长的进程,并且在多用户系统的情况下,用户可能会觉得他的工作被忽略了。 每个进程都被执行,每个用户都觉得他的工作正在完成,因为 CPU 为每个进程提供了相同的时间。
在 LJF 的情况下,非常长的等待时间会导致处理速度变慢并降低系统的有效性。 在 RR 的情况下,如果时间量非常小,那么上下文切换会在非常短的时间间隔后一次又一次地发生,这会导致开销。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程