570 likes | 772 Views
二、周期任务的调度. PART 01. 引言 —— 实时任务. 周期任务( periodic task ) p i —— 周期,作业的固定释放间隔时间 φ i — — 第一个作业的释放时间 D i —— 相对截止期限 e i —— 执行时间 偶发任务( sporadic task ) p i —— 最小到达间隔 ( MINIMUM inter-release time ) D i —— 相对截止期限 非周期任务( aperiodic task ) 无最小到达间隔、无相对截止期限 或 为软时限. 引言 —— 对于实时任务的作业的调度. 调度方式
E N D
二、周期任务的调度 PART 01
引言——实时任务 • 周期任务(periodic task) • pi —— 周期,作业的固定释放间隔时间 • φi—— 第一个作业的释放时间 • Di —— 相对截止期限 • ei—— 执行时间 • 偶发任务(sporadic task) • pi —— 最小到达间隔(MINIMUM inter-release time) • Di —— 相对截止期限 • 非周期任务(aperiodic task) • 无最小到达间隔、无相对截止期限 或 为软时限
引言——对于实时任务的作业的调度 • 调度方式 • (全局)时钟驱动的调度方式 • 一般由同步时钟触发 • 主要为静态调度——释放时间和执行时间先验已知 • 时间资源 访问仲裁(access arbitration) 的调度方式 • 优先级驱动——例如:EDF、RM、最小完成数 等 • 时间资源 持有控制(holding control)的调度方式 • 加权Round-Robin(WRR)、令牌传递、WFQ
引言 • 周期任务的时钟驱动调度 • 自学,根据可能的讲座安排,进行研讨 • 周期任务的优先级驱动调度 • 本授课单元讨论的重点… • 周期任务的加权轮转调度 • 在实时通信中,重点加以讨论;分层调度中也略有涉及。
提纲 • 概念 • 周期任务的优先级驱动调度 • 固定优先级——速率单调(RM)算法 • 可调度利用率 • 可调度性测试 • 最优性 • 动态优先级——截止期限优先(EDF)算法 • 相关特性 • 最优性 • 应用中实际因素的影响
回顾 概念——可调度实体(作业集合) 与 调度算法 • 调度 • 根据调度程序,将系统中所有的作业分发指定到可用的处理器。 • 可行调度(feasible schedule) • 如果存在有效的调度,使所有的作业满足其定时约束,则这种调度被称为可行调度
回顾 概念——可调度实体(作业集合) 与 调度算法 • 可调度 与 可调度性 (scheduability) • 如果使用某种调度算法,对于符合某种条件的作业集合,调度器总能产生可行调度,则称根据此调度算法的作业集合是可调度的。 • 可调度条件 • 可调度利用率、最大可调度利用率 • 是否为简单周期、是否允许抢占 • 可调度性测试 • 按照给定的调度算法,验证给定的应用系统被调度时能够满足所有硬实时截止期限的要求。
回顾 概念——调度算法的特性 • 最优性 • 对于任意的存在可行调度方案的作业集合,给定的硬实时调度算法总能产生可行调度,则称该调度方法是最优的。 • 算法复杂度 • 随系统规模的复杂度,如:任务的个数 n 。
周期任务的优先级驱动调度 • 固定优先级算法 • 速率单调(Rate Monotonic,RM) • 截止期限单调(Deadline Monotonic,DM) • 动态优先级 • 截止期限优先(Earliest Deadline First,EDF) • 最小空闲时间优先(Least Slack Time First,LST) • 又叫作:最小松弛度优先(Minimum Laxity First,MLF)
优先级驱动调度算法的简单定义 • RM算法 • 基于任务的周期分配优先级:周期越短,优先级越高。由于任务的作业释放速率与其周期呈反比,因此速率越高,优先级越高,故而得名。 • 不失一般性,约定: Ti,指标集{i|i=1,…,n},i 越小,周期pi 越小。 • DM算法 • 根据任务的相对截止期限分配优先级:相对截止期限越短,优先级越高。
优先级驱动调度算法的简单定义 • EDF算法 • 根据作业当时的截止期限为它们分配优先级,作业的(绝对)截止期限越早,优先级越高。 • LST算法 • 在任意时刻t,绝对截止期限为d的作业的空闲时间(松弛度)为d-t-e’ ,其中e’为t时刻作业剩下未完成部分所需的执行时间; • 根据任务的相对截止期限分配优先级:相对截止期限越短,优先级越高。
概念 固定优先级驱动——RM算法 动态优先级驱动——EDF算法 二、周期任务的调度 2013
速率单调(RM)算法——符号表示与假设 • 系统中n个周期任务,只要系统处于操作模式,则n固定; • 四元组表示周期任务Ti—— (φi , pi, ei , Di); • 每个作业Ji,k在其释放时刻ri,k即可就绪; • 周期任务参数事先已知; • 硬实时——限定的截止期限。文献[Liu 1973]的(A1)
速率单调(RM)算法——假设 • 基本的RM算法 文献[Liu 1973]中RM模型的基本假设(A1)~(A7),除与“硬实时”要求相同的之外,为: (A2)任务的时限要求仅限于——该任务的下一个请求发生之前完成,即:pi=Di, i=1,…,n; (A3)任务(作业)之间是相互独立的; (A4) 每个任务的执行时间ei是不变的; (A5)调度和任务切换开销忽略不计; (A6)任务(作业)之间是可抢占的; (A7)分配到单处理器上。
速率单调(RM)算法——假设 • 基本RM算法的扩展——扩大应用领域 • 适用于任意的相对截止期限 • 适用于多处理器 • RM算法的扩展——考虑实际因素 • 任务切换开销 • 不可抢占 • 其它扩展——依旧是:“考虑实际因素” • 多帧(作业相关、执行时间不同,A3和A4) • Tick调度 或 释放抖动(不能立即就绪,假设3) • 层次化调度(上层一般用Round-Robin)…
hb01 Bu95 Lehoczky TDA89 93WCS 96Sr 97DCT 速率单调(RM)算法——研究历史与分类 综述文献 [王永吉 2004][邢建生 2005]: • Time Demand Analysis • Worst-Case Simulation • 历史: LL73 TDA=时间需求分析 DCT=距离约束任务 WCS=最坏情况仿真
§6.5.1 基本RM算法——临界时刻 • 临界时刻(critical instant) 文献[Liu 1973]提出,[Devillers 2000]指出其证明缺陷;但结论无误,可用Lehoczky J的时间需求分析来证明。 • 定义: • 如果Ti的每个作业的响应时间都不大于Ti的相对截止期限Di,则在该临界时刻释放的Ti中的作业,具有Ti中所有作业的最大响应时间; • 如果Ti中有些作业的响应时间超过Di,则该临界时刻释放的作业的响应时间大于Di。 • 最大(可能)响应时间 的 定义: • 在临界时刻释放的作业的响应时间,用Wi表示。
基本RM算法——临界时刻 • 每个任务Ti的临界时刻的发生条件 • 定理2-1:在一个固定优先级的系统中,同一任务中每个作业都在下一个任务释放前完成。在优先级高于Ti的任务中各选出一个作业,如果任务Ti的某个作业Ji,c与所有这些作业同时释放,即:存在lk,使得 ,k=1,2,…,i-1,则此时就是Ti的临界时刻。 • 证明: • 设:Ti 是优先级最高的i个任务组成的任务子集。 • 首先需要证明:当Ti中的任务是同相位时,即可满足定理中的条件,且任务集的第一个作业Ji,1具有最大响应时间。
基本RM算法——临界时刻 证明 1of2 : • 只需考虑Ji,1释放时间之前,处理器一直忙于执行优先级高于Ji,1的作业; • 找出中所有任务的最小相位φk,根据相位确定时间起点。 • 以Wi,1表示Ji,1的响应时间,则从任务Tk的第一个作业的释放时间φk开始,到Ji,1完成的时刻Wi,1 + φi, Tk中最多有__________个作业就绪执行; • 因此: Ji,1和Ji,1之前“忙”着完成作业的总时间需求:
基本RM算法——临界时刻 Insight! • 证明 1of2 :(续) • 从时刻0,到Wi,1 + φi ,处理器时间第一次满足上述总时间需求,存在等式: • 等式的最小解Wi,1,如果在(0,pi]区间,任务集可调度; • 如果在(0,pi]区间无解, Ji,1错过其截止期限。
基本RM算法——临界时刻 • 时间供给与时间需求的关系 • 时间需求——阶梯函数 • 构造the Worst Case… • 事实: • 当φk=0 ,k=1,2,…,i-1,阶梯函数与45°直线交点有可能更大; • 令φk=0 。 阶梯函数 总时间需求 总需求:阶梯函数按高优先级到低优先级逐次叠加…
基本RM算法——临界时刻 • 时间供给与时间需求的关系(续) • 构造the Worst Case • 响应时间对相位的依赖关系 • 直觉: Ji,1的释放时间越早,开始等待执行的时间越长; • 事实:依赖关系图 • 所以:令φi=0 。 • 则:
基本RM算法——临界时刻 • 证明 2of2 : • 接下来证明,当Ti的任意作业Ji,c的释放时间与每个较高优先级任务的某个作业相同时(with a job in every higher-priority task),有最大响应时间。 • 设该作业Ji,c的释放时间为φi‘, • 在φi‘,Tk的当前作业的释放时间为φk‘; • 如果要求每个作业都在其截止期限内完成,所以对于任务Tk,不必考虑释放时间在φk‘ 之前的作业; • 以当前作业集中最小释放时间为起点( φk‘中最小值, k=1,2,…,i-1),从该新起点开始的调度表; • 可重复 “证明1of2”的证明。■Q.E.D
基本RM算法——可调度利用率 • Schedulable Utilization —— URM(n,…) • 可调度性的充分条件 ——利用率的下界 • Liu & Layland 1973 基本RMA的可调度利用率 • hyperbolic(双曲线)——乘积形式的充分条件 • 简单周期情况下的URM和任务子集下的URM(Zi) • Burchard URM(n,ζ)——度量任务偏离简单周期的距离ζ
基本RM算法——可调度利用率 • 可调度性的充分条件 ——构造方法 • 加速集(accelerated set)T’ • 其它——平均的性能 • 与周期率的依赖关系 • 与任务周期的依赖关系
§6.7.1 基本RM算法——Liu & Layland 1973 • 定理2-2:对于n个独立的、可抢占的周期任务,且pi=Di, i=1,…,n,使用RMA,则当系统总利用率U小于或等于:该系统在单处理器上是可调度的。 • 总利用率的计算… • 函数图形
函数值 1 -- 1.0000 2 -- 0.8284 3 -- 0.7798 4 -- 0.7568 5 -- 0.7435 6 -- 0.7348 算例 (pi,ei) (1 , 0.25)、(1.25 , 0.1)、(1.5, 0.3)、(1.75, 0.07)、(2.0, 0.1) 极限值n→∞ 洛必塔 法则 对以2为底的指数的求导 结果:ln2≈0.693 基本RM算法——Liu & Layland 1973
§6.7.2 基本RM算法——Liu & Layland 1973 定理2-2的证明(半形式化证明) 设:p1<p2<…<pn(“等于”的情况,与定理不矛盾) • 当pn ≤2p1,构造“难以调度的系统” ——n个任务组成的任务集中总利用率U(n)最小的 Step 1:根据临界时刻(critical instant)的原理,最难调度的系统有一个或多个同相位的忙区间… Step 2:如果可调度,在每个任务的第一个周期之内,第一个作业完成,且最坏情况——处理器从0时刻一直忙到pn时刻。
基本RM算法——Liu & Layland 1973 • 当pn ≤2p1,构造“难以调度的系统” Step 2:(续)如果可调度,在每个任务的第一个周期之内,第一个作业完成,且最坏情况——处理器从0时刻一直忙到pn时刻。 • 构造——使得增加任何任务的执行时间,都会导致任务集不可调度 ek=pk+1-pk, k=1,…,n-1 en=pn- • 图:
ek=pk+1-pk,k=1,…,n-1 en=pn-
ek=pk+1-pk,k=1,…,n-1 en=pn- 基本RM算法——Liu & Layland 1973 • 当pn ≤2p1,构造“难以调度的系统” Step 3:证明 如果不具备上述依赖关系,则新构造系统的总利用率大于或等于具备上述依赖关系的系统的总利用率。 (1)不失一般性,令e1’=p2-p1+ε • 为了保证新系统是可调度的,不得不令:ek’=ek-ε • 则:
(2)不失一般性,令 • 为了保证新系统是可调度的,且是持续地“繁忙”着的,不得不令: • 则: • 由于设定 pn ≤2p1,则 。
ek=pk+1-pk,k=1,…,n-1 en=pn- 基本RM算法——Liu & Layland 1973 • 当pn ≤2p1,构造“难以调度的系统” Step 4:由 ……<式2-1> 有: , k=1,…,n-1 定义:毗连周期率(adjacent period ratio) • 注意: k=1,…,n-1
并且注意到:en=2p1-pn 又:i=1,…,n-1 则: <式2-2> 以毗连周期率为变量,凸函数的性质存在最小值URM(n) 求偏导数,并令导数为0,则得到n-1个等式: k=1,…,n-1
则:在所有n-1个毗连周期率qk+1,k都等于21/n时,得到:则:在所有n-1个毗连周期率qk+1,k都等于21/n时,得到:
基本RM算法——Liu & Layland 1973 定理2-2的证明(半形式化证明)(续) • 推广到任意周期率(period ratio)即不限定qn,1=pn / p1, 任意n个任务,总利用率不大于URM(n),按照RMA可调度——要说明两个事实 1:对于每个由n个任务组成的周期率大于2的难以调度系统,存在一个由n个任务组成的周期率小于或等于2的难以调度系统; 2:周期率大于2的系统的总利用率比相应的小于或等于2的系统的总利用率大。
构造: • 总利用率的差: • 当lpk<pn时,总利用率的差大于0。 • Q.E.D
ek=pk+1-pk,k=1,…,n-1 en=pn- 基本RM算法——以任务利用率函数表示的可调度利用率 <式2-1a> • [Bini 2003] “双曲界限” • 对于 • 对于<式2-1a>pk+1=pk(1+uk), k=1,2,…,n-1 • 对于<式2-1a>并使用 可调度条件,得到结论: • pn(1+un)≤2p1 <式2-3> • 则有: <式2-1b>
基本RM算法——以任务利用率函数表示的可调度利用率基本RM算法——以任务利用率函数表示的可调度利用率 • 回顾:Liu & Layland 1973 对于“难以调度系统”的构造
基本RM算法——以任务利用率函数表示的可调度利用率基本RM算法——以任务利用率函数表示的可调度利用率 说明:<式2-3>的推导 • 由构造的“难以调度的系统”,有: 则有 • 又由可调度条件 则有:en≤2p1-pn • 整理得: pn(1+un)≤2p1
基本RM算法——以任务利用率函数表示的可调度利用率基本RM算法——以任务利用率函数表示的可调度利用率 • 可调度利用率的充分判定条件 URM(u1,u2,…,un)=(1+u1)(1+u2)…(1+un)≤2 • 当n个任务的利用率都相等时,存在 (1+U(n)/n)n ≤2,即: • 虽然同为充分条件,“双曲界限”比Liu & Layland 1973的界限更“紧”,它利用了更多的信息—— • 总利用率 • 各个任务的利用率
扩展——简单周期任务子集的可调度利用率 • 简单周期(simply periodic) • 系统中的任意一对任务Ti和Tk,当pi<pk时,pk是pi的整数倍 • 任务——简单周期、独立、可抢占,且相对截止期限不小于各自周期,则具有充要条件: 单处理器上RM可调度总利用率U≤1 • 简单周期任务子集 • 任务子集Z1,Z2,…,每个子集中具有简单周期 • 每个子集的任务利用率: U(Z1),U(Z2)…,则
简单周期任务子集(续) • 系统T中具有独立、可抢占的周期任务,且相对截止期限等于各自周期,如果它可以被划分为nk个包含简单周期任务的不相邻子集Z1,Z2,…,,并且这nk个子集中的利用率U(Zi) (i=1,2,…, nk)满足不等式: 则该系统按照RM算法是可调度的。 • 另:文献[Kuo 1991]证明,对于可以划分为nk个简单周期任务子集的任务集合,可调度利用率为:
基本RM算法——考虑任务偏离简单周期的距离 • 讨论:可调度利用率与毗连周期率、周期率的关系 • 系统周期率 qn,1=pn/p1 • 毗连周期率 qk+1,k=pk+1/pk • 统计方法说明 • 系统可调度利用率 ∝ 系统周期率(一般情况下) • 系统可调度利用率 ∝ 最小的毗连周期率 • 对于最难调度系统 • 当(最小)毗连周期率为21/n,RM算法性能最差 • 周期率 qn,1=pn/p1=2(n-1)/n,当n=2,qn,1=1.414,n很大,qn,1≈2,但由可调度利用率随n的变化可知: • 最小的毗连周期率是主要的影响。
最难调度系统的最小毗连周期率 简单周期子集 简单周期 提高可调度利用率 基本RM算法——考虑任务偏离简单周期的距离 • 可见: • 问题:如何度量偏离简单周期的距离? • 1995年,Burchard等学者,引进参数ζ • URM(n, ζ)
基本RM算法——考虑任务偏离简单周期的距离 • ζ用来度量系统中偏离简单周期的距离 其中: • 以ζ和n为参数的RM算法的可调度利用率为: • 如果任务周期值分散,会出现某个任务的周期略大于2的幂,另一个任务的周期略小于2的幂,ζ接近于1; • 如果ζ接近于0, URM(n, ζ)接近于1;
例题:用可调度利用率充分条件判别 • 考虑上述周期任务的可调度性 • 采用绝对的可调度利用率的界限 总利用率 U=0.875 界限URM(n∞)=ln2=0.693 ∴未通过判定
采用“双曲界限”判定 (1+u1)(1+u2)(1+u3)=(1+0.25)(1+0.375)(1+0.2)=2.06 > 2 ∴未通过判定 • 考虑任务偏离简单周期的距离 ζ=max(X1,X2,X3)-min(X1,X2,X3)=0.323<2/3 带入 得到URM(3,0.323)=0.8292 > U=0.825 ∴通过判定,可以调度 • 考虑简单周期任务子集,使用“双曲界限”判定 由于T2和T3周期成倍数关系,则 (1+u1)(1+u2+u3)=(1+0.25)(1+0.375+0.2)=1.97 < 2 ∴通过判定,可以调度 (这是另一种解决方法)
基本RM算法——构造加速集 • 加速集(accelerated set) 对于给定的任务集合T,假设任务集合T’具有下列性质,存在Ti∈T, Ti'∈T': • Ti的执行时间 等于Ti'的执行时间,且 • Ti'的周期小于Ti的周期。 • 对于任意的系统T,如果能够找到它的一个加速集T'按照一定的固定优先级算法是可调度的,那么T也是可调度的。
基本RM算法——构造加速集 • Specialization Operation构造方法——Sr方法[Han 1997][王永吉 2004] • 思路:找到特定的实数r,使T'中每个任务Ti'满足 ,i=1,…,n,令 ,则 • 两边取对数 ,mi为自然数: • 考虑在 pi '≤ pi条件下U(T')尽可能小的情况——pi '取可能的最大值 • 考虑r的取值区间,对于每个pi,当在右端点取得局部最大值