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

📅  最后修改于: 2021-08-27 07:47:53             🧑  作者: Mango

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

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

解释 :

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

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

例子 –
流程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
    因此,P2开始执行直到P3到达时的时间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.