📌  相关文章
📜  最长剩余时间优先 (LRTF) CPU 调度算法

📅  最后修改于: 2021-09-28 10:05:05             🧑  作者: Mango

先决条件 – 流程管理 | CPU调度
这是最长作业优先 (LJF) 调度算法的抢占式版本。在这个调度算法中,我们找到剩余时间最大的进程,然后对其进行处理。我们检查一段时间间隔后的最大剩余时间(比如每个 1 个单位),以检查是否有另一个具有更多突发时间的进程到达该时间。

程序:

  • 步骤 1:首先,按到达时间的递增顺序对进程进行排序。
  • Step-2:选择到达时间最短但突发时间最长的进程。然后将其处理为 1 个单位。检查在执行时间之前是否有任何其他进程到达。
  • Step-3:重复以上两个步骤,直到执行完所有流程。

示例 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):

  1. 在 t = 1 时,可用进程:P1。因此,选择 P1 并执行 1 ms。
  2. 在 t = 2 时,可用进程:P1、P2。因此,选择 P2 并执行 1 ms(因为 BT(P1)=1 小于 BT(P2) = 4)
  3. 在 t = 3 时,可用进程:P1、P2、P3。因此,选择 P3 并执行 1 ms(因为 BT(P1) = 1 ,BT(P2) = 3 ,BT(P3) = 6)。
  4. 重复以上步骤,直到所有进程执行完毕。

请注意,CPU 将空闲 0 到 1 个单位时间,因为在给定的时间间隔内没有可用的进程。

甘特图如下,

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

Turn Around Time (TAT)
= (Complition Time) - (Arrival Time)

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

因此,决赛桌看起来像,

输出:

Total Turn Around Time = 68 ms
So, Average Turn Around Time = 68/4 = 17.00 ms

And, Total Waiting Time = 48 ms
So Average Waiting Time = 48/4 = 12.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 

类似example-1,这个例子的甘特图,

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

Turn Around Time (TAT)
= (Complition Time) - (Arrival Time)

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

因此,决赛桌看起来像,

输出:

Total Turn Around Time = 61 ms
So, Average Turn Around Time = 61/5 = 12.20 ms

And, Total Waiting Time = 45 ms
So, Average Waiting Time = 45/5 = 9.00 ms