实时中间件动态调度算法的研究及应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
( 即第 + 个非周期任务在前一任务的截止期前到 !) ,+1)+/(, 达, 由于在之前服务器对非周期任务处理能力已耗尽, 则
)+*)+/(0 ’+ (/!综上
!&/08!-&/03!8(4 ’ ! ’/(因 为 (6 !’ , 则 !&/01( , 可以看出, 平均的响应时间越小,
服务器的利用率越低, 须综合考虑这两种指标。当任务集不满 足以上条件时, 则不可调度或达不到性能要求。调整性能参数 ( 如增大响应时间, 降低周期或非周期的负载) 和资源配置( 多 服务器方式) , 以满足相应的可调度条件。
为第 & 组中所有 ’() 项的最坏的访问时间之和:
)&
)D!%&, $
$ (&
作者简介: 蒲维( , 男, 博士生, 研究领域为分布式实时系统、 现场总线等。邹益仁( , 男, 研究员, 博士生导师, 研究领域为实时控制与 &O\IL ) &OI#L ) 管理信息系统, 系统集成等。
O%
!""#$!% 计算机工程与应用
( ! * ) +
周期性任务表
周期( &’) 执行时间( &’) 服务器利用率
的任务( 组) 节点, 该节点包括执行的项和任务绝对截止期。启 动一独立线程实现调度算法, 以队列中一任务( 组) 中项的执行 时间 ’ 为调度的粒度, 即其他时间参数为该粒度的整数倍。因 为周期任务基于时间驱动, 线程有一计数器( 以粒度为计数单 位) , 首先扫描客户预订的组链表, 当计数器等于组的刷新周期 的整 数 倍 , 则产生一该订阅任务( 组) 节点, 接着其在待服务任 务 队 列 节 点 位 置 12’, 使 得 )-2"")+1)-2" 3(, 插入到待服务任务队 列 12’ 和 12’3( 之间。形成一截止期升序队列。每完成一个数 据项的执行后, 总是取当前队列的头节点, 读相应的未刷新的 项, 置已读标志, 若该节点所有项刷新完毕, 则将该节点从队列 中删去。非周期任务是客户端同异步读写请求事件驱动的。请 求时用当前的 !- 、 ’+ 、 3 和 )+4( 根据式计算出任务的 )+ ,按 上 述 方法插入任务链表。在调度中, 客户可能加入新的组或者组中 加入新的项, 如立即调度这些变化的周期性任务, 任务队列中 存在的非周期任务可能造成周期任务超时,形成暂时的过载, 引起调度异常。处理的方法有两种: ( 按新的 !- 重新修正已存在的非周期任务的截止期, 这 () 将是一递推过程, 则新任务进入调度的延迟不超过其周期 (%。
’() 规范所形成的 ’() 服务器作为工控系统的中间件,由于 其标准性、 开放性和灵活性得到日益广泛的应用。 ’() 数据服
务器负责对设备的访问细节,客户通过标准的接口访问数据。
#
动态调度算法设计
在单服务器上, 对于周期性任务, 实时调度算法有速率单
’() 为诸如 <)? 、 (*) 、智能仪表设备的数据 服 务 器 定 义 了 建 方法和属性, 通过该服务 立在 ’*+ 组件技术上的标准的对象、 器, 标准的支持 ’*+ 的客户机就可以与低层控制系统通信 @&A。
@#A @IA 调( , 截止期 单 调 ( , 最早截止期优先( , 对于非 H;) <;) +<5)
周期性任务, 一般为 +<5。 对于混合任务集的实时调度, 任务调 度算法须保证满足硬实时周期性任务的截止期要求下为软实 时非周期性任务提供更小的平均响应时间。 静态算法一般基于 按照 H; 优 先 级 方 式 进 行 调 度 。 静 态 算 法 的 优 点 是 H; 方法, 计算复杂度小, 易于实现, 缺点是服务器的利用率低, 在高负载
.
3# "( (4!- ) 3! 43(
所以
3# 3!- "( 3! 43(
满 足 ,-. 方 式 下 任 务 可 调 度 的 充 要 条 件 ! "( 5!6, 如执行 的非周期任务时间不大于系统可提供的带宽, 则可保证所有的 周期性任务的截止期。对一非周期请求来说, 假设非周期的请 则 !" ( , 即到达的 求服从泊松分布, 平均到达速率为 !, (4!- ) 速率应不大于服务的速率, 可保证避免随着时间增加队列无限 若要求非周期任务的平均 变长的情况。 该队列为 4 5 4 7 ( 模型, 响 应 时 间 为 (6 , 则 (6* ’ 的时间比例, "8 利用率为:
;& <#. =0& >.5#* ( +H) -, =230B.8307 P63-G839/ Q0/S2-4-BT , =21393630 -, P63-G839-2, )S92010 P/870GT -, ?/902/01, U09V92B &"""%")
+?6%5)/%: QS0 C8C0. C.010231 .084L39G0 1/S076492B G-704 -, .084L39G0 G97740W8.0 ’(), 7019B21 7T28G9/ 1/S076492B 84X , B-.93SG1, 70841 W93S STY.97 381Z1 827 9GC40G023839-2 ( Y8107 -2 +<5) 827 8284T[01 3S0 1/S07648Y9493T 827 .01C-210 C0.X ,-.G82/01 827 C8.8G030.1 -, 8C0.9-79/ 381Z1$=2 4813, 3S0 C8C0. 1S-W1 1/S076492B .01643 -, 3S0 84B-.93SG1$
!’ (
%* (
%
和当前待处理的非周期任务有
%
关, 即 )+ ( , 考虑两种情况: ,+ , )+/(, !- ) ( 即第 + 个非周期任务在前一任务的截止期后 () ,+ !)+/(, 到达, 则 )+*,+0 ’+
(4"
, 这里 " 为处理非周期任务忙所占
(/!-
。
! (4!-
5+6
(4!-), , 即 (6 " ’ ( 服务器的实际最大 (/!-4!
实时中间件动态调度算法的研究及应用
蒲 维 邹益仁 ( 中科院自动化所综合自动化技术工程中心, 北京 &"""%" )
+LG894: CMN18GC40$98$8/$/2
摘 要 文章建立了实时中间件 ’() 服务器的实时调度模型, 设计了处理混合任务的动态调度算法( 基于 +<5) 和实现
方式, 分析了算法的可调度性和非周期任务的响应性能及参数设计, 并给出了相应的调度结果。 关键词 实时中间件
’()
动态调度算法
最早截止期优先 文献标识码 P 中图分类号 Q(#"&$R
文章编号 &""!L%##&L( !""# ) !%L""O%L"!
Байду номын сангаас
!"# $%&’( )*’ +,,-./)%.0* 01 2(*)3./ $/"#’&-.*4 +-405.%"36 .* %"# 7#)-8!.3# 9.’’-#:)5#
制定的一 间 件 。 ’() 接 口 是 由 ’() 基 金 会 ( ’() 5-627839-2 ) 事 套标准的基于 ’*+ : )’;、 <)’; 支持过程数据访问、报警、 件与历史数据访问等功能的接口协议。 它的目的是为了使过程 控制工业中的自动控制应用程序,现场系统 : 仪表以及商业办 公应用程序之间有更强大的互操作性和兼容性。 在这种开放的 体系结构下,可以在所有的网络层次实现应用程序的互连, 从 而提供一种灵活管理环境。随着 =230.203 和 >>> 技术的流行 和发展, 从远端远程在线的监控工厂的生产也成为可能。基于
)+*&/0 ( ,+ , )+/() 0 ’" (/!可见执行时间较短的任务截止期更小,可得到更快的响 应。 从而在保证周期任务截止期上提高整个非周期任务的平均 响应时间。
9
实验结果
对该动态算法的测试结果: 动态算法的稳定性: ( ()
表(
周期性任务
)
调度算法的实现
在服务器中建立一待服务任务队列, 该队列中存放待调度
*
调度算法设计
对于订阅的周期任务 $%, , ’%, (%, )%, ’% 是任务 % 的 最 坏 处 & ( &)
+
可调度性和非周期响应性能分析
在 #53(, 由于 3!6,
理时间, (% 是任务 % 的周期, )%, & 是任务 % 第 & 个实例的绝对截止 期, 其中 )%, 对于非周期任务 $+ ( , ’+ , ,+ , )+ ) ’+ 是第 + 个请求 &*&(%, 的最坏处理时间, ,+ 是 第 + 个 请 求 的 到 达 时 间 , )+ 是 第 + 个 请 求的绝对截止期,非周期性任务符合随机的泊松分布, ,-. 动 态调度算法基于任务的绝对截止期, 即最早截止期的任务优先 执行,调度算法的关键是设置非周期任务的绝对截止期 )+ , 以 保证周期性任务的执行,即满足所有周期任务截止期的要求, 同时最小化非周期性读写任务的响应时间。 由于非周期请求利 用保证周期任务执行的剩余的处理能力。显然, )+ 与周期任务 的服务器利用率因子 !-*
, @#(:05’6: H084L39G0 G97740W8.0 , ’*+ ,-. (.-/011 )-23.-4( ’() ) <T28G9/ 1/S076492B 84B-.93SG1, +<5
&
引言
是面向过程控制的实时中 ’() ( ’*+ ,-. (.-/011 )-23.-4)
可 以 认 为 !&, $, %&, $ (% 有 %&()% 。 ’& 为 组 中 各 项 的 刷 新 周 期, 且等于其截止期。 每个项的执行是不可中断的, 其执行时间 可以作为调度的最小粒度, 项之间无先后顺序约束, 组间可以 抢占。订阅的组构成一周期性任务集。除了周期性的订阅刷新 任务, ’() 还支持同步和异步的读写方式,客户的同步和异步 的读写请求形成非周期的任务集, 可以认为多客户的非周期性 请求符合一随机分布( 如泊松分布) , 两种类型的任务集构成一 混合任务集。须在服务器中设计一调度策略, 一方面满足周期 性任务( 订阅刷新) 截止期, 另一方面对非周期性任务( 同步或 异步的读写请求) 有尽可能快的平均响应时间。
!"" )"" (""" (""" !"""
!" *" (!" !"" !""
+
"$( "$"% "$(! "$! "$(
%
周期性任务的服务器利用率为
!’ (
%8(
*"$+ ,非周期性任务
%
的 达 到 速 率 !!"$* , 服务器执行若干小时, 超过截止期的任务 数为零, 可见满足调度条件的任务集是可调度的, 且该算法是 稳定的。 ( 固定非周期性负载, 比较在不同周期性负载下非周期 !) 任务理论和实际的平均响应时间。 其中 "$+"!-""$: , 图 !8"$( 。 横轴为周期性负载的大小, 纵轴为非周期性任务相对的 ( 中, 响应时间。 ; 为实际响应时间, < 为理论响应时间。 ( 固定周期性负载, 比较在不同非周期性负载下非周期 #) 任务理论和实际的平均 响 应 时 间 。 其 中 !- 8"$+ , "$""!""$* 。 图 ! 中, 横轴为非周期性负载的大小, 纵轴为非周期性任务相 对的响应时间。 ; 为实际响应时间, < 为理论响应时间。 ( 下转 ((9 页) 计算机工程与应用 !""#$!%
@JA 的情况下是不适合的。 动态算法一般基于 +<5, 可满足调度条
!
实时中间件 ’() 服务器模型
对于一 ’() 服务器,若干客户在服务器上订阅 ! 个 ’()
组( : ’() B.-6C1) , " DE#$ ( %&, ’&) &(& … !F
@!A 每 个 ’() 组 中 包 括 ) 个 ’() 项 ( , 其中: ’() 930G1 ) %&
于不同于混合任务的静态调度方法,该截止期应该是动态的, 取 决 于 当 前 调 度 环 境 的 !" 和 !# 以 及 当 前 周 期 性 任 务 的 分 布 情况。
( 不修正已存在的非周期任务的截止期, 当所有未修正 !) 的非周期任务执行完后新周期性任务才进入调度, 其延迟不超 。 过其周期 (%3&/0 ( )+ )
件为 *"& , 即服务器的利用率可达到 &""K 。对于 +<5 方 法 , 所有任务调度的优先级由任务实例的绝对截止期决定。 对于周 期性任务显然有明确的截止期, 即 +&, 如何设定随机的非周 $($’&, 期请求任务的绝对截止期?由于 ’() 服务器一般总是首先 满 足周期任务的时间要求,将余下的能力服务于非周期任务, 对