EDF调度算法的实时性改进
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1 期
余祖峰等 :D E F调度算 法的实时性改进
种就是隔离服务法 IM(sli e e to ) IM 的思路是将实时任务分别分配到几个 同级别服务 S I a o Sr r hd [ S o t n v Me 引.
级( re)各个 sn r s vr, e e , 按照一定 比例分配 C U, e P 如果某个 s v 上的实时任务 oe u ( ee rr vr n 超限) J r 【 继续运行下 3
』 2 3 6 90 2 5 8 一 i l 丁 1 4 7 1 一 I i l一
一
6 7 8 9 1 一 0 1 2 3 4 5 6 7 8 9 1 0
一
一
i I
图 3 其它任 务没有空闲时间片情 形
提出的算法 , 是基于 IM 方法的改进算法 . S 这两种算法主要在于改进 E F对空闲时间( a m ) D s c t e的利用来 lk i 减小 D MR, 该算法不牺牲 oe u vr n的任务 , r 并能够极大减小任务间的“ 多米诺” 效应 , 较好的减小 D MR.
综合来看, 这两种算法主要采用了 4 个原则 :
中 图分 类号 : 3 6 TP 1
0 引言
嵌入式实时操作系统要求计算机能及时响应外部事件的请求 , 在规定时间内完成对该事件的处理 , 并控 制所有实时设备和实时任务协调一致地工作. 应用软件方法实现实时控制的途径主要是对任务进程进行调 度[ . 川 常用的进程调度算法主要有 E F E re ed n i ) D ( als D al e 算法. it i F 该算法虽然有一定的动态适应性, 但存 在一些进程错过截止期的问题 . 本文通过引进新近提出的 S A L D算法和 B C S A H算法 , A K LS 分析 了这两种 算法对 E F算法 的改进, D 并通过实测给以证实 .
05 .个时间片, 以当前的优先级运行完成余下工作 , 然后才运行 丁 、 3这样 3 2T . 个任务都没有超过期限.
一 —— ———— —’ J —— ——
■—■ ■
1
0
豳—■一
6 7
8 9 1 一 0
2
3
4
5
一
1 2 3 4 5
去 , 占用该 s vr C U, 则 e e 的 P 并顺延该 s e 上的其它实时任务. r e r v r 这种策略不考虑任务间的影响 , 对减小截止 期错失率 D t (e le i t ) MR da i s r i 有一定效果. ] d n m s ao
22 SA1算 法和 B C S A H 算法 . I ) A KL S S A s A KD nt n算法和 B C S A H(A K S A KD nt n算法[是最近由 Ln Bad L D(L C o ao ) i A K L S B C L C a i ) o o 5 1 i和 r t n
广西工学 院学报
第 2 卷 l
SA L D算法仅仅采用 12 、 两个原则 , B C S A H算法采用全部 4 而 A KLS 个原则 . L D和 B C S A H SA A KLS 算法并不考虑任务问的公平性 , 在任务超过预算时, 仍然保持优先级运行下去.L D算法直到延迟达到下 SA 个周期的开始( 意味着已经产生周期丢失) 就降低优先级 , B C S A H算法直到延迟超过期限时就降低 而 A K LS 优先级 . 有关 S A L D和 B C S A H算法的详尽介绍见文献[ ] A KLS 4.
第 21 第 1 1卷 2 0年 3月 期 0
Jl O 瓜NA . FG 西GX 学 院 学R I IO 广 N 工 I UA UNI 报 VE STYOFT C OL G E HN O Y
V 12 N . 0 l.1 o 1
Ma . O1 r2 O
文章编号
i0 -4 0(0 0 10 8 .4 046 1 2 1 )0 .o 2o
②一个任务的作业完成本周期的工作后转入 睡 眠状态 触发新 的调 度 ; ③在调 度 实 施 时是 可 抢 占的 , at e 务 在 ci 任 v
图 5 测试算法流程图
中选取一个任务最高级的 pem tr r po, e 作为抢 占任务 ; 如果 nx = pem tr则下一次调度时刻设置为 nx et r po, e et 的 r u e t e ̄果 nx!= r m tr e m — i ;f et pe p , s m l o 则将 nx 的 r u — i e pe po 的 r Hl— ie et e me t 和 r m t s m e r e n t 中的最小 s e m 值作为下一次调度时刻. 作业调度时刻到来时的作业调度的具体步骤为:
图 4 从下一个周期借入 的情 形
() s c m 分配给已经借 出时间给过去周期任务 4将 l kt e a i 这是对第 3 条原则的一个补充 . 如果一个任务 曾经将本周期的时间片借给以前的周期 , 则本周期剩下的 预算时间极可能不够用 ; 以, 所 也会得到其它任务的空闲时间或者再从后面的周期借入 .
■■■I ]
1 2
l— l一_ — — i l 丁 2
——■|r]
1 2 3 4
剩余时间片 } l
l
5 6 7
————I
8 9 1 一 0
一
一
iI
图 1 传 统 E F任务运行超预算处理 D
图 2 剩余 时Baidu Nhomakorabea片及 时分配
务超出了自己的执行时间 , 工作没有结束 , 则将保持当前 的高优先级继续执行下去 , 这样就会顺延本来已经 安排的后续任务 , 形成“ 多米诺” 效应 , 造成多个任务超出截止 时间【 在实际情况 中会 出现不能解决过载问 3, 3 J
题的情况 , 并且发 生过载时, 导致 C U时间大量花费在调度上 , P 性能退化很快, 不能满足系统的实 时性要 求 [I 4.
预算 的 T , T 将不会超期 , 】则 l 如图 2 所示.
一
1
.
2 3 4 5
L一
6 7 8 9 1 一 0 3 4 5 6 7 8 9 1 一 0
—_ —-彳 iL ——, — _r、 ・ — -
一
() 1 最快可能将 s c m 分配给实时任务 , l kt e a i 并对被分配的实时任务赋予贡献 s c m 的优先级. l kt e a i 如图 1 所示 , 任务 丁 的 E=2 D=5 P= ; 】 , , 6 任务 T 的 E=2 D=6 P=7 任务 的 E=2 D:7 2 , , ; , , P=8这 里 , 为 任务被 分配 的时 间片 , 为 截止 时刻 , . E D P为 任务 的下 一周 期启 动时刻 . 在传 统 E DF中 , 果 如
() sc m 分配给剩下的优先级最高的任务 . 2将 l kt e a i 这是针对第 1 条原则的补充 , 如图 2 所示 , 如果有多个任务在等待 , 剩余的时间片应该分配给优先级最 高的任务 , 2中优先级最高的任务为 丁 . 图 1 () 3允许任务从 自己的下一个周期 中借入时间. 如图 3 所示 , 任务 丁 的 E= , 5 P=6任务 的 E=2 D=6 P=7 任务 的 E=2 D=7 1 2 D= , ; , , ; , , P=8任务 丁 超过预算 0 5 . 】 . 个时间片, 但是 、 都没有 留出额外的空闲, 此时 T 的剩余部分被推迟到 1 时刻 6 开始执行 , 已经超期. 这时采用 向下一个周期借人的策略 , 如图 4所示 , 任务 丁 向下一个周期借人 1
S A H算 法来 改善 E F调度算 法的实时性 . LS D 对过载情况下 的截止期错失率 D MR的测试 , 结果表 明其实时性确 有所
改进 .
关
键
词: 实时调度算法 ; D E F算法 ; L D 算法 ;A K L S SA B C S A H算法 ; 截止期错失率
文 献 标 志码 : A
丁 在规定的 2 1 个时间片内没有完成本周期的工作 , 如图 1 还需 0 5 . 个时间片. 剩下的部分将会被挂起 , 虽然
丁 提前 05 2 . 个时间片完成任务, 但是这个空余 的时间并没有用来执行挂起的 T , 。而是按照既定顺序提前执 行 . 最后导致 丁 在本周期超过期限 . 1 其实在 执行完毕的那一刻 , 将剩余 的 0 5 . 个时间片分配给超过
3 对 SA L D算法和 B C S A H算法进行测试 AKLS
在针对 S A L D算法 和 B C S A H算 法的 A KL S 设计测试环节中, 采用周期定时器用来模拟硬件
时钟, 用 o e h t 采 n- o 定时 器模拟 实 时任务 的运 s 行 . 期定 时器在 任务 的执行周期 到来 时刻 6周 ( SA 对 L D算法) 与截止时间到来时刻 ( B C — 对 A K S H算法) I AS 更新任务的优先级 , 触发调度器 . 设 计用 C语言程序构建一个结构体变量 , 应用 a c . t e i cv 两个队列的结构送入任务给调度 i 和 n te v ai 器, 触发 调度 [-] 78. S D算法优先级计算公式是 :
1 E F调度算 法及其不足 D
E F D 算法是动态调度算法 , 根据任务的绝对 时限来确定优先级 . 任务调度优先级定义为 : t 一t其 d() , 中 d () £是任务时限, 是当前时间, t 两者的差值就表示任务 的紧迫程度 . 任务 的绝对时限越早 , 任务的优先
级也就越高 , 优先级最低的进程是距离最后期限最远的进程. 这种调度优先级定义方式 , 表明在每个时刻 , 都 要计算下个时刻系统中哪个任务的时限最小, 从而决定 了系统在下个时刻应该调度哪个任务 . 系统下个时刻 调度任务的不确定性 , 使得系统的适应性 比较好 . 此类算法根据任务的资源需求动态地分配任务的优先级 , 目的就 是在 资源分 配和调 度 时有 更 大的灵 活性 【 2. 2 J E F的缺点在于, D 如果一个实时任务在分配的执行时间之前完成本周期内的工作 , 则在这个空闲时间 内其它实时任务也不能运行,P C U将处于相对空闲状态( 可能执行非实时任务, 可能空 闲)如果一个实时任 ;
va l e t j ed i =L ×P+d n () 3
B C S.S A K I H算法优先级计算公式是 : A
 ̄ wl e ( 一t / J l n =L d i )p p x () 4
算 法描 述如下 :
①当任务调度时刻来时, 促发任务调度器根
据相 应 的流程 对任 务进行 调度 ;
E F调度算法 的实时性 改进 D
余祖峰 蔡启先b 刘 明 , ,
( 广西工 学院 a电子信息与控制工 程系 ; . . b计算机工程系 , 广西 柳州 摘 550 ) 406
要 : 实时调 度算法 中 , 在 常用 的 E F调度算 法是 非抢 占式 的, D 针对 这个 问题 , 究应用 S A 算法 和 I C . 研 LD  ̄ K A
2 IM 改进算 法 S
2 1 IM 思路 . S
针对 D F调度算法 出现的问题 , E 在后来的关于此项算法的研究 中出现了许多不 同的改进思路 , 其中一
收稿 臼期 :0 0—0 一l 21 1 3 基金项 目: 广西教育厅科技项 目(0 7 8 X13 资助 . 20 0 L 8 ) 通信作者 : 蔡启先, 研究方 向: 计算机系统结构研究 , — i ex x 6 . m E ma : . @1 3 o lq g o