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

文档序号:9432461阅读:来源:国知局
3=24, 1〔14=24。任务11,12,13在区间[16,16巧4)的任务调度及任务14测试情况如附图4所 示,都可调度;任务T4经测试也可调度。模拟完成时该任务集可调度且最大响应时间为 12。
[0037] 表4给定稳定点S=16和经过调整释放偏移之后的任务参数
【主权项】
1. 一种基于线性链表的实时任务可调度性测试拷贝模拟方法,其特征是:该方法包 括:对每个i,I < i gn,记任务τ i的不早于调度稳定点S释放的第一个任务实例的释放 时间为新的释放偏移,还用Φ i表示,根据给定的调度模型,采用线性链表记录调度模拟和 测试过程,对任务τ i从时间点Φ i开始模拟第一个任务实例的调度执行;然后对每个i从 小到大,先将当前链表扩展成Φ_(1)? Φ_(1)+ LCM1内的调度结果,再对任 务T1在时间范围0_(1)到Φ_ (1)+ LCM1内模拟每个任务τ i的调度执行;最后在当前链 表上对任务τη进行测试。2. 根据权利要求1所述的基于线性链表的实时任务可调度性测试拷贝模拟方法,其 特征是:所述的采用线性链表记录调度模拟和测试过程,对任务T 1从时间点Φ i开始模 拟第一个任务实例的调度执行;然后对每个i从小到大,2 < i gn-Ι,先将当前链表扩展 成Φ_(1)到Φ _(1)+ LCM1内的调度结果,再对任务τ i在时间范围Φ _(1)到Φ _(1)+ LCM1 内模拟每个任务T1的调度执行;最后在当前链表上对任务τ n进行测试是指,采用一个线 性链表记录任务的调度模拟执行和测试过程,任务实例开始执行时间点记录到链表结点的 start字段,任务实例执行中止时间点记录到链表结点的end字段,每个链表结点表示从该 结点start字段值给出的时间点到该结点end字段值给出的时间点之间一个或多个任务实 例的连续调度执行;对每个i,I < i _ n,取任务τ 不早于S释放的第一个任务实例的 释放时间为新的释放偏移,还用O1表示,Φ _(1)- Φ i,LRI\-C1;对每个i,2 §i§n, π?η(Φ _(1 ' O1),LRT广C 1;给标志变量flag赋一个初值;首先模拟执行任务 τ i的第一个任务实例,即增加一个链表结点,Φ i赋值给结点的start字段,C i赋值给结点 的end字段,结点的next字段赋值为NULL或空;【对任务τ 2,τ 3, . . .,τ n i执行以下操作: 依优先级从高到低,对每个i,2 n-1,〖(壹)扩展链表,即将任务T1, τ2,...,T1 i 从时间起点到Φ nJM+LCMi丨的链表调度结果扩展到Φ J1-Wlcm1,即,以从时间 范围Φ_(14到φ + LCM1 i的调度结果的当前链表的第一个结点到最后一个结点为 一个整体块block共拷贝LCM1AXM1 _ i - 1次并依次链入链表中,第k次拷贝时将新块所有 结点的start字段和end字段分别加上kX LCM1 _ i,I _ k逢LCM1ACM1 _丨-1 ;将min (扩展 后的链表最后一个结点的end字段值,Φ^Μ+ΙΧΜ;)赋值给扩展后的链表最后一个结点的 end字段;(贰)令MXintel- Φ_(1)+ΙΧΜ1;对每个j,l ,从小到大依次调用 执行模拟单个任务实例函数Fl对任务τ i的第j个任务实例τ u进行模拟;〗;】;i - n, 调用测试模拟单个任务函数F2对任务τ i进行测试;给出任务集是可调度的信息。3. 根据权利要求1或2所述的基于线性链表的实时任务可调度性测试拷贝模拟方法, 其特征是:所述的执行模拟单个任务实例函数Fl对任务T1的第j个任务实例τ u进行模 拟是指,【根据& ,在链表中通过与结点中的start字段值及end字段值比较查找并从当前 作业j在链表中的相对位置开始,按CP模型调度时将运行时间C 1对应为1个或连续多个 任务τ i的空闲区间链表结点,这些结点表示的区间长度之和等于C 1;按TP模型调度时将 运行时间C1对应为任务τ i的一个允许区间结点PINode,结点PINode表示的区间长度等 于C1,且在该任务实例释放时间到结点PINode之间的全部任务τ 极大空闲区间都合并 到其相邻区间;按时间次序依次链入链表中的相应位置,链入链表的同时合并调度执行区 间时间点边界重合的链表结点,在模拟过程中无法在链表上完成运行时间C1的对应时修改 标志变量flag值不同于其初值,在模拟完成后记录任务τ i当前的最大响应时间LRT 1;如 果标志变量flag值不同于其初值或者LRT1M1,则返回不可调度信息并中止对该任务集的 可调度性测试;】。4. 根据权利要求1或2或3所述的基于线性链表的实时任务可调度性测试拷贝模拟方 法,其特征是:所述的测试模拟单个任务函数F2对任务τ i进行测试是指,【按TP模型调度 时I依次从每个任务实例的释放时间点开始至多经历时间长度LCM1 i,确定是否有任务τ i 的允许区间,如果没有,则返回不可调度信息并中止对该任务集的可调度性测试;每个任务 实例模拟完成后记录任务τ i当前的最大响应时间LRT 1;如果LRT AD1,则返回不可调度信 息并中止对该任务集的可调度性测试;3; 按CP模型调度时I从时间点Φ_(1)开始到时间点Φ _(1)+^^,依次对任务τ i的每 个任务实例确定是否有区间长度之和大于等于(;的1个或连续多个极大空闲区间,如果没 有,则返回不可调度信息并中止对该任务集的可调度性测试;每个任务实例模拟完成后记 录任务τ i当前的最大响应时间LRT 1;如果LRT AD1,则返回不可调度信息并中止对该任务 集的可调度性测试;〗;】。5. 根据权利要求1或2或3或4所述的基于线性链表的实时任务可调度性测试拷贝 模拟方法,其特征是:所述的TP模型的任务^的允许区间是指:任务τ 一个空闲区间 EI是指,对于任务T1, τ2,...,τη1的调度结果中一个没有被占用的连续的时间范围区间 Et1, ,在该区间内没有任务集(T1, τ2,...,τη J中的任务释放,并且在时刻心及 之前所有已释放的任务集{ τ τ 2, . . .,τ n J中的任务都已执行完毕; 任务^的一个空闲区间[tl,t2)称为一个任务^的极大空闲区间maxEI是指,时刻 L为任务τ ^勺释放时间或者任务集{τ τ2,...,τη1}中的任务结束时间,并且从时刻t2 开始有任务集(T1, τ2,...,τη J中的任务释放或者、等于Oniinai^XLCM1 pkgl;对 于TP模型,如果一个任务T1的空闲区间[ti,t2)或者极大空闲区间[tpt2)满足 C1,则区间[ti,t2)称为任务^的一个允许区间PI。6. 根据权利要求1或2或3或4或5所述的基于线性链表的实时任务可调度性测试拷 贝模拟方法,其特征是:所述的给出该任务集可调度或者不可调度信息,在给出任务集是可 调度的信息时,给出Hiax 1 i s n (LRT1),表示全部任务τ i在当前优先级设置和任务释放偏 移时的最大响应时间。7. 根据权利要求1或2或3或4或5或6所述的基于线性链表的实时任务可调度性 测试拷贝模拟方法,其特征是:所述的合并调度执行区间时间点边界重合的链表结点是指, 如果在链表中会产生或者有两个相邻的结点Nodel和Node2使得Nodel的end字段值等于 Node2的start字段值,则将这两个结点合并为一个结点Node3链入链表中Nodel的位置, 代替Nodel和Node2这两个结点,其中Node3的start字段值赋值为Nodel的start字段 值,Node3的end字段值赋值为Node2的end字段值,Node3的next字段值赋值为Node2的 next字段值。
【专利摘要】<b>基于线性链表的实时任务可调度性测试拷贝模拟方法。本发明方法包括:对每个</b><b>i</b><b>,</b><b></b><b>,记任务τ</b><b>i</b><b>的不早于调度稳定点</b><b>S</b><b>释放的第一个任务实例的释放时间为新的释放偏移,还用Φ</b><b>i</b><b>表示,根据给定的调度模型,采用线性链表记录调度模拟和测试过程,对任务τ</b><b>1</b><b>从时间点Φ</b><b>1</b><b>开始模拟第一个任务实例的调度执行;然后对每个</b><b>i</b><b>从小到大,</b><b></b><b>,先将当前链表扩展成Φ</b><b>min</b><b>(i)</b><b>到Φ</b><b>min</b><b>(i)</b><b>+LCMi</b><b>内的调度结果,再对任务τ</b><b>i</b><b>在时间范围Φ</b><b>min</b><b>(i)</b><b>到Φ</b><b>min</b><b>(i)</b><b>+LCMi</b><b>内模拟每个任务τ</b><b>i</b><b>的调度执行;最后在当前链表上对任务τ</b><b>n</b><b>进行测试。本发明用于需要确定给定的一组实时任务是否是可调度的模拟或仿真或实际应用系统中。</b>
【IPC分类】G06F11/36
【公开号】CN105183640
【申请号】CN201510481251
【发明人】姜誉
【申请人】黑龙江大学
【公开日】2015年12月23日
【申请日】2015年8月7日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1