基于缓存抢占延迟约束下AADL模型的可调度性分析方法技术

技术编号:24205175 阅读:34 留言:0更新日期:2020-05-20 14:21
本发明专利技术公开了一种基于缓存抢占延迟约束下AADL模型的可调度性分析方法,用于解决现有可调度性分析方法实时性差的技术问题。技术方案是根据可执行构件分配的存储资源大小初始化构件缓存利用率,并在特定调度算法下获取任务集在一次调度过程中的抢占序列,结合可执行构件的缓存利用率提出了基于抢占序列的CRPD计算方法。由于本发明专利技术方法是通过AADL线程构件存储资源预估值计算CRPD,因此在没有具体程序也可以对构件的缓存抢占延迟进行计算,故而可以普适地应用在AADL模型可调度性验证。特定调度策略下抢占序列刻画了调度过程中任务之间抢占行为,基于抢占序列的CRPD计算方法较UCB‑Union方法更为准确。

Schedulability analysis method of AADL model based on cache preemption delay constraint

【技术实现步骤摘要】
基于缓存抢占延迟约束下AADL模型的可调度性分析方法
本专利技术涉及一种可调度性分析方法,特别涉及一种基于缓存抢占延迟约束下AADL模型的可调度性分析方法。
技术介绍
文献“Timinganalysisforpreemptivemultitaskingreal-timesystemswithcaches,TransactionsonEmbeddedComputingSystems,2007,Vol6(1):7”提出CRPD(CacheRelatedPreemptionDelay,缓存相关抢占延迟)计算方法,该方法首先建立可执行任务的CFG(ControlFlowGraph,控制流图),然后为CFG中的每一个节点定义有用缓存块(UCB,UsefulCacheBlock)以及抢占缓存块(ECB,EvictingCacheBlock),最后提出抢占任务路径分析以及UCB-Union计算方法对任务的CRPD进行计算。文献提供了很好的思路去计算可执行组件动态运行时抢占行为所造成的抢占代价。但是,文献所计算出的缓存相关抢占延迟时建立在任务程序控制流图基础上,也就是说在代码层面去建立一种CRPD的计算方法。AADL(ArchitectureAnalysisDesignLanguage)建模语言在MDA(ModelDrivenArchitecture)设计思想下广泛应用于嵌入式系统建模,然而在绝大数情况下并不关心模型组件的具体代码实现,因此基于CFG的CRPD计算方法不能普适的去分析AADL调度模型在CRPD约束下的可调度性;除此之外,文献中提出的UCB-Union方法在计算被抢占任务的CRPD时,假设高优先级任务都会对低优先级任务造成抢占,因此会高估被抢占任务的CRPD。
技术实现思路
为了克服现有可调度性分析方法实时性差的不足,本专利技术提供一种基于缓存抢占延迟约束下AADL模型的可调度性分析方法。该方法根据可执行构件分配的存储资源大小初始化构件缓存利用率,并在特定调度算法下获取任务集在一次调度过程中的抢占序列,结合可执行构件的缓存利用率提出了基于抢占序列的CRPD计算方法。本专利技术通过迭代的方法计算构件CRPD以及CRPD约束的WCET(WorstCaseExecutionTime,最坏执行时间),保证了任务集在特定调度策略下生成的抢占序列考虑了所有可能发生的任务抢占。由于该方法是通过AADL线程构件存储资源预估值计算CRPD,因此在没有具体程序也可以对构件的缓存抢占延迟进行计算,故而可以普适地应用在AADL模型可调度性验证。特定调度策略下抢占序列刻画了调度过程中任务之间抢占行为,基于抢占序列的CRPD计算方法较UCB-Union方法更为准确。本专利技术解决其技术问题所采用的技术方案:一种基于缓存抢占延迟约束下AADL模型的可调度性分析方法,其特点是包括以下步骤:步骤一、建立AADL调度模型并提取AADL调度属性,提取的AADL调度属性包括Cache大小、Cache块大小、分区时间片大小、分区之间调度策略、分区内调度策略、分区内线程存储资源使用量、线程的执行时间、线程截止期、线程周期、线程优先级和线程标识;步骤二、根据公式(1)计算线程所使用缓存块数Bi,ROM(τi)表示任务τi的ROM资源使用量,RAM(τi)表示任务τi的RAM资源使用量,Line_Size为缓存块容量。步骤三、根据公式(2)计算线程τi的缓存利用率CUτi,初始化线程的CRPD为0,Bi为τi所使用缓存块数,CacheSize为Cache大小的。CUτi=Bi/(CacheSize/Line_Size)(2)步骤四、将任务的缓存利用率CUτi作为离散均匀分布的概率,在Cache块中以均匀分布的方式产生线程的ECBs。UCBs通过ECBs乘以一个重用因子ρ,UCBs是ECBs的一个子集并且UCBs数量为ρ·|ECBs|。ρ为缓存块重用率,取值空间为[0,1]的随机变量,服从均匀分布。步骤五、计算任务集的超周期以及任务执行断点的有序集合,任务执行断点集合为任务的释放点集合与分区切换点的集合的并集,初始化第一个任务执行断点为当前执行点,初始化任务集可调度性为true,初始化线程的状态为finish、剩余执行时间置0和未完成的任务记录置为空。步骤六、当前任务执行断点处有任务要释放,如果在该执行断点处被释放的任务状态不为Runnable,设置任务的状态为Runnable,否则设置任务集可调度性为false跳转至步骤十五;步骤七、如果任务执行断点为分区切换点则切换分区;步骤八、选则当前分区内调度算法下优先级最高且处于Runnable状态的任务作为当前任务执行断点处将要执行的任务;步骤九、如果上一个执行断点处的未执行完成的任务不为空并且与当前执行断点处选择的任务不同则发生抢占,同时记录抢占任务、被抢占任务、抢占发生时间和抢占发生周期;步骤十、设置当前任务执行断点处即将执行的任务状态为Running;步骤十一、如果任务的剩余执行时间大于下一个执行断点与当前执行断点的时间间隔,设置当前处于执行状态任务的状态为Runnable,并记录该任务为当前执行断点处未完成的任务,选择下一个执行断点为当前执行断点并跳转到步骤六,否则跳转到步骤十二。步骤十二、设置当前执行断点处正在执行任务的状态为finish,在任务执行断点列表的首部插入一个执行断点,值为当前执行断点处的时间点与任务剩余时间之和,并将任务剩余执行时间置0;步骤十三、如果当前任务执行断点为最后一个执行断点,跳转步骤十五,否则跳转到十四;步骤十四、选择下一个执行断点作为当前执行断点并跳转至步骤六;步骤十五、根据任务执行断点处抢占信息的记录输出抢占序列以及任务集可调度性;步骤十六、按照公式(3)计算基于抢占序列的任务缓存相关抢占代价CRPD,preemtingSequence(i)表示任务τi从被抢占到恢复执行这一时间段内高优先级任务的执行序列。ECBst表示抢占任务τt的ECB集合,UCBsi表示被抢占任务τi的UCB集合CacheMissTime为从内存中加载一个缓存块的时间。步骤十七、根据公式(4)计算任务在一个周期内的表示任务i在第k个周期的第j次抢占发生时的缓存相关抢占延迟,其中任务i在第K周期的抢占序列个数为N。步骤十八、根据公式(5)计算任务i在一个超周期内的CRPDi,CRPDi,k为任务i在超周期的第k个周期所计算出的缓存相关抢占延迟;CRPDi=max{CRPDi,1,CRPDi,2...CRPDi,k}(5)步骤十九、如果计算出任务的CRPDi小于任务i的CRPD或者任务集不可调度,跳转至步骤二十,否则更新任务i的CRPD为CRPDi,根据公式(6)更新每个任务的WCET并跳转至步骤五,Execution_Time为AADL架构模型中任务τi的最坏执行时间,CRPDi为任务τi的缓存相关抢占延迟;WCETi=Executio本文档来自技高网
...

【技术保护点】
1.一种基于缓存抢占延迟约束下AADL模型的可调度性分析方法,其特征在于包括以下步骤:/n步骤一、建立AADL调度模型并提取AADL调度属性,提取的AADL调度属性包括Cache大小、Cache块大小、分区时间片大小、分区之间调度策略、分区内调度策略、分区内线程存储资源使用量、线程的执行时间、线程截止期、线程周期、线程优先级和线程标识;/n步骤二、根据公式(1)计算线程所使用缓存块数B

【技术特征摘要】
1.一种基于缓存抢占延迟约束下AADL模型的可调度性分析方法,其特征在于包括以下步骤:
步骤一、建立AADL调度模型并提取AADL调度属性,提取的AADL调度属性包括Cache大小、Cache块大小、分区时间片大小、分区之间调度策略、分区内调度策略、分区内线程存储资源使用量、线程的执行时间、线程截止期、线程周期、线程优先级和线程标识;
步骤二、根据公式(1)计算线程所使用缓存块数Bi,ROM(τi)表示任务τi的ROM资源使用量,RAM(τi)表示任务τi的RAM资源使用量,Line_Size为缓存块容量;



步骤三、根据公式(2)计算线程τi的缓存利用率CUτi,初始化线程的CRPD为0,Bi为τi所使用缓存块数,CacheSize为Cache大小的;
CUτi=Bi/(CacheSize/Line_Size)(2)
步骤四、将任务的缓存利用率CUτi作为离散均匀分布的概率,在Cache块中以均匀分布的方式产生线程的ECBs;UCBs通过ECBs乘以一个重用因子ρ,UCBs是ECBs的一个子集并且UCBs数量为ρ·|ECBs|;ρ为缓存块重用率,取值空间为[0,1]的随机变量,服从均匀分布;
步骤五、计算任务集的超周期以及任务执行断点的有序集合,任务执行断点集合为任务的释放点集合与分区切换点的集合的并集,初始化第一个任务执行断点为当前执行点,初始化任务集可调度性为true,初始化线程的状态为finish、剩余执行时间置0和未完成的任务记录置为空;
步骤六、当前任务执行断点处有任务要释放,如果在该执行断点处被释放的任务状态不为Runnable,设置任务的状态为Runnable,否则设置任务集可调度性为false跳转至步骤十五;
步骤七、如果任务执行断点为分区切换点则切换分区;
步骤八、选则当前分区内调度算法下优先级最高且处于Runnable状态的任务作为当前任务执行断点处将要执行的任务;
步骤九、如果上一个执行断点处的未执行完成的任务不为空并且与当前执行断点处选择的任务不同则发生抢占,同时记录抢占任务、被抢占任务、抢占发生时间和抢占发生周期;
步骤十、设置当前任务执行断点处即...

【专利技术属性】
技术研发人员:董云卫习乐琪陆寅曹阳
申请(专利权)人:西北工业大学
类型:发明
国别省市:陕西;61

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

1