[发明专利]AADL模型的一种调度分析方法无效
申请号: | 200910060340.2 | 申请日: | 2009-08-13 |
公开(公告)号: | CN101615120A | 公开(公告)日: | 2009-12-30 |
发明(设计)人: | 桂盛霖;罗蕾 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/46 |
代理公司: | 北京市路盛律师事务所 | 代理人: | 温利平 |
地址: | 611731四川省*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了AADL模型的一种调度分析方法,包括:线程的语义图和到达时间行为图,使得AADL模型的执行语义可抽象为一个语义图,并将每个线程的到达行为约束用到达时间行为图表示,还扩展了时钟限制数据结构的操作算法,从而达到分析其调度性的目的。 | ||
搜索关键词: | aadl 模型 一种 调度 分析 方法 | ||
【主权项】:
1、一种AADL模型的一种调度分析方法,包括以下步骤:(1)、对每个线程实例设计一个语义图1.1)、在语义图中,每个线程实例可以处于如下位置:等待分派、就绪、执行和错误;对每个线程实例Tij使用两个计时器eij和tij来分别计时其执行时间和截止时间,其中下标i表示第i个线程,下标j表示第j个实例,在任何位置上计时器tij单位时间增长率都一直为1,计时器eij只在running位置上单位时间增长率为1,其余位置上为0;等待分派位置为每个线程实例Tij的初始位置;对每个计时器eij和tij都分别存在一个最大正整数值Wi和Di,一旦某个线程实例Tij的计时器eij计时超过Wi或计时器tij计时超过Di,则该两个计时器eij和tij的值都同时置为0;1.2)、函数v表示计时器的值,在每个线程实例Tij的就绪,执行位置上都存在如下的限制:v(tij)≤Di,执行位置上还存在限制:v(eij)≤Wi;1.3)、每个线程实例Tij的位置之间的迁移条件的限制是如下的形式:V:=V∧V|v(ekl)~C|v(tkl)-v(tmn)~C,其中~∈{<,>,≤,≥,=},C是整数。ekl是线程实例Tkl的计时其执行时间的计时器,tkl和tmn是线程实例Tkl和Tmn的计时其截止时间的计时器,将具体的调度策略编码成位置之间迁移条件限制;1.4)、对非周期线程,将其就绪和执行位置分别细分K个,表示为ready1,ready2...readyK和running1,running2...runningK,使用位置的个数来记录目前分派缓冲队列中的事件个数,K对每个线程是常数;1.5)、线程之间的分派关系由迁移之间的同步事件表示,具有相同同步事件的迁移才能同时发生;线程实例Tij执行完后激活非周期线程实例Tmn表示在线程实例Tij的执行位置到等待分派位置的迁移上标记同步事件且在线程实例Tmn的等待分派位置到就绪位置ready1的迁移上、ready1到ready2的迁移上、...readyK-1到readyK的迁移上都标记相同的同步事件;(2)、用同步时间来描述每个线程到达时间行为在每个线程到达时间行为图中,存在与语义图中定义相同的位置、计时器和迁移条件,只是在到达时间行为图中,计时器的增长率任何时间都为1且名字不同于任何已用的计时器;(3)、为了分析某个任务实例的error位置是否可以到达,在DBM矩阵现有操作技术的基础上进行了操作修改:有k个计时器:x1,x2,...xk,DBM是一个k+1维矩阵,对任意i,Di0=(k,0)表示计时器xi的严格上界值k,即v(xi)<k,或Di0=(k,1)表示计时器xi的非严格上界值k,即v(xi)≤k;D0i表示计时器xi的严格或非严格下界值;对任意的i和j,Dij表示v(xi)-v(xj)的严格或非严格上界值,其中下标i表示DBM的第i行,j表示DBM的第j列;为了使一个DBM和一个时间域一一对应,因此必须将DBM化为标准形式,即∀ 0 ≤ i , j , l ≤ k , s . t . D ij ≤ D ij + D jl . ]]> 为了求后继时间区域,定义如下几个DBM操作行为:●交(∧):对两个标准的DBM D和D’,定义交集D”,其Dij”=min(Dij,Dij’)。交操作完成后,首先检查所得到的D”所表示的时间区域是否为空,若不为空,则化为标准形式;●时间流逝(↑):使用D↑表示DBM D的时间流逝操作。在此过程中,任意计时器xi满足x · i = 1 , ]]> 其D0i值保持不变,Di0值变为∞;任意计时器xj满足x · j = 0 , ]]> 其D0j值保持不变,Dj0值保持不变;任意计时器xm和xn满足x · m = 1 ]]> 且x · n = 1 , ]]> 其Dmn和Dnm值保持不变;任意计时器xs和xt满足x · s = 0 ]]> 且x · t = 0 , ]]> 其Dst和Dts值保持不变;任意计时器xi和xj满足x · i = 1 ]]> 且x · j = 0 , ]]> 其Dij值变为∞,Dji值保持不变;然后在对所得到的D标准化;●重置(λ:=0):假设需要重置的计时器集合为λ。给定DBM D,对所有计时器xi∈λ,把所有的D0i和Di0的值置为(0,1);任意计时器xm和xn满足xm∈λ且xn∈λ,把Dmn和Dnm值置为(0,1);任意计时器xi和xj满足xi∈λ且x j ∉ λ , ]]> 把Dij置为D0j的值,把Dji置为Dj0的值;(4)、调度前所有线程都被初始化,在各自的语义图上他们都在等待分派位置上,在到达时间图上他们都被初始化在初始位置上,一开始的DBM的所有计时器的值被初始化0;(5)、进入调度分析的时候,先让DBM按上述时间流逝的方法进行流逝:在每个线程的每个位置上可以定义时间约束,把这些时间约束转换成一个整体的DBM,接着把该DBM和时间流逝后的DBM求交运算,求出一个新的DBM;但当前位置集合中包含某些就绪位置或执行位置,则对这些位置先不进行时间流逝,而直接进行求交运算;(6)、每个线程实例的语义图的每个位置都有自己的后继边,把后继边上的时间约束用DBM的形式表示,用步骤(5)求出的DBM跟每条后继边时间约束的DBM求交,如果求交后的DBM不为空,即说明这条后继边可走,就发生位置转移;如果语义图的当前位置是执行位置,若到等待分派位置的后继边可走,就会迁移到等待分派位置,如果该后继边有同步事件产生,即该线程运行完会触发别的线程实例的分派;在实现这个步骤的时候,判断该线程运行状态到分派状态的边上所同步关联的线程实例有哪些,选择一个仍然处于等待分派位置的实例来使用,即触发该线程实例的分派;同样该线程的到达时间图的当前位置的后继边也做以上的同样处理,看是否发生状态转移;(7)、如果某个线程实例进入错误位置,则分析过程中止,提示“不可调度”;(8)、否则,判断当前所有线程的位置集合是否跟以前某一时期的位置集合相同,如果是,再判断当前的DBM是否包含于那一时期的DBM,两个条件都符合就说明整个系统可成功调度;否则回到步骤(5)。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/200910060340.2/,转载请声明来源钻瓜专利网。