确定实时任务或事件可调度性测试最小区间的方法

文档序号:6623464阅读:608来源:国知局
确定实时任务或事件可调度性测试最小区间的方法
【专利摘要】确定实时任务或事件可调度性测试最小区间的方法。在实时系统设计和应用过程中,每个任务被释放之后是否都能在其相对最后期限内执行完毕,对于保证实时系统安全运行具有重要的意义。本发明的组成包括:步骤1,根据情况调整任务的释放偏移使每个任务的释放偏移大于等于零且小于该任务的到达周期;步骤2,分别以S和t代表二个变量,将Φmin赋值给S和t,以这时的t为时间起点,开始执行循环体A;循环体A结束时得到时间点S,这时的时间区间[S,S+L)为所确定的可调度性测试最小区间;以后可直接在时间区间[S,S+L)内测试这n个任务的可调度性。本发明用于需要确定给定的一组实时任务是否是可调度的模拟或仿真或实际应用系统中,从而显著提高各种工业测试的效率。
【专利说明】确定实时任务或事件可调度性测试最小区间的方法
[0001]

【技术领域】: 本发明涉及一种确定实时任务或事件可调度性测试最小区间的方法。
[0002]

【背景技术】: 在实时系统设计和应用过程中,对于给定的η个周期性实时任务,在真正调度和执行 之前判定这组实时任务是否可调度,即每个任务被释放之后是否都能在其相对最后期限内 执行完毕,这是一个十分重要的问题,对于保证实时系统安全运行具有极为重要的意义。
[0003] 为了判定一组η个周期性实时任务的可调度性,需要确定其可调度性(或可行性) 区间,然后在该时间区间内模拟调度这组任务,即在该区间内测试(或检验或检查或检测) 这组任务的可调度性。对于η个任务来说,由于每个任务都具有周期性,因此如果该组任务 是可调度的,那么在一个时间点t x之后,每隔时间长度L,这组任务的调度情况就出现重复, 即后续调度过程实际上是一段在长度为L的时间区间[t x,tx+L)内的调度的重复。
[0004] 假设系统启动时刻为时间0,实际测试可调度性时,由于这组任务在[0,tx)内的调 度包含初次到达情形而往往不具有重复性,因此,传统上将[0, tx+L)作为实际的可调度性 测试区间。这段可调度性测试区间长度越小,实际测试中效率越高。从普遍情况来看,可调 度性测试区间长度一般不小于L。
[0005]


【发明内容】
: 本发明的目的是提供一种确定实时任务或事件可调度性测试最小区间的方法,通过调 整任务的释放偏移并寻找可调度测试(或检验或检查或检测)最小区间的可行起点的方法 来达到确定实时任务(或事件)可调度性测试最小区间的目的;适用于实时任务或事件优先 级固定的情形,包括作业优先级固定和作业优先级可变的情形。
[0006] 上述的目的通过以下的技术方案实现: 一种确定实时任务或事件可调度性测试最小区间的方法,该方法包括:对于分配在同 一个处理器或CPU或Core上的具有η个周期性实时任务或事件的集合{ τ τ 2, . . .,τ J, 需要确定该任务集的可调度性测试最小区间,其中:η> 1,每个周期性任务^,其中:1 S i < n,即i是大于等于1且小于等于η的整数,被赋予一个唯一的固定优先级i,这里 1代表最高优先级,η代表最低优先级;其中每个任务τ i具有以下参数:最大计算或运行 时间Q,该任务的相邻两个作业或任务实例或调用的到达周期常数?\,以及作业的相对最 后期限Di ;假设(KQ < miniDi,TJ,miniDi,TJ表示取Di和凡的最小值;系统启动时间 t=0 ;每个任务的第一个作业相对于时间时刻0的释放偏移为,即任务τ i的第一个作业 从时间〇开始经过时间被释放,以后每隔时间周期?\被释放,即任务τ i的作业释放时 间为Φ?+kXTi,这里k是大于或等于零的整数;L=lcmis jSn{Tj},即lcmnn{Tj}表示全部 Tj的最小公倍数,其中1 < j < n,即j是大于等于1且小于等于η的整数;Tmax=maxl£ y 11{1^},即11^1:£』£11{1'』}表示取全部1'』的最大值,其中1<」<11 ; 具体包括以"r步骤: 步骤1,根据情况调整任务的释放偏移使每个任务的释放偏移大于等于零且小于该任 务的到达周期;仍然用〇1表示任务^的调整后的释放偏移;令〇max=maXlh Sn{c^ },即 ^^{①^^表示取全部义中的最大值:其中,1^·]·^11#^!^!^]^』^…』}, 即min u jsn{C>j}表示取全部Φ」中的最小值,其中,1 < j < η ; 步骤2,分别以S和t代表二个变量,将Φ_赋值给S和t,以这时的t为时 间起点,开始执行循环体A ;循环体A结束时得到时间点S,这时的时间区 间[S,S+L)为所确定的可调度性测试最小区间;以后可直接在时间区间[S, S+L)内测试任务集{τι,τ2,...,τη}的可调度性,显著提高各种工业测试的效率。
[0007] 所述的确定实时任务或事件可调度性测试最小区间的方法,所述的步骤1中根据 情况调整任务的释放偏移使每个任务的释放偏移大于等于零且小于该任务的到达周期是 指,依次检查每个任务的释放偏移%,其中,i从1依次变化到η,如果叫> ?\,则以凡 为单位减小使大于等于零且小于?\ ;否则,Φ,保持不变;例如,如果Φ,彡凡,则 Φ?- Φ「

【权利要求】
1. 一种确定实时任务或事件可调度性测试最小区间的方法,其特征是:该方法包 括:对于分配在同一个处理器或CPU或Core上的具有η个周期性实时任务或事件的集合 { τι,τ2,...,τη},需要确定该任务集的可调度性测试最小区间,其中: η彡1,每个周期性 任务τ i,其中:1 < i < η,即i是大于等于1且小于等于η的整数,被赋予一个唯一的固 定优先级i,这里1代表最高优先级,η代表最低优先级;其中每个任务τ i具有以下参数: 最大计算或运行时间Q,该任务的相邻两个作业或任务实例或调用的到达周期常数凡,以 及作业的相对最后期限Di ;假设(KCig miniDi,TihminiDi,TJ表示取01和1\的最小值; 系统启动时间t=0 ;每个任务的第一个作业相对于时间时刻0的释放偏移为,即任务τ i 的第一个作业从时间〇开始经过时间被释放,以后每隔时间周期?\被释放,即任务τ i 的作业释放时间为Φ?+kXTi,这里k是大于或等于零的整数;LzlcmuJTj},即lcm1SJS η{?ν表示全部Tj的最小公倍数,其中1 f j < n,艮P j是大于等于1且小于等于η的整数; Tmax=maxl£ j;£n{Tj},即 max1;£ ji:n{Tj}表示取全部 Τ」的最大值,其中 1 < j < η ; 具体包?舌以下步骤: 步骤1,根据情况调整任务的释放偏移使每个任务的释放偏移大于等于零且小于该任 务的到达周期;仍然用〇1表示任务^的调整后的释放偏移;令〇max=maXlSM n{c^_ },即 即mini< 表示取全部0j中的最小值,其中,1 s s n ; 步骤2,分别以S和t代表二个变量,将赋值给S和t,以这时的t为时 间起点,开始执行循环体A ;循环体A结束时得到时间点S,这时的时间区 间[S,S+L)为所确定的可调度性测试最小区间;以后可直接在时间区间[S, S+L)内测试任务集{τι,τ2,...,τη}的可调度性,显著提高各种工业测试的效率。
2. 根据权利要求1所述的确定实时任务或事件可调度性测试最小区间的方法,其特 征是:所述的步骤1中根据情况调整任务的释放偏移使每个任务的释放偏移大于等于零且 小于该任务的到达周期是指,依次检查每个任务的释放偏移Φ i,其中,i从1依次变化到η, 如果Φ i彡Ti,则以Ti为单位减小Φ i使Φ i大于等于零且小于Ti ;否则,Φ i保持不变; 例如,如果Φ?彡Ti,则Φ? - Φ?-
·--,即如果Φ?彡Ti,则把Φ?-
Ti 赋值给〇i,其中
表示取不大于〇i/Ti的最大整数。
3. 根据权利要求1或2所述的确定实时任务或事件可调度性测试最小区间的 方法,其特征是:所述的步骤2中开始执行循环体A是指,循环体A的循环控制条件 为:当t〈C>max+Tmax时;循环体A具体为:【按给定的调度模型模拟执行时间步长增量 为1的任务集1>1,τ 2,...,τη}的一步调度运行;将t的值增加1;如果没有任务集 { τ 1,τ 2, . . .,τ η}中的任务正在执行或者有任务集{ τ 1,τ 2, . . .,τ η}中的任务执行完 毕且没有此前已释放等待执行的任务集1>1,τ 2,...,τη}中的任务,则I将t赋值给S; 开始执行循环体B,循环体B的循环控制条件为:当没有任务集{ τ 1,τ 2, ...,τ η}中的任 务释放时;循环体Β具体为:『将t的值增加1 ;』将t赋值给S ;〗】;其中【和】之间表示一 个语句体4和3之间表示一个语句体,『和』之间表示一个语句体。
【文档编号】G06F9/48GK104156266SQ201410399892
【公开日】2014年11月19日 申请日期:2014年8月14日 优先权日:2014年8月14日
【发明者】任健, 姜誉, 王楠, 付立平, 高扬 申请人:黑龙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1