📜  EDF和LST CPU调度算法的区别

📅  最后修改于: 2021-09-15 01:32:54             🧑  作者: Mango

1. 最早截止日期优先(EDF):
在最早截止日期优先调度算法中,在每个调度点,具有最短截止日期的任务被调度执行。它是一种用于实时系统的最优动态优先级驱动调度算法。它使用任务的优先级进行调度。在 EDF 中,任务的优先级是根据绝对截止日期分配的。具有最短期限的任务获得最高优先级。

例子 –
假设这里有两个进程 P1 和 P2。
设 P1 的周期为 p1 = 50
设P1的处理时间为t1 = 25
设 P2 的周期为 p2 = 75
设P2的处理时间为t2 = 30

解释 :

  1. Deadline pf P1 较早,所以 P1>P2 的优先级。
  2. 最初 P1 运行并完成其执行 25 次。
  3. 25 次后,P2 开始执行,直到 50 次,此时 P1 才能执行。
  4. 现在,比较(P1, P2) = (100, 75)的deadline,P2继续执行。
  5. P2 在时间 55 完成其处理。
  6. P1 开始执行,直到时间 75,此时 P2 才能执行。
  7. 现在,再次比较(P1, P2) = (100, 150)的deadline,P1继续执行。
  8. 重复以上步骤。
  9. 最后在时间 150,P1 和 P2 具有相同的期限,因此 P2 将继续执行,直到其处理时间之后 P1 开始执行。

2. 最少松弛时间(LST):
在 Least Slack Time 调度算法中,在每个调度点,首先执行具有最小松弛度的任务。它也是一种用于实时系统的动态优先级驱动的调度算法。它根据空闲时间为系统中的所有任务分配一些优先级。具有最少空闲时间(laxity)的任务获得最高优先级。

例子 –
过程P1:
到达时间=0,持续时间=10,截止日期=33
过程P2:
到达时间=4,持续时间=3,截止日期=28
流程 P3:
到达时间=5,持续时间=10,截止日期=29

解释 :

  • 在时间 t=0:
    只有进程 P1 已经到达。
    P1 一直执行到时间 t=4。
  • 在时间 t=4:P2 已经到达。
    P1的松弛时间:33-4-6=23
    P2的松弛时间:28-4-3=21
    因此,当 P3 到达时,P2 开始执行直到时间 t=5。
  • 在时间 t=5:
    P1的松弛时间:33-5-6=22
    P2的松弛时间:28-5-2=21
    P3的松弛时间:29-5-10=12
    因此 P3 开始执行直到时间 t=13
  • 在时间 t=13:
    P1的松弛时间:33-13-6=14
    P2的松弛时间:28-13-2=13
    P3的松弛时间:29-13-2=14
    因此 P2 开始执行直到时间 t=15
  • 在时间 t=15:
    P1的松弛时间:33-15-6=12
    P3的松弛时间:29-15-2=12
    因此 P3 开始执行直到时间 t=16
  • 在时间 t=16:
    P1的松弛时间:33-16-6=11
    P3的松弛时间:29-16-=12
    因此 P1 开始执行直到时间 t=18,依此类推。

EDF和LST调度算法的区别:

EDF LST
Task having shortest deadline is scheduled first in it. Task having minimum slack time is scheduled first in it.
It assigns priority to tasks according to their deadlines. It assigns tasks according to their slack time.
It can be used as both static and dynamic scheduling. It is used only as dynamic scheduling.
Execution time of a task is not required. It requires execution time of a task.
It is a simple and optimal algorithm. It is a complex algorithm.
It can be implemented on any set of tasks. It can only be implemented on set of tasks having their burst time.
It completely utilizes the CPU (even sometimes 100%). It may under-utilize the CPU.
It increases the efficiency and throughput of the processor. It may decrease the efficiency and throughput of the processor.