SJF和LJF CPU调度算法的区别

SJF和LJF CPU调度算法的区别

最短工作优先:

最短作业优先 (SJF) 算法是一种 CPU 调度算法,旨在重新排序作业,以便选择具有最小突发时间的进程进行下一次执行。它用于减少其他等待执行的进程的平均等待时间。这可以是抢占式的或非抢占式的。它的抢先版本称为最短剩余时间优先(SRTF)。

当一个作业进来时,它会根据它的突发时间插入到就绪队列中。SJF 最小化平均等待时间,因为它先向突发时间较短的进程提供服务,然后再向突发时间较长的进程提供服务。

使用这种算法的主要优点是,它增加了平均周转时间和平均等待时间,从而提高了系统的有效性。

虽然它最大限度地减少了平均等待时间,但它可能会惩罚具有更高突发时间的进程。如果较短的执行时间进程在就绪列表中,那么具有大突发时间的进程倾向于留在就绪列表中,而小进程接收服务。在极端情况下,可能会始终为执行时间较短的进程提供服务,而执行时间较长的进程将无限期地等待。这种对较长执行时间进程的饥饿是该算法的局限性。

最长工作优先:

另一方面,最长作业优先 (LJF) 与 SJF 完全相反。它旨在重新排序作业,以便选择具有最大突发时间的进程进行下一次执行。它是一种非抢占式调度算法,一旦一个进程开始执行,它就不能在其处理之间被中断,任何其他进程只有在分配的进程完成其处理并被终止后才能执行。当一个作业进来时,它会根据它的突发时间插入到就绪队列中。这也可以是抢占式的或非抢占式的。

它的抢先版本称为最长剩余时间优先(LRTF)。

该算法的主要缺点是它可能导致进程饥饿。护航效应是另一个问题,会导致吞吐量降低。因此很少使用这种算法。

最短作业优先 (SJF) 最长作业优先 (LJF)
首先执行短流程,然后执行较长的流程。 首先执行较长的进程,然后执行较短的进程。
吞吐量增加是因为可以在更短的时间内执行更多的进程。 吞吐量降低是因为在一定时间内可以执行的进程较少。
最短作业优先 (SJF)不会导致护航效应。 最长作业优先 (LJF)可能会导致车队效应。
最短作业优先 (SJF)具有较小的平均周转时间和平均等待时间,从而提高了系统的有效性。 最长作业优先 (LJF)具有非常大的平均周转时间和平均等待时间。这会导致处理缓慢并降低系统的有效性。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册