基于线性链表的实时任务可调度性测试拷贝模拟方法_2

文档序号:9432461阅读:来源:国知局
start字段值赋值为Nodel的start字段值,Node3的end字段值赋值为Node2的end字 段值,Node3的next字段值赋值为Node2的next字段值。
[0013]有益效果: 1.本发明的方法不同于已有的实时任务(或事件)可调度性测试方法,本发明的方法通 过用链表结点表示任务(或事件)的调度执行阶段,采用线性链表记录测试的模拟和调度过 程,已有的实时任务(或事件)可调度性测试方法没有采用线性链表记录测试的模拟和调度 过程。
[0014].本发明的方法采用线性链表记录测试的模拟和调度过程,使本发明的方法的时 间复杂度是测试区间内总的任务实例数量的多项式时间,因此,与已有的实时任务(或事 件)可调度性测试方法的指数时间相比,从普遍情况来看,提高了效率;特别是在前n-1个 较高优先级任务的最小到达周期的最小公倍数LCM"i远大于任务数时,能够显著提高效率。 [001引.在已有的实时任务诚事件)可调度性测试方法中,既要考虑测试区间内总的任 务实例数量,同时,测试区间长度也大于等于LCM。;本发明的方法中,由于LCMy^gLCM。1, 给定测试时间范围后只需考虑测试区间内总的任务实例数量,即使在测试区间长度等于 LCM。1或等于LCM。内进行测试模拟,可调度性测试区间长度通常都不超过LCM。;且对于TP 模型可调度性测试区间长度等于LCM。1gLCM。。
[0016] .本发明的方法在模拟过程中采用逐步扩展已经模拟好的对任务Ti,12, …,Tii的调度片段,然后模拟下一个任务I1,运种方式在LCMii小于LCMi时能够减少对 任务X1,X2, ...,X11的任务实例的调度模拟,提高了模拟和测试的效率。本发明的方法 对任务T。不进行模拟调度只是检查其可调度性减少了对调整链表的操作,提高了效率。
[0017] .本发明的方法在模拟过程中将满足条件的相邻链表结点合并有利于减少链表结 点数量即链表长度,提高测试的效率。例如,在实施例10和11中所用链表结点数量最多为 5,即模拟过程中扫描链表长度最大为5,比传统方法模拟步数为区间长度LCM。i=LCM。=24 要小得多。
[001引本发明方法中,对于分配在一个处理器或者CPU或者Core上的1个实时任务 或者事件的任务集{X1,X2,...,T。},运些任务是周期性的或者不定时发生的,需要确定 该任务集的可调度性,每个任务T1,1 i^n,被赋予一个唯一的固定优先级i,1代表最 局优先级,n代表最低优先级。
[0019] 本发明方法中,所述的每个任务T1具有W下参数:最大计算时间或者最大运行时 间。',拷贝时间0礙cr" 1,装入时间0《'' < 1,。一C严+Ci ,对于经 典的优先抢占调度〔口模型,(Vwy=Ci"st°"=〇,即c1'海个任务的相邻两个任务实例或者 调用或者作业的最短到达时间为Ti;每个任务实例执行完成的相对最后期限为D1;0<C1 min值1,Ti);系统启动时间t为时刻0;每个任务的第一个任务实例相对于时间时刻0的释 放偏移为即任务T1的第一个任务实例从时间0开始经过时间0 1被释放,W后至少每 隔时间长度Ti被释放,即任务I1的第j个任务实例的释放时间不早于为〇 1+0-1)XTi, 运里j是大于等于1的整数;变量LRTi记录任务I1在当前优先级设置和任务释放偏移时的 最大响应时间,对每个k,2《k《n,LRT产Ci,LRTk^Ck;LCM产Ti,LCMk^lcm(LCMk_i, Tk);i,j,k,n都取正整数。对每个i,lgign,记任务的不早于调度稳定点S释放 的第一个任务实例的释放时间为新的释放偏移,还用表示,运时〇 与S相等。
[0020]
【附图说明】: 附图1是本发明实施例10所述方法在时间区间[11,11+24)之间的可调度性测试图。
[0021] 附图2是本发明实施例11所述的方法在时间区间[16,16巧4)之间的可调度性测 试图。
[0022]【具体实施方式】: 实施例1: 一种基于线性链表的实时任务可调度性测试拷贝模拟方法,该方法包括:对每个i, 1璧in,i己任务T1的不早于调度稳定点S释放的第一个任务实例的释放时间为新的 释放偏移,还用〇1表示,根据给定的调度模型,采用线性链表记录调度模拟和测试过程,对 任务T1从时间点0 1开始模拟第一个任务实例的调度执行;然后对每个i从小到大,2 ^ i蠻n-1,先将当前链表扩展成到LCMi内的调度结果,再对任务X在时间 范围到LCMi内模拟每个任务X1的调度执行;最后在当前链表上对任务Xn 进行测试。
[002引实施例2: 根据实施例1所述的基于线性链表的实时任务可调度性测试拷贝模拟方法,所述的采 用线性链表记录调度模拟和测试过程,对任务T1从时间点01开始模拟第一个任务实例的 调度执行;然后对每个i从小到大,2<i^n-l,先将当前链表扩展成0mm("到巫mm(" + LCMi内的调度结果,再对任务X1在时间范围到巫LCMi内模拟每个任务X1的 调度执行;最后在当前链表上对任务T。进行测试是指,采用一个线性链表记录任务的调度 模拟执行和测试过程,任务实例开始执行时间点记录到链表结点的start字段,任务实例 执行中止时间点记录到链表结点的end字段,每个链表结点表示从该结点start字段值给 出的时间点到该结点end字段值给出的时间点之间一个或多个任务实例的连续调度执行; 对每个1,1i:ln,取任务T1的不早于S释放的第一个任务实例的释放时间为新的释放 偏移,还用巫康示,巫巫i,LRTi-Ci;对每个i,2签i签n,巫(巫mm。。, 01),1^1^(:1;给标志变量巧曰旨赋一个初值;首先模拟执行任务X1的第一个任务实例,即 增加一个链表结点,赋值给结点的start字段,C1赋值给结点的end字段,结点的next 字段赋值为NU化或空;【对任务X2,T3,...,1。1执行W下操作:依优先级从高到低,对 每个i,2签i《n-l,K(壹)扩展链表,即将任务X1,12,...,Tii从时间起点 到0mm(i-"+LCMi1的链表调度结果扩展到0 即,W从时间范围 +LCM11的调度结果的当前链表的第一个结点到最后一个结点为一个整体块block共拷贝LCMi/LCMi_i- 1次并依次链入链表中,第k次拷贝时将新块所有结点的Start 字段和end字段分别加上kXLCM1_1,1您k淺LCM1/LCM1_1- 1;将min(扩展后的链表最后 一个结点的end字段值,0mmw+LCMi)赋值给扩展后的链表最后一个结点的end字段;(戴) 令MAXinter-巫min(i)+LCMi;对每个j,1沒j签LCMi/Ti,从小到大依次调用执行模拟单个任 务实例函数。1对任务11的第^'个任务实例I1,,进行模拟;3;】;1^11,调用测试模拟 单个任务函数F2对任务X1进行测试;给出任务集是可调度的信息。 实施例3: 根据实施例1或2所述的基于线性链表的实时任务可调度性测试拷贝模拟方法,所述 的执行模拟单个任务实例函数F1对任务X1的第j个任务实例X1,,进行模拟是指,【根据 r,,在链表中通过与结点中的start字段值及end字段值比较查找并从当前作业j在链表 中的相对位置开始,按CP模型调度时将运行时间Ci对应为1个或连续多个任务X1的空闲 区间链表结点,运些结点表示的区间长度之和等于按TP模型调度时将运行时间C1对应 为任务的一个允许区间结点PINode,结点PINode表示的区间长度等于C1,且在该任务 实例释放时间到结点PINode之间的全部任务X1的极大空闲区间都合并到其相邻区间;按 时间次序依次链入链表中的相应位置,链入链表的同时合并调度执行区间时间点边界重合 的链表结点,在模拟过程中无法在链表上完成运行时间。的对应时修改标志变量flag值 不同于其初值,在模拟完成后记录任务T1当前的最大响应时间LRT1;如果标志变量flag 值不同于其初值或者LRTi〉Di,则返回不可调度信息并中止对该任务集的可调度性测试;】。 [0024]实施例4: 根据实施例1或2或3所述的基于线性链表的实时任务可调度性测试拷贝模拟方法, 所述的测试模拟单个任务函数F2对任务X1进行测试是指,【按TP模型调度时:K依次从每 个任务实例的释放时间点开始至多经历时间长度LCMi1,确定是否有任务的允许区间, 如果没有,则返回不可调度信息并中止对该任务集的可调度性测试;每个任务实例模拟完 成后记录任务T1当前的最大响应时间LRT1;如果LRT1〉〇1,则返回不可调度信息并中止对 该任务集的可调度性测试;3 ; 按CP模型调度时:K从时间点〇 开始到时间点巫min("+LCMi,依次对任务X1的每 个任务实例确定是否有区间长度之和大于等于Ci的1个或连续多个极大空闲区间,如果没 有,则返回不可调度信息并中止对该任务集的可调度性测试;每个任务实例模拟完成后记 录任务T1当前的最大响应时间LRT1;如果LRT1〉〇1,则返回不可调度信息并中止对该任务 集的可调度性测试;3 ;】。
[00幼 实施例5: 根据实施例1或2或3或4所述的基于线性链表的实时任务可调度性测试拷贝模拟方 法,所述的TP模型的任务X1的允许区间是指:任务X1的一个空闲区间EI是指,对于任务 Tl,T,,...,1。1的调度结果中一个没有被占用的连续的时间范围区间[ti,t2),t2〉ti,在 该区间内没有任务集{T1,T2, . . .,T。J中的任务释放,并且在时刻t1及之前所有已释放 的任务集{X1,X2, . . .,T。J中的任务都已执行完毕; 任务的一个空闲区间[ti,t2)称为一个任务X1的极大空闲区间maxEI是指,时刻ti为任务X1的释放时间或者任务集(X1,12,...,中的任务结束时间,并且从时刻t2 开始有任务集(Xi,i2,...,中的任务释放或者t2等于 于TP模型,如果一个任务I1的空闲区间[ti,t2)或者极大空闲区间[ti,t2)满足t2-ti兹Ci,则区间[ti,t2)称为任务X1的一个允许区间PI。
[002引实施例6: 根据实施例1或2或3或4或5所述的基于线性链表的实时任务可调度性测试拷贝模 拟方法,所述的给出该任务集可调度或者不可调度信息,在给出任务集是可调度的信息时, 给出maxi《1S。(LRTi),表示全部任务T1在当前优先级设置和任务释放偏移时的最大响应 时间。
[0027]实施例7: 根据实施例1或2或3或4或5或6所述的基于线性链表
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1