先决条件–
- CPU调度
- 抢占式调度
- 抢先式优先级CPU计划程序
截止单调调度:
这是一种基于固定优先级的算法,其中,根据每个任务的相对期限将优先级分配给每个任务。截止时间最短的任务被分配最高优先级。它是一种抢先式调度算法,这意味着如果有任何更高优先级的任务来临,则将抢占正在运行的任务,并将更高优先级的任务分配给CPU。
任务的优先级与截止日期成反比,即,将截止时间最短的任务分配为最高优先级。截止时间是必须完成任务的时间限制。
任务可以表示为如图:
例子 –
假设有两个任务需要执行。
Task1具有释放时间0,周期7个单位,执行时间2个单位和截止日期6个单位(T1(0、7、2、6))。 Task2的发布时间为0,周期为5个单位,执行时间为2个单位,截止日期为4个单位(T2(0、5、2、4))。
逐步说明–
- 在T = 0时,T1和T2均可用,但截止时间(T2)<截止时间(T1)。因此,T2获得CPU并执行直到T = 2。现在,T2将在T = 5可用。
- 在T = 2时,只有T1可用,因此T1被执行直到T = 4。现在,T1将在T = 7可用。
- 在T = 4到T = 5时, CPU保持空闲状态,因为没有可用的任务执行。
- 在T = 5时,只有T2可用,因此T2会执行到T = 7。现在,T2将在T = 7可用。
- 在T = 7时,只有T1可用,因此T1被执行直到T = 9。现在,T1将在T = 14可用。
- 在T = 9到T = 10时, CPU保持空闲状态,因为没有可用的任务执行。
- 在T = 10时,只有T2可用,因此T2会执行到T = 12。现在,T2将在T = 15可用。
- 在T = 12到T = 14时, CPU保持空闲状态,因为没有可用的任务执行。
- 在T = 14时,只有T1可用,因此T1被执行直到T = 15。 T1仍剩余1个工作单元。
- 在T = 15时,T1和T2都可用,但是期限(T2)<期限(T1)。因此T2获得CPU并执行直到T = 17。现在,T2将在T = 20可用。
完整的执行过程如下图所示–
好处 :
- 静态优先级调度的最佳选择。
- 如果任务的期限更长但截止日期较短,则可以很好地执行任务。
- 过载情况下性能良好。
缺点:
- 实现很复杂。
- 这是一个耗时的过程。