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