SJF和LJF CPU调度算法的区别

最短工作优先:
最短作业优先 (SJF) 算法是一种 CPU 调度算法,旨在重新排序作业,以便选择具有最小突发时间的进程进行下一次执行。它用于减少其他等待执行的进程的平均等待时间。这可以是抢占式的或非抢占式的。它的抢先版本称为最短剩余时间优先(SRTF)。
当一个作业进来时,它会根据它的突发时间插入到就绪队列中。SJF 最小化平均等待时间,因为它先向突发时间较短的进程提供服务,然后再向突发时间较长的进程提供服务。
使用这种算法的主要优点是,它增加了平均周转时间和平均等待时间,从而提高了系统的有效性。
虽然它最大限度地减少了平均等待时间,但它可能会惩罚具有更高突发时间的进程。如果较短的执行时间进程在就绪列表中,那么具有大突发时间的进程倾向于留在就绪列表中,而小进程接收服务。在极端情况下,可能会始终为执行时间较短的进程提供服务,而执行时间较长的进程将无限期地等待。这种对较长执行时间进程的饥饿是该算法的局限性。

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

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

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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/266890.html

(0)
上一篇 2022年6月12日
下一篇 2022年6月12日

相关推荐

发表回复

登录后才能评论