Skip to content

模型Model

偶发任务与作业截止期

Sporadic task model · Constrained deadline task · 实时作业模型

用最坏执行需求、相对截止期和最小释放间隔描述一族允许的作业流,区分单次轨迹、全到达保证与过期处理。

形式陈述 ​

一类反复发生的工作,与其中的一次请求 ​

CPU服务账本记录每份工作实际得到多少运行时间。本页在它上面加一个要求:每次工作必须在自己的截止点之前得到全部服务。任务(task)是会反复产生请求的来源;作业(job)是其中一次请求。不能把“一共有三个任务”理解为“以后只会有三份工作”。

任务τᵢ用三个正数描述:最坏执行需求Cᵢ、相对截止期Dᵢ、最小释放间隔Tᵢ。第k份作业Jᵢ,ₖ的释放时刻为rᵢ,ₖ,实际服务需求为cᵢ,ₖ,绝对截止点为dᵢ,ₖ,满足

ri,k+1−ri,k≥Ti,0<ci,k≤Ci,di,k=ri,k+Di.

最小间隔只禁止来得太密,不要求每隔Tᵢ一定来一次;这样的来源称为偶发任务(sporadic task)。周期任务rᵢ,ₖ=φᵢ+kTᵢ是它的一种允许行为。这里的“偶发”没有概率分布含义,不是“平均每Tᵢ来一次”。[1, §2]

本单元主要分析约束截止期Dᵢ≤Tᵢ,其中Dᵢ=Tᵢ称为隐含截止期。为使下载器有限枚举和精确算术容易复核,C、D、T以及释放时刻均取整数时间单位;有理输入可统一乘公分母。连续时间的调度原则仍相同,但不能擅自向下取整执行上界。

明确一台什么样的处理器 ​

主模型只有一台单位速度CPU,任意时刻至多服务一份作业,可以在任意时刻暂停并从原进度继续。作业释放后即可运行,不等待I/O、锁或其它作业;没有释放抖动、缓存重装、调度及抢占费用。任务间的“独立”指这些可运行与执行需求条件,不表示到达时刻随机独立。

完成时刻记fᵢ,ₖ。按时要求fᵢ,ₖ≤dᵢ,ₖ,恰在截止点完成算成功。每个事件边界先结算刚结束的半开运行区间并移除完成者,再检查到期未完成者,最后接纳此刻新释放者并选下一份。新作业不能夺走上一份在这个瞬间已经取得的完成资格。

Cᵢ是关于目标机器、输入与执行路径的上界假设。跑十次观察到最长2毫秒,只证明这十次没有超过2,不能自动把2写成所有未来执行的WCET。Cᵢ>Dᵢ是合法但立即不可行的参数:允许的一份最坏作业独占CPU也来不及,不应由输入校验器悄悄删除。

直觉

既有每次的窗口,也有相邻请求的距离 ​

取任务A=(C,D,T)=(1,3,4)。若它在0、4、9释放,三个执行窗口分别是[0,3]、[4,7]、[9,12],每份最多需要1单位CPU;间隔4和5都合法。把最后一次提前到7,就使第二、三次间隔3,已不属于输入合同,即使某个调度碰巧全部按时也不能拿它验证原模型。

D回答“这一份最晚何时完成”,T回答“下一份最早何时又来”。例如D=3、T=10表示每次必须很快完成,但两次之间有长间隔。把D直接填成T,会无声放松服务承诺。

先分清要保证哪一种量词 ​

一条具体调度轨迹可被逐段检查。一个调度器对任务集可调度,则要求对每一条符合间隔与服务上界的作业流,都能让所有作业按时。模拟同步释放的一个超周期,只是一条轨迹;只有附带适用定理,才能把它升级为全到达保证。

任务集“可行”还允许选择合适的调度方法;“在固定A>B>C优先级下可调度”限制了具体政策。某政策失败,只否定这个政策。EDF需求判据能在本单核无锁模型中给出更强的可行性结论。

例子与边界

三个来源,会产生十一份作业 ​

本单元共用以下任务集,三者首次同步释放于0,此后按最小间隔释放,实际服务均取C。

任务 C D T 在[0,20)释放的时刻
A 1 3 4 0、4、8、12、16
B 2 5 5 0、5、10、15
C 2 7 10 0、10

超周期H=lcm(4,5,10)=20,是这条同步周期释放表重复的长度。总需求5×1+4×2+2×2=17,对应需求利用率

U=∑iCiTi=14+25+210=1720.

对任意偶发执行,U不是某个短窗口测到的实际忙碌比例;它由允许的最密到达和最大服务定义。A、B、C若很久不释放,实际CPU可以一直空闲,参数U仍为17/20。

利用率不高,也可能来不及 ​

两个任务都为(2,2,10)。U=2/5,但它们同时在0释放时,两个deadline都为2,需要在长度2的窗口里做4单位服务。无论怎样抢占都至少有一份超期。

因此“U≤1”一般只是必要条件。缩短D会把同样的总需求挤进更小的局部窗口,而不改变U。只有附加Dᵢ=Tᵢ等条件后,EDF才把利用率条件变成充要判据。

两种response time不能混用 ​

实时分析的响应时间通常是f−r,即从释放到全部完成。旧CPU指标页把首次得到CPU的时间减到达时间称为“首次派发响应”,并已说明词义差异。本单元用R表示完整完成响应;即使作业立刻运行过一小段,仍可能有R>D。

超期处理也是另一项政策。核验器记录第一次错过deadline后继续执行,便于看到最终完成时刻;不删除迟到作业、也不自动重置周期。实际系统可以丢弃过期结果或进入恢复模式,但这些行为需要新的执行合同。

推论与应用

输入合同可以先于调度器审计 ​

先检查每份c≤C、相邻释放间隔≥T、d=r+D;再检查所有运行段位于释放之后,没有重叠和过量服务,最后比较完成与截止点。对一条含J份作业和K段运行的已排序证书,维护逐作业累计量可用O(1+J+K)时间和O(1+J)状态。若记录无序,排序成本另计。

若某实现声称“可抢占”,但一次不可打断的设备操作长达5,那么不能仍把它放进本页的无阻塞模型。优先级继承会专门加入锁等待;固定优先级分析也会区分无锁精确判据与有来源的阻塞上界。

从保证到反例,都要交可检查的记录 ​

可行证书需要任务假设、判据的有限检查点和一份实际运行表;不可行证书可以是一个窗口及窗口内必须完成的作业,证明其总需求超过窗口容量。前者解释所有允许执行为什么安全,后者只需一条允许输入就能推翻全到达保证。

截止期证书终点将用同一组三任务分别做EDF和固定优先级判定,再加入锁,检查哪些结论必须重新建立。

参考资料
  1. Giuseppe Lipari、Laurent George、Enrico Bini、Marko Bertogna,On the Average Complexity of the Processor Demand Analysis for Earliest Deadline Scheduling,2013,§2,印刷pp.76–77(整本PDF第80–81页):偶发任务、约束截止期、需求函数与超周期。本文使用“间隔至少T”的定义,并自行固定整数与事件接口。
  2. C. L. Liu、James W. Layland,Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment,JACM20(1),1973,§3,p.48;§4,p.49:环境假设及完整完成响应的用法。其原始周期/隐含截止期模型比本文的偶发约束截止期范围更窄。
关系图谱5 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组