320 likes | 676 Views
二、周期任务的调度. PART 02. 概念 固定优先级驱动 ——RM 算法 动态优先级驱动 ——EDF 算法. 二、周期任务的调度. 2013. 提纲:速率单调算法. 速率单调算法的符号表示与假设 速率单调算法的研究历史与分类 基本 RM 算法 临界时刻 Liu & Layland 1973 …. 提纲:速率单调算法. 速率单调算法的符号表示与假设 速率单调算法的研究历史与分类 基本 RM 算法 临界时刻 可调度利用率 ——Liu & Layland 1973 可调度利用率 ——“ 双曲界限”,以任务利用率表示
E N D
二、周期任务的调度 PART 02
概念 固定优先级驱动——RM算法 动态优先级驱动——EDF算法 二、周期任务的调度 2013
提纲:速率单调算法 • 速率单调算法的符号表示与假设 • 速率单调算法的研究历史与分类 • 基本RM算法 • 临界时刻 • Liu & Layland 1973 • …
提纲:速率单调算法 • 速率单调算法的符号表示与假设 • 速率单调算法的研究历史与分类 • 基本RM算法 • 临界时刻 • 可调度利用率——Liu & Layland 1973 • 可调度利用率——“双曲界限”,以任务利用率表示 • 可调度利用率——考虑任务偏离简单周期的距离 • …
提纲:速率单调算法 • … • 基本RM算法 • 临界时刻 • 可调度利用率——Liu & Layland 1973 • 可调度利用率——“双曲界限” • 可调度利用率——考虑任务偏离简单周期的距离 • 可调度性测试——构造加速集 • 可调度性测试——时间需求分析法 • 可调度性测试——最坏情况仿真法 • 具有任意响应时间的固定优先级任务的可调度性测试 • RM和DM算法的最优性 • 考虑应用中的实际因素 • 任务切换开销 • 不可抢占
阶梯函数 总时间需求 基本RM算法——时间需求分析法 • 回顾 ——关于“临界时刻”的识别 • 时间供给与时间需求的关系(续) • 构造the Worst Case 总时间供给:t ,即(45°射线)
§6.5.2 基本RM算法——时间需求分析法 • 基本思路 • 确认一个任务是否满足它的时限 • 首先,以该任务的临界时刻开始,计算 该任务在临界时刻释放的作业+ 所有较高优先级任务的作业 的总处理时间需求 • 随后 ,在每个作业的截止期限到来之前,检验该时间需求是否被满足 • 从优先级最高任务T1开始,保证较高优先级任务可调度条件下,检查Ti的时间需求函数——wi(t) 0<t≤pi
可迭代求解 基本RM算法——时间需求分析法 • 基本思路(续) • 对于Di小于或等于pi的情况 (如果“大于”,用“繁忙区间”的时间需求分析) • 临界时刻t0释放,在t0+Di时刻之前,如果存在t0+t时刻,提供的处理器时间t变为等于或大于时间需求wi(t) • 该作业可以满足截止期限 • 因为该作业的响应时间在Ti所有作业中是最长的 • 可知Ti是可调度的 • 同时得到最长响应时间 该作业和必须在其之前完成的作业的最大时间需求
供需 w4(t) 9 8 7 w3(t) 6 5 4 w2(t) 3 2 1 t 流逝 2 4 10 1 3 6 8 9 0 5 7 时间需求函数的例子T1=(φ1,3, 1), T2=(φ1,5, 1.5), T3=(φ3,7, 1.25), T4=(φ4,9, 0.5),… T5=(φ5,10, 1) 好险! w1(t)
基本RM算法——时间需求分析法 • Exact Characterization——[Lehoczky 1989]可调度判定的充要条件 • Ti在基本RM算法下可调度,iff —— 对于j=1,…,i对应的任务,在0<t ≤min(pj,Dj)的区间内,存在wj(t)≤t的情况 • 任务集T可调度,iff ——所有Ti, i=1,…,n可调度 • 注意到: • wi(t)是阶梯函数,每次上升之前需求与供给之差wi(t)-t,在t之前是最小的,上升时阶跃增大,则 • 如不计算最大可能响应时间,只作可调度性测试,只需检查上升时刻需求wi(t)是否不大于供给t
基本RM算法——时间需求分析法 • 根据充要条件,可调度性测试的“确切”算法 • 选定上升时刻作为测试时间点 • 对于Ti,取t=jpkk=1,2,…,i ; j=1,2,…, • 检查不等式 wi(t)≤t 是否成立 • 如果在某些时刻点成立,则任务Ti可调度, • 否则,都不成立,任务Ti和任务集不可调度。 • 算法复杂度 O(nqn,1) ——伪多项式算法 • 周期比率 period ratio —— qn,1
基本RM算法——时间需求分析法 • 如果想计算任务Ti的最大可能响应时间Wi • 迭代求解方程 • 猜想的初始值t(1)开始 • 终止条件: • t(l+1)= t(l)且t(l) ≤pi,可调度 • t(l) >pi,不可调度
基本RM算法——最坏情况仿真法 • 按照给定的调度算法,构造调度表 • 对于基本RM算法 • 假设任务是同相位的, • 只需构造时间长度等于任务最大周期的初始一段就可以了; • 如果这段时间没有错过截止期限,则具有可行的调度表。 • 算法复杂度 仍为 O(nqn,1)
§6.6 具有任意响应时间的固定优先级任务可调度性测试 • 考虑:任务的响应时间 可能 大于它的周期 • 问题——受到跨周期延迟的作业的影响 • 发展—— • 临界时刻 —— πi级繁忙区间 (t0,t ] • 时间需求分析 —— 通用时间需求分析 • 定义: πi级繁忙区间 … • level-πi busy interval
πi级繁忙区间 • 定义: πi级繁忙区间 (t0,t ] • 在t0之前,Ti中被释放的所有作业都已完成; • Ti中的一个作业在t0时刻被释放,该作业在t时刻被全部完成。 • 说明 • 在(t0,t ],处理器一直忙于执行优先级不低于πi的作业,并且, • 繁忙区间执行的作业都是在该区间内释放的, • 当区间结束时,优先级不低于的πi作业没有积压,它们不致于影响到后续执行作业,
可以证明:繁忙区间中,下列等式的取值情况,考虑最坏情况可以证明:繁忙区间中,下列等式的取值情况,考虑最坏情况 πi级繁忙区间 • 说明 • 计算Ti集合中作业的响应时间,可以独立考虑每个πi级繁忙区间 • 繁忙区间可能跨越多个周期——超周期 hyper-p • 最大可能响应时间 可能不是在第一个周期出现 • “同相位”——In Phase • 在πi级繁忙区间内,优先级不低于的πi所有任务的第一个作业的释放时间都是相同的 • 可以证明,确定的Ti可调度性,只要考虑任务都是“in phase”的几级繁忙区间…
任意响应时间/固定优先级——通用时间需求分析方法任意响应时间/固定优先级——通用时间需求分析方法 • 可调度性测试步骤 • 如果Ti集合中的每个任务的第一个作业都在第一个周期内完成,则检查Ti的第一个作业Ji,1是否满足它的截止期限,判定Ti是否可调度; • 如果有些任务的第一个作业不能在任务的第一个周期内完成,则 • 从 开始,迭代求解 ,得到πi级繁忙区间的长度t(l);(l为迭代次数) • 计算同相位的πi级繁忙区间内, Ti中所有 个作业的最大可能响应时间Wi,j,判定可调度性。
分段来求 任意响应时间/固定优先级——通用时间需求分析方法 • Ji,j的最大可能响应时间Wi,j的计算方法 • 在同相位πi级繁忙区间内, Wi,j为满足下面等式的最小的t值 • 其中: • Hint:都从同相位πi级繁忙区间的起始点开始考虑
RM和DM算法的最优性 (补充定义) • DM算法——截止期限单调算法 • 相对截止期限越短,优先级越高 • 说明: • 如果相对截止期限Di与周期pi成正比,则RM=DM • 在相对截止期限为任意取值时,DM表现较好
RM和DM算法的最优性 • 广义地说,固定优先级不可能最优,因为它们可能无法调度一些实际上可行的任务集; • 特殊情况: • 当系统中的周期任务具有简单周期,RM最优 • 而且,如果此时各任务都有Di≥pi,可调度利用率URM=1 • 仅在固定优先级算法范围内考虑: • DM算法是最优的 • 假设条件:独立、可抢占, 情况Di≤pi / Di≥pi
应用中的实际因素 • 任务切换开销 • 不可抢占 • 多帧(作业相关、执行时间不同) • Tick调度 • 释放抖动 • 实际系统只有有限个优先等级 • 分层调度(高:优先级/低:Round-Robin) • …
应用中的实际因素——任务切换开销 • 任务切换时间 context-switch time • 设任务切换时间为CS • Ti中的作业开始执行后,最坏情况下自挂起Ki次,则执行时间为: e'i =ei+2(Ki+1)CS • 关键:找到确定的作业被抢占的上限 • 难——固定优先级算法 • 更难——动态优先级算法,特别是作业级动态的算法,如:LST。
应用中的实际因素——不可抢占 • 不可抢占(non-preemptive)的原因 • 调度器能力的限制,或者 • 资源互斥 • 不可抢占导致阻塞… • 阻塞时间 • 令bi(np)表示任务Ti的作业每次因为不可抢占的低优先级作业阻塞的最长时间 • bi(np)= • θk表示任务Tk的作业中最长不可抢占部分的时间
应用中的实际因素——不可抢占 • 阻塞对可调度能力的影响 • 阻塞时间(blocking time),记为bi • 被较低优先级的任务延迟 • 被推迟运行的较高优先级的任务延迟 • 对于固定优先级调度——采用需求时间分析法 • 考虑阻塞时间,求最大可能响应时间—— 当0<t≤min(Di,pi): 当考虑Di≥pi的通用分析:
概念 固定优先级驱动——RM算法 动态优先级驱动——EDF算法 二、周期任务的调度 2013
动态优先级驱动 • EDF算法 (补充定义) • LST算法——Least-Slack-Time-First • 又叫:最小松弛度优先(Minimum Laxity First,MLF)——实用中,一般是“非严格”调度 • 某个作业释放或完成时,考察当前作业集中各个作业的松弛度,排定优先级 • 注意:LST比EDF实现难度在于,必须在释放时知道(实际)执行时间
动态优先级驱动 • 固定优先级 • 未释放时,就完全预知优先级分配情况 • 动态优先级,分为 • 动态/作业级固定——释放的时候确定优先级,确定后优先级固定 • 如:EDF • 动态/作业级动态——在释放后的执行时间内,可能调整优先级, • 还可根据调整的频度细分,如: • 在某些事件出发下调整:非严格LST • 随时调整:所谓的“严格LST”
动态优先级驱动——EDF算法的可调度性 • EDF算法的可调度利用率 • 假设:独立任务、可抢占周期任务 • 当相对截止期限大于或等于周期 UEDF(n)≤1 • 当相对截止期限可能小于周期 检验可调度性条件(scheduability condition)
动态优先级驱动——EDF算法的最优性 取决于是否为 单处理器,是否 可抢占 ! • 单处理器、可抢占、任务切换时间可忽略 • EDF和LST最优 • 否则:“悲剧”了,且不如固定优先级驱动算法那样具有可预知性。
参考文献 • [Bini 2003] Bini E, Buttazzo G C. Rata Monotonic Analysis: The Hyperbolic Bound [J]. IEEE Trans. on Computers, 52(7):933-942, 2003.6. • [Han 1997] Han C C, Tyan H. A Better Polynomial-Time Schedulability Test for Real-Time Fixed-Priority Scheduling Algorithms [A]. In: Proc. of the 18th IEEE Real-Time Systems Symp. [C], San Francisco:36~45, 1997. • [Kuo 1991] Kuo Tei-Wei, Mok Aloysius K. Load Adjustment in Adaptive Real-Time Systems [A]. In: Proc. of 12th IEEE RTSS, 1991.12. • [Lehoczky 1989] Lehoczky J, Sha L, Ding Y. The Rate Monotonic Scheduling Algorithm : Exact Characterization and Average Case Behavior [A]. In: Proc. 10th IEEE RTSS, Oakland, [A] 1989, 166-171. • [王永吉 2004] 王永吉, 陈秋萍. 单调速率及其扩展算法的可调度性判定 [J]. 软件学报, 15(6):799-814, 2004.
小结——关键的知识点 • 固定优先级调度 • 临界时刻、繁忙区间 的概念 • 如何构造一个难以调度的系统 • 时间需求分析法 • RM和DM算法的最优性(考虑实际因素) • 动态优先级调度 • EDF和LST算法的最优性 • 说明:(1)学习知识看传承、靠积累,掌握方法;(2) “ 斜体 ”部分是不需要死记。——以下各章小结同此说明。
联系方法 • 李峭 • avionics@buaa.edu.cn • 10.8233 8894 • 新主楼 F710 • 202教研室——航空电子与总线通信课题组 • 课程资料——http://avionics.buaa.edu.cn RT Sys