📌  相关文章
📜  最长作业优先(LJF)CPU调度算法

📅  最后修改于: 2021-08-27 17:04:28             🧑  作者: Mango

先决条件–流程管理| CPU调度
最长作业优先(LJP)是一种非抢占式调度算法。该算法基于进程的突发时间。根据进程的突发时间,即按照突发时间的降序,将它们放入就绪队列。顾名思义,该算法基于以下事实:首先处理突发时间最大的进程。仅考虑那些在该时间之前已到达系统的进程的突发时间。它的抢占版本称为最长剩余时间优先(LRTF)算法。

程序:

  • 步骤1:
    首先,按到达时间的升序对流程进行排序。
  • 第2步:
    在截止时间之前到达的所有进程中,选择具有最高突发时间的进程。然后处理其突发时间。检查是否有其他进程到达,直到该进程完成执行。
  • 步骤3:
    重复上述两个步骤,直到执行了所有过程。

笔记-
如果两个进程的突发时间相同,则使用FCFS打破平局,即首先处理最先到达的进程。
缺点-

  • 对于给定的一组过程,该算法提供了很高的平均等待时间和平均周转时间。
  • 这可能导致车队效应。
  • 可能会发生一个短流程永远不会执行的情况,并且系统会继续执行较长的流程。
  • 它降低了处理速度,从而降低了系统的效率和利用率。

让我们考虑以下示例。

示例1:考虑下表中四个进程P1,P2,P3和P4的到达时间和突发时间。

Process   Arrival time   Burst Time
P1            1 ms          2 ms
P2            2 ms          4 ms
P3            3 ms          6 ms
P4            4 ms          8 ms  

在职的:

  1. 在t = 1时,可用过程:P1。因此,选择P1并执行2 ms。
  2. 在t = 3时,即在执行P1之后,可用过程:P2,P3。因此,选择P3并执行6 ms(因为BT(P3)= 6高于BT(P2)= 4)
  3. 在t = 9时,即在执行P3之后,可用过程:P2,P4。因此,选择P4并执行8 ms(因为BT(P4)= 8,BT(P2)= 4)
  4. 最后执行过程P2 4 ms。

笔记 –
由于在给定的时间间隔内没有可用的进程,因此CPU将在0到1单位时间内处于空闲状态。

甘特图将如下所示,

由于可以通过甘特图直接确定完成时间(CT),并且

Turn Around Time (TAT)
= (Completion Time) - (Arival Time)

Also, Waiting Time (WT)
= (Turn Around Time) - (Burst Time) 

因此,决赛桌看起来像

输出 :

Total Turn Around Time = 40 ms
So, Average Turn Around Time = 40/4 = 10.00 ms

And, Total Waiting Time = 20 ms
So Average Waiting Time = 20/4 = 5.00 ms 

示例2:考虑下表中四个进程P1,P2,P3,P4和P5的到达时间和突发时间。

Process   Arrival time   Burst Time
P1            0 ms          2 ms
P2            0 ms          3 ms
P3            2 ms          2 ms
P4            3 ms          5 ms 
P5            4 ms          4 ms 

在职的 :
这个例子的甘特图

由于可以通过甘特图直接确定完成时间(CT),并且

Turn Around Time (TAT)
= (Completion Time) - (Arival Time)

Also, Waiting Time (WT)
= (Turn Around Time) - (Burst Time) 

因此,决赛桌看起来像

输出 :

Total Turn Around Time = 40 ms
So, Average Turn Around Time = 40/5 = 8 ms

And, Total Waiting Time = 24 ms
So, Average Waiting Time = 24/5 = 4.8 ms