先到先服务 (FCFS) 和最长作业优先 (LJF) CPU 调度算法的区别

先到先服务 (FCFS) 和最长作业优先 (LJF) CPU 调度算法的区别

1. 先到先得 (FCFS) :

先到先服务 (FCFS) 是最简单的算法类型。它是一种非抢占式算法,即进程一旦开始执行就不能被中断。FCFS 是在 FIFO 队列的帮助下实现的。进程按到达时间的顺序被放入就绪队列。首先到达的进程成为队列的头部,而后到达的其他进程被添加到队列的尾部。在先到先服务 (FCFS) 算法中,先到达的进程在 CPU 空闲时首先被 CPU 发送执行。

该算法的主要缺点是平均等待时间通常很长。这也导致了车队效应。这会导致较低的设备或 CPU 利用率和较低的效率。

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

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

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

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

先到先服务(FCFS)和最长作业优先(LJF)调度算法的区别如下:

先到先得 (FCFS) 最长作业优先 (LJF)
先到先服务 (FCFS) 按进程到达的顺序执行进程,即先到达的进程先执行。 最长作业优先 (LJF) 根据突发时间执行流程,即按突发时间的降序排列。
FCFS 本质上是非抢占式的。 LJF 也是非抢占式的,但它的抢占式版本也称为最长剩余时间优先 (LRTF) 算法。
FCFS 导致进程的等待时间很长,从而增加了平均等待时间。 给定流程集的平均等待时间和平均周转时间非常长。
FCFS 算法在任何系统中都是最容易实现的。 LJF 算法很难实现。
一个进程可能需要等待很长时间才能执行,具体取决于首先到达的进程的突发时间。一个短进程可能永远不会被执行,系统可能会继续执行较长的进程。 在多用户系统的情况下,这可能会导致用户感觉他的工作没有完成。
FCFS 会导致设备和 CPU 利用率降低,从而降低系统效率。 LJF 导致非常低的处理速度,从而由于较长的平均等待时间和周转时间而降低了系统的有效性。
FCFS 导致最小的开销。 在 LJF 的情况下,应该记录经过的时间,这会导致处理器的更多开销,从而降低系统的吞吐量。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程