1.最早截止日期优先(EDF):
在最早截止日期优先调度算法中,在每个调度点,调度执行期限最短的任务。它是实时系统中使用的最优动态优先级驱动调度算法。它使用任务的优先级进行调度。在EDF中,任务的优先级是根据绝对期限分配的。期限最短的任务获得最高优先级。
例子 –
假设有两个过程P1和P2。
设P1的周期为p1 = 50
令P1的处理时间为t1 = 25
令P2的周期为p2 = 75
令P2的处理时间为t2 = 30
解释 :
- 截止日期pf P1较早,因此P1> P2的优先级。
- 最初,P1运行并完成25次执行。
- 25次之后,P2开始执行,直到P1能够执行50次为止。
- 现在,比较(P1,P2)=(100,75)的截止日期,P2继续执行。
- P2在时间55完成其处理。
- P1开始执行直到时间75,此时P2可以执行。
- 现在,再次比较(P1,P2)=(100,150)的最后期限,P1继续执行。
- 重复上述步骤。
- 最终在时间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. |