当前位置: 首页 > 专利查询>黑龙江大学专利>正文

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

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

【技术实现步骤摘要】
确定实时任务或事件可调度性测试最小区间的方法
:本专利技术涉及一种确定实时任务或事件可调度性测试最小区间的方法。
技术介绍
:在实时系统设计和应用过程中,对于给定的n个周期性实时任务,在真正调度和执行之前判定这组实时任务是否可调度,即每个任务被释放之后是否都能在其相对最后期限内执行完毕,这是一个十分重要的问题,对于保证实时系统安全运行具有极为重要的意义。为了判定一组n个周期性实时任务的可调度性,需要确定其可调度性(或可行性)区间,然后在该时间区间内模拟调度这组任务,即在该区间内测试(或检验或检查或检测)这组任务的可调度性。对于n个任务来说,由于每个任务都具有周期性,因此如果该组任务是可调度的,那么在一个时间点tx之后,每隔时间长度L,这组任务的调度情况就出现重复,即后续调度过程实际上是一段在长度为L的时间区间[tx,tx+L)内的调度的重复。假设系统启动时刻为时间0,实际测试可调度性时,由于这组任务在[0,tx)内的调度包含初次到达情形而往往不具有重复性,因此,传统上将[0,tx+L)作为实际的可调度性测试区间。这段可调度性测试区间长度越小,实际测试中效率越高。从普遍情况来看,可调度性测试区间长度一般不小于L。
技术实现思路
:本专利技术的目的是提供一种确定实时任务或事件可调度性测试最小区间的方法,通过调整任务的释放偏移并寻找可调度测试(或检验或检查或检测)最小区间的可行起点的方法来达到确定实时任务(或事件)可调度性测试最小区间的目的;适用于实时任务或事件优先级固定的情形,包括作业优先级固定和作业优先级可变的情形。上述的目的通过以下的技术方案实现:一种确定实时任务或事件可调度性测试最小区间的方法,该方法包括:对于分配在同一个处理器或CPU或Core上的具有n个周期性实时任务或事件的集合{τ1,τ2,...,τn},需要确定该任务集的可调度性测试最小区间,其中:n≥1,每个周期性任务τi,其中:1in,即i是大于等于1且小于等于n的整数,被赋予一个唯一的固定优先级i,这里1代表最高优先级,n代表最低优先级;其中每个任务τi具有以下参数:最大计算或运行时间Ci,该任务的相邻两个作业或任务实例或调用的到达周期常数Ti,以及作业的相对最后期限Di;假设0<Cimin{Di,Ti},min{Di,Ti}表示取Di和Ti的最小值;系统启动时间t=0;每个任务的第一个作业相对于时间时刻0的释放偏移为Φi,即任务τi的第一个作业从时间0开始经过时间Φi被释放,以后每隔时间周期Ti被释放,即任务τi的作业释放时间为Φi+k×Ti,这里k是大于或等于零的整数;L=lcm1jn{Tj},即lcm1jn{Tj}表示全部Tj的最小公倍数,其中1jn,即j是大于等于1且小于等于n的整数;Tmax=max1jn{Tj},即max1jn{Tj}表示取全部Tj的最大值,其中1jn;具体包括以下步骤:步骤1,根据情况调整任务的释放偏移使每个任务的释放偏移大于等于零且小于该任务的到达周期;仍然用Φi表示任务τi的调整后的释放偏移;令Φmax=max1jn{Φj},即max1jn{Φj}表示取全部Φj中的最大值,其中,1jn;令Φmin=min1jn{Φj},即min1jn{Φj}表示取全部Φj中的最小值,其中,1jn;步骤2,分别以S和t代表二个变量,将Φmin赋值给S和t,以这时的t为时间起点,开始执行循环体A;循环体A结束时得到时间点S,这时的时间区间[S,S+L)为所确定的可调度性测试最小区间;以后可直接在时间区间[S,S+L)内测试任务集{τ1,τ2,...,τn}的可调度性,显著提高各种工业测试的效率。所述的确定实时任务或事件可调度性测试最小区间的方法,所述的步骤1中根据情况调整任务的释放偏移使每个任务的释放偏移大于等于零且小于该任务的到达周期是指,依次检查每个任务的释放偏移Φi,其中,i从1依次变化到n,如果Φi≥Ti,则以Ti为单位减小Φi使Φi大于等于零且小于Ti;否则,Φi保持不变;例如,如果Φi≥Ti,则Φi←Φi-∙Ti,即如果Φi≥Ti,则把Φi-∙Ti赋值给Φi,其中表示取不大于Φi/Ti的最大整数。所述的确定实时任务或事件可调度性测试最小区间的方法,所述的步骤2中开始执行循环体A是指,循环体A的循环控制条件为:当t<Φmax+Tmax时;循环体A具体为:【按给定的调度模型模拟执行时间步长增量为1的任务集{τ1,τ2,...,τn}的一步调度运行;将t的值增加1;如果没有任务集{τ1,τ2,...,τn}中的任务正在执行或者有任务集{τ1,τ2,...,τn}中的任务执行完毕且没有此前已释放等待执行的任务集{τ1,τ2,...,τn}中的任务,则:〖将t赋值给S;开始执行循环体B,循环体B的循环控制条件为:当没有任务集{τ1,τ2,...,τn}中的任务释放时;循环体B具体为:『将t的值增加1;』将t赋值给S;〗】;其中【和】之间表示一个语句体,〖和〗之间表示一个语句体,『和』之间表示一个语句体。有益效果:本专利技术的方法不同于已有的确定实时任务(或事件)可调度性区间的方法,而是一种在测试之前通过调整实时任务的释放偏移并寻找可调度测试(或检验或检查或检测)最小区间的可行起点的方法来达到确定实时任务(或事件)可调度性测试最小区间的目的。本专利技术的方法不同于已有的确定实时任务(或事件)可调度性区间的方法;在已有的确定实时任务(或事件)可调度性区间的方法中,所得到的可调度性测试区间当任务的最大释放偏移很大时例如超过任务的到达周期长度,则得到的可调度性测试区间也很大;本专利技术的方法通过调整任务的释放偏移,使每个任务的释放偏移量大于等于零且小于相应任务的到达周期长度,达到缩短可调度性测试区间长度的目的,有利于提高可调度性测试的效率。本专利技术的方法不同于已有的确定实时任务(或事件)可调度性区间的方法;在已有的确定实时任务(或事件)可调度性区间的方法中,寻找可调度性测试区间时的范围最大为Φmax+L;本专利技术的方法中,寻找可调度性测试区间时的范围最大仅为Φmax+Tmax,当L不等于Tmax时,提高了效率。本专利技术的方法不同于已有的确定实时任务(或事件)可调度性区间的方法;在已有的确定实时任务(或事件)可调度性区间的方法中,最后确定的可调度性测试区间的长度通常大于L;本专利技术的方法中,任何情况下最后确定的可调度性测试区间的长度都等于L,不会超过L,因此,可以提高测试的效率。附图说明:附图1是实施例2所述方法在时间区间[0,42)之间的任务调度图。附图2是实施例3所述的方法在时间区间[0,42)之间的任务调度图。具体实施方式:实施例1:一种确定实时任务或事件可调度性测试最小区间的方法,该方法包括:对于分配在同一个处理器或CPU或Core上的具有n个周期性实时任务或事件的集合{τ1,τ2,...,τn},需要确定该任务集的可调度性测试最小区间,其中:n≥1,每个周期性任务τi,其中:1in,即i是大于等于1且小于等于n的整数,被赋予一个唯一的固定优先级i,这里1代表最高优先级,n代表最低优先级;其中每个任务τi具有以下参数:最大计算或运行时间Ci,该任务的相邻两个作业或任务实例或调用的到达周期常数Ti,以及作业的相对最后期限Di;假本文档来自技高网...
确定实时任务或事件可调度性测试最小区间的方法

【技术保护点】
一种确定实时任务或事件可调度性测试最小区间的方法,其特征是:该方法包括:对于分配在同一个处理器或CPU或Core上的具有n个周期性实时任务或事件的集合{τ1,τ2,...,τn},需要确定该任务集的可调度性测试最小区间,其中:n≥1,每个周期性任务τi,其中:1in,即i是大于等于1且小于等于n的整数,被赋予一个唯一的固定优先级i,这里1代表最高优先级,n代表最低优先级;其中每个任务τi具有以下参数:最大计算或运行时间Ci,该任务的相邻两个作业或任务实例或调用的到达周期常数Ti,以及作业的相对最后期限Di;假设0<Cimin{Di, Ti},min{Di, Ti}表示取Di和Ti的最小值;系统启动时间t=0;每个任务的第一个作业相对于时间时刻0的释放偏移为Φi,即任务τi的第一个作业从时间0开始经过时间Φi被释放,以后每隔时间周期Ti被释放,即任务τi的作业释放时间为Φi+k×Ti,这里k是大于或等于零的整数;L=lcm1jn{Tj},即lcm1jn{Tj}表示全部Tj的最小公倍数,其中1jn,即j是大于等于1且小于等于n的整数;Tmax=max1jn{Tj},即max1jn{Tj}表示取全部Tj的最大值,其中1jn;具体包括以下步骤:步骤1,根据情况调整任务的释放偏移使每个任务的释放偏移大于等于零且小于该任务的到达周期;仍然用Φi表示任务τi的调整后的释放偏移;令Φmax=max1jn{Φj },即max1jn{Φj }表示取全部Φj中的最大值,其中,1jn;令Φmin=min1jn{Φj },即min1jn{Φj}表示取全部Φj中的最小值,其中,1jn;步骤2,分别以S和t代表二个变量,将Φmin赋值给S和t,以这时的t为时间起点,开始执行循环体A;循环体A结束时得到时间点S,这时的时间区间[S,S+L)为所确定的可调度性测试最小区间;以后可直接在时间区间[S,S+L)内测试任务集{τ1,τ2,...,τn}的可调度性,显著提高各种工业测试的效率。...

【技术特征摘要】
1.一种确定实时任务或事件可调度性测试最小区间的方法,其特征是:该方法包括:对于分配在同一个处理器或CPU或Core上的具有n个周期性实时任务或事件的集合{τ1,τ2,...,τn},需要确定该任务集的可调度性测试最小区间,其中:n≥1,每个周期性任务τi,其中:即i是大于等于1且小于等于n的整数,被赋予一个唯一的固定优先级i,这里1代表最高优先级,n代表最低优先级;其中每个任务τi具有以下参数:最大计算或运行时间Ci,该任务的相邻两个作业或任务实例或调用的到达周期常数Ti,以及作业的相对最后期限Di;假设0<Cimin{Di,Ti},min{Di,Ti}表示取Di和Ti的最小值;系统启动时间t=0;每个任务的第一个作业相对于时间时刻0的释放偏移为Φi,即任务τi的第一个作业从时间0开始经过时间Φi被释放,以后每隔时间周期Ti被释放,即任务τi的作业释放时间为Φi+k×Ti,这里k是大于或等于零的整数;L=lcm1jn{Tj},即lcm1jn{Tj}表示全部Tj的最小公倍数,其中即j是大于等于1且小于等于n的整数;Tmax=max1jn{Tj},即max1jn{Tj}表示取全部Tj的最大值,其中;具体包括以下步骤:步骤1,根据情况调整任务的释放偏移使每个任务的释放偏移大于等于零且小于该任务的到达周期;仍然用Φi表示任务τi的调整后的释放偏移;令Φmax=max1jn{Φj},即max1jn{Φj}表示取全部Φj中的最大值,其中,;令Φmin=min1jn{Φj},即min1jn{Φj}表示取全部Φj中的最小值,其中,;步骤2,分别以S和t代表二个变量,将Φmin赋值给S和t,以这时的t为...

【专利技术属性】
技术研发人员:任健姜誉王楠付立平高扬
申请(专利权)人:黑龙江大学
类型:发明
国别省市:黑龙江;23

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1