LLF定义
LLF算法是指根据任务的紧急(或松弛)程度来确定任务的优先级的算法,任务紧急程度愈高,其优先级就愈高。
作用对象
主要用于可抢占式调度方式中
计算公式
松弛度=必须完成时间-本身运行时间-当前时间
例题
周期性任务A,要求每20ms执行一次,执行时间为10ms;
周期性任务B,要求每50ms执行一次,执行时间为25ms;
计算过程
-
T=0ms时:
A1的松弛度=20-10-0=10
B1的松弛度=50-25-0=25
A1的松弛度较低,应先调度A1执行。 -
T=10ms时:A1完成,比较A2和B1
A2的松弛度=40-10-10=20
B1的松弛度=50-25-10=15
B1的松弛度较低,应先调度B1执行。 -
T=30ms时,A2的松弛度为0
A2的松弛度=40-10-30=0
B1的松弛度=50-5-30=15
调度程序抢占B1的处理机而调度A2执行。 -
T=40ms时,A2完成
A3的松弛度=60-10-40=10
B1的松弛度=50-5-40=5
B1的松弛度较低,应先调度B1执行 -
T=45ms时,B1完成
A3的松弛度=60-10-45=5
B2的松弛度=100-25-45=30
A3的松弛度较低,应先调度A3执行 -
T=55ms时,A3完成
A4工作周期尚未开始,
B2进入工作周期,应调度B2执行 -
T=70ms时,
A4的松弛度=80-10-70=0
B2的松弛度=100-10-70=20
调度程序抢占B2的处理机而执行A4