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

文档序号:9432461阅读:来源:国知局
的实时任务可调度性测试拷 贝模拟方法,所述的合并调度执行区间时间点边界重合的链表结点是指,如果在链表中会 产生或者有两个相邻的结点Node巧日Node2使得Nodel的end字段值等于Node2的start 字段值,则将运两个结点合并为一个结点Node3链入链表中Nodel的位置,代替Node巧口 Node2运两个结点,其中Node3的start字段值赋值为Nodel的start字段值,Node3的end 字段值赋值为Node2的end字段值,Node3的next字段值赋值为Node2的next字段值。
[002引 实施例8: 根据实施例1或2或3或4或5或6或7所述的基于线性链表的实时任务可调度性 测试拷贝模拟方法,执行模拟单个任务实例函数F1对任务X1的第j个任务实例X1,,进 行模拟,即,【temp。一C1;根据r1,,在链表中通过与结点中的3*曰的字段值及611(1字段值 比较查找当前作业j在链表中的相对位置,分W下5种情形,且在模拟过程中尽可能合并 调度占用区间时间点边界重合的结点:(一)如果r1,,大于最后一个结点的end字段值,贝U Kinter^MXmtM- '1,,;增加一个新结点作为链表中的最后结点链入,新结点的3*曰的字段 值赋值为ri,.j,新结点的end字段值赋值为minCri,.j+temp。,MAXhter);如果inte;r<tempCi, 则修改标志变量flag值不同于其初值;3;(二)如果r1,,等于最后一个结点的end字段 值,卯JK令intersMAXinter-ri,.j;将min(MAXinter,ri,.j+tempCi)赋值给最后一个结点的end 字段;如果int&Ktemp。,则修改标志变量flag值不同于其初值;II;(S)如果ri,.j小于 第一个结点的start字段值,则K记第一个结点为Nodel,令inter和Nodel的start字段 值如果inte^tempCi,则『将Nodel的start字段值赋值为r如果是按CP模型 调度,则temp。和tempCi-inter;如果是按TP模型调度,则tempCi和Ci;接着按下面的情 形(五)继续调度当前第j个任务实例;JI;如果interHempCi,则增加一个新结点作为链 表中的第一个结点链入,其中,新结点的start字段值赋值为r,,,新结点的end字段值赋 值为ri,.j+tempCi;如果inter等于tempCi,则将第一个结点的start字段值赋值为ri,.j;D; (四)如果存在结点Node巧日Node2使r 大于Nodel的end字段值并且r于Node2 的start字段值,卯化inter和Node2的start字段值-ri,.j;如果interHempCi,贝Ij在链表 中Node巧日Node2之间增加一个新结点链入,其中,新结点的start字段值赋值为rij,新结 点的end字段值赋值为ri,.j+tempCi;如果inter等于tempCi,则将Node2的start字段值赋 值为如果inte;r<tempCi,则『将Node2的start字段值赋值为r 如果是按CP模型 调度,则temp。一tempC1-inter;如果是按TP模型调度,则tempC1和C1;此时将Node2记 为Nodel,接着按下面的情形(五)继续调度当前第j个任务实例;j; 3;(五)如果存在 结点Nodel使得r大于等于Nodel的start字段值并且小于等于Nodel的end字段值, 则继续调度当前第j个任务实例,直到当前第j个任务实例的剩余时间tempC1为零,即执行 循环体H,其循环控制条件为:当tempCi〉0;循环体H具体为如果Nodel之后没有其它结 点,贝『令inter^MAXinter-Nodel的end字段值;如果inter送tempC;,则[将Nodel的 611(1字段值加上161119(:1赋值给齡(161的611(1字段山1?1'1和111曰义(齡(161的611(1字段值^1^, LRTi);tempC0;];如果inteKtempCi,则[将Nodel的end字段值赋值为MAXinter,修 改标志变量巧曰旨值不同于其初值,tempCi^O;];j;如果齡(161之后有其它结点,则:记 Nodel的next字段所指结点为Node2,inter和Node2的start字段值-Nodel的end字 段值;如果interHemp。,贝Ij『将Nodel的end字段值+tempC1赋值给Nodel的end字段, LRTi^max(Nodel的end字段值-ri,.j,LRTi);tempCi^O;JI;如果inter等于tempCi, 则化昨和111曰义(齡(161的611(1字段值^1^,1昨);将齡(161的611(1字段值赋值为齡(162的end字段值,将Nodel的next字段值赋值为Node2的next字段值;tempC^和0;j;如果 inte;r<tempCi,贝Ij『将Nodel的end字段值赋值为Node2的end字段值,将Nodel的next字 段值赋值为齡(162的11姑*字段值;如果是按〔?模型调度,则*61119〇i^tempCi- 111*6。如果 是按了口模型调度,则tempCC1;h3;如果标志变量巧曰邑值不同于其初值或者LRT1〉〇1, 则返回不可调度信息并中止对该任务集的可调度性测试;】。
[002引实施例9: 根据实施例1或2或3或4或5或6或7或8所述的基于线性链表的实时任务可调 度性测试拷贝模拟方法,测试模拟单个任务函数F2对任务X1进行测试,即,【按TP模型调 度时:K在当前链表上,从时间点0min("到时间点巫min(i"+LCMi1查找全部的允许区间iPI, 记允许区间iPI的个数为k,如果k等于0,则返回不可调度信息并中止对该任务集的可调 度性测试;如果k〉0,则『temp。一Ci;记从巫mi。。"到巫mi。。"+LCMi1内第一个允许区间为 [tSi,ts2);对每个j,1 獲j《I.CMi/Ti,「modj^modCri,.j-S,LCMi1)+S,如果modj<C>min。。 且j〉l,则modj^mod.j+LCMi1;记mod.j之后的第一个允许区间为[t.ji,tj2),如果modj到 0min(i"+LCMu之间没有允许区间,则将[tsi+LCMi1,ts2+LCMi1)作为modj之后的第一个允 许区间,仍记为[tji,tj2);如果mod 则,如果tji声 11,则LRTi^max(t.ji-modj+temp。, LRTi);」;』;如果LRTi〉Di,则返回不可调度信息并中止对该任务集的可调度性测试;3; 按CP模型调度时:K对每个j,l璧j|;gLCMi/Ti,「tempCi-Ci;modj-mod(ri,j-S,LCMii)+S,如果modj<&min(i。且j〉l,则modmodj+LCMii;tempLRTLRT1,LRTi-0; Loc和mod.j;cycle和0;执行循环体Loopl,其循环控制条件为:当tempCi〉0,循环体Loopl 具体为:『执行寻找任务的极大空闲区间函数SearchmaxEI(i);如果LRTi〉Di,则返回 不可调度信息并中止对该任务集的可调度性测试;如果标志变量flag值不同于其初值,贝U [cycle值增加l;Loc-巫min。";给标志变量flag值赋其初值;];J;LRT1-max(LRTi, tempLRTi);如果标志变量flag值不同于其初值或者LRTi〉Di,则返回不可调度信息并中止 对该任务集的可调度性测试;3;其中,寻找任务的极大空闲区间函数SearchmaxEI(i) 是指,K在任务T1,T2,. . .,T。1的调度结果从时间点Loc开始不超过时间点〇 "+LCMi1 的范围内寻找任务的第一个极大空闲区间;如果没找到任务I1的极大空闲区间maxEI,则巧日果cycle〉l,则返回不可调度信息并中止对该任务集的可调度性测试;否则, 修改标志变量flag值不同于其初值;];如果找到一个任务X1的极大空闲区间maxEI, 记为[tji,tj2),贝Ij『如果t口-tji證tempCi,则[LRTi^tji+cycleXLCMi1-Loc+tempCi+ LRTi;tempC0;];女曰果t巧-t"〈temp。,贝Ij[LRT;^t巧+cycleXLCM;i-Loc+LKT;; temp。^tempCi- (t口 -tji) ;Loc^t.j2;];』;3 ;】。
[0030] 实施例10: 根据实施例1或2或3或4或5或6或7或8或9所述的基于线性链表的实时任务可 调度性测试拷贝模拟方法,按CP模型进行调度,本实施例中每个任务实例的优先级即为相 应任务的优先级,即每个任务实例的优先级固定。
[003。 给定由n=4个周期性任务诚事件)构成的任务集合{X1,X2,X3,TJ,有关参数 如表1所示。
[00础表1任务参数
在采用已有方法确定了稳定点s=n和调整释放偏移之后见表2,按给定的CP模型, 采用线性链表记录调度过程,给标志变量flag值赋一个初值,从点S开始,使用拷贝模拟 方法,进行任务集{T1,T2,T3,TJ的可调度性测试;其中,LCM1=6,LCM2=24,LCM3=24, LCM4=24。山=巫min(2)=巫mm(3)=巫min(4)=ll。任务Ti,l2,T进区间山,11 巧4)的任务调 度及任务T4测试情况如附图2所示,都可调度;任务X4经测试也可调度。模拟完成时该 任务集可调度且最大响应时间为9。
[0033] 表2给定稳定点s=n和经过调整释放偏移之后的任务参数
[0034] 实施例11: 根据实施例1或2或3或4或5或6或7或8或9或10所述的基于线性链表的实时 任务可调度性测试半直接模拟方法,本实施例给定的是按TP模型进行调度,每个任务实例 的优先级即为相应任务的优先级,即每个任务实例的优先级固定。
[003引给定由n=4个周期性任务诚事件)构成的任务集合{X1,X2,X3,TJ,有关参数 如表3所示。
[0036] 表3任务参数
在采用已有方法确定了稳定点S=16和调整释放偏移之后见表4,按给定的TP模型, 采用线性链表记录调度过程,给标志变量flag值赋一个初值;从点S开始,使用拷贝模 拟方法,进行任务集{T1,T2,T3,TJ的可调度性测试;其中,LCM1=6,LCM2=24,LCM
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1