掌桥专利:专业的专利平台
掌桥专利
首页

一种基于扩展向量模型的软实时周期任务延迟计算方法

文献发布时间:2023-06-19 11:11:32


一种基于扩展向量模型的软实时周期任务延迟计算方法

技术领域

本发明属于嵌入式系统多核技术领域,涉及嵌入式多核平台下软实时任务调度过程中的性能评测研究。

背景技术

在当前基于多核体系结构的调度方法中,针对相互独立的实时周期任务的调度算法大致分为两大类:全局调度算法和任务划分调度算法。全局调度算法典型的如GEDF(Global Earliest Deadline First Scheduling),该算法的优点是核利用率高,缺点是要想达到负载均衡必须进行线程迁移,而迁移的开销很大。任务划分调度算法典型的如PEDF(Partitioned Earliest Deadline First Scheduling),该算法的优点是能够达到负载均衡,但却使核利用率较低。于是许多学者结合两种算法各自的优点,提出了半划分调度算法(Semi-Partitioned Scheduling)典型的如EDF-os(Earliest Deadline First-basedOptimal Semi-partitioned)算法,该类算法的总体思想是将调度算法分为两个部分:离线划分阶段和调度执行阶段。在离线划分阶段,将任务分为固定任务(Fixed Tasks)和迁移任务(Splitting Tasks),大部分任务为固定任务,被指派到其中一个处理器上,这种任务不可迁移;而另外一些小部分任务按照一定的比例被分配到不同处理器上,被称为迁移任务。调度执行阶段迁移的任务可以按照已经设定好的比例在不同处理器之间进行迁移。半划分调度算法在理论和实际应用中优于单纯的任务划分和全局的调度算法,但当两个或者两个以上相互独立的实时周期任务被分配到同一个处理器上时,如何精确计算出低优先级任务由于被抢占而导致的每次任务执行后的延迟时间,却是一个比较棘手的问题。当前大多学者都是在划分算法理论上给出一个延迟的最大范围,或者在假设已有的延迟的基础上进行最大延迟的理论推导,却无法从理论上精确给出低优先级任务每次执行的完成时间以及相应的延迟。

发明内容

本发明提供一种基于扩展向量模型的软实时周期任务延迟计算方法,解决现有技术中软实时系统中两个或两个以上暗含时限的实时周期任务被分配到同一处理器上时,由于抢占导致低优先级任务产生的延迟时间无法确定的问题。

为了达到上述目的,本发明的技术方案如下:

一种基于扩展向量模型的软实时周期任务延迟计算方法,其特征在于,针对同一处理器上被调度的两个或两个以上相互独立的暗含时限的实时周期任务,首先将暗含时限的周期任务模型转化为初始向量模型,然后将迁移任务的迁移比例情况计算出来,将迁移任务再转化为扩展向量,根据扩展向量的内容,精确计算低优先级的任务的每次执行的完成时间以及延迟时间。

进一步的,具体包括以下步骤:

步骤1、选择一个已经分配好的处理器,将该处理器上已经分配的暗含时限的周期模型转化为初始向量模型;

步骤2、根据划分调度算法,将分配在处理器上的高优先级的任务的分配份额以及Job执行的比例计算出来;

步骤3、根据步骤2,将所有高优先级任务的初始向量按照Job分配的比例转化为扩展向量模型;

步骤4、如果同一个处理器上只有两个任务,则直接进入步骤5;否则将高优先级任务的扩展向量合并为一个扩展向量。

步骤5、根据步骤4的扩展向量模型来判定是离散型的任务模型还是一般的暗含时限的周期任务模型;如果是离散型的任务模型则根据离散型延迟的计算方法来计算低优先级任务的完成时间和延迟时间,否则根据普通暗含时限的延迟计算方法来计算,如果系统处理器还没有处理完毕,转步骤1。

进一步的,步骤1中,转化为初始向量模型具体包括以下步骤:

步骤101、先根据某个划分的调度算法将任务分配到不同的处理器上;

步骤102、选择其中一个处理器,将已经分配好的暗含时限的实时周期任务τ(e,p)写成p维向量,从第一个元素开始连续e个元素的值都为1,剩余的都为0。

进一步的,步骤2中,计算高优先级任务的划分份额s

步骤201、对于某处理器上的高优先级任务τ

步骤202、根据f

进一步的,步骤3中,初始向量按照Job分配的比例f

步骤301、将f

步骤302、根据调度算法特点,如果分配该任务的第k个Job在该处理器上运行,那么将τ′(e×a,p×b)的初始向量的1的起始位置重新进行定位到第k个Job的位置;

步骤303、将所有分配到该处理器上的Job按照p×b个周期重新定位,其他未能分配到Job的周期内所有元素值为0,即为扩展向量模型。

进一步的,步骤4中,合并扩展向量具体包括以下步骤:

步骤401、先求出不同的高优先级任务的扩展向量周期的最小公倍数m;

步骤402、根据m对高优先级的扩展向量进行再次扩展,然后对应元素进行相加运算;运算后的结果应仍然为0或者1的元素。

进一步的,步骤5中,选择不同的计算公式具体包括以下步骤:

步骤501、根据高优先级任务的扩展向量是否与初始向量性质相同,即从第一个位置开始为1,且后续为1的值的位置一直连续,后续0的位置也连续,既可以判定该扩展向量等同于一般暗含时限的周期任务,即扩展向量的中1的个数为e

步骤502、如果利用定理1计算低优先级任务某次执行的延迟,则根据上述步骤中的e

步骤503、如果利用定理2进行计算低优先级任务某次执行的延迟,则先要根据定义3写出上述扩展向量的离散型周期任务模型,写出

与现有技术相比,本发明的有益效果是:

1.本发明可以提前预测软实时周期任务低优先级任务每次完成的时间节点和延迟情况,为保证安全关键任务的执行以及分析调度过程中的性能提供有力的理论依据,这对于进一步研究嵌入式多核调度算法的性能评价方法有很重要的意义,在嵌入式多核设备的自动控制和安全领域将会有广泛的应用前景和重要的价值。

2.本发明根据软实时系统中划分调度算法离线分配任务的特点,提出利用扩展向量模型精确计算低优先级任务每次被执行后的完成时间和延迟时间的理论计算方法,为多核调度算法性能和系统的高效性分析提供了合理的理论依据。

附图说明

图1是本发明EDF-os算法示例离线阶段的分配情况;

图2是本发明EDF-os算法在线执行阶段的调度情况。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

第一部分:说明本发明方法完整的步骤

本发明针对两个或两个以上相互独立、暗含时限的软实时周期任务,被分配到同一处理器上进行调度时,利用向量模型对低优先级任务每次执行的完成时间和延迟时间进行精确计算的方法。首先,需要确定软实时系统中的暗含时限的实时周期任务的三个重要属性——发布时间r、周期p和最坏执行时间e。其中周期也是相对时限,记为τ(r,e,p),如果r为从0时刻发布,则记为τ(e,p)。本发明讨论的是后者。

对于一个拥有n个实时周期任务的软实时系统τ={τ

定义1.对于任何一个暗含时限的实时周期任务τ(e,p),都可以唯一对应一个p维向量,该向量中从第一个元素开始连续e个元素的值都为1,剩余p-e个连续的元素都为0。例如τ(3,5)可以对应于一个5维的向量为[1,1,1,0,0]。把该向量称为任务τ的原始向量,记为I(τ).

定义2.给定一个大于N的整数值M>N,可以通过循环重复I(τ)中的全部元素,使其扩展为M维向量,这里M应为N的整数倍,记为原始矩阵的扩展向量E

定理1.如果有两个暗含时限的实时周期任务τ

证明:因为τ

相应的

由Tardiness(τ

定义3.对于一个实时周期任务τ

例如:

定理2.如果τ

Lateness(τ

其中

如果j=0则q

当i=1时,

如果i>1时,如果Lateness(x

如果第i个Job之前的所有Job都存在Lateness(τ

如果存在Lateness(x

证明:因为q

e

第1个Job的最后结束时间为从发布时刻0开始起到第e

如果Lateness(τ

如果对于所有i-1个Job的Lateness(x

如果存在Lateness(x

如果

Lateness(τ

得证。

由定理2可以计算Tardiness(τ

第三部分:测试用例

测试用例1:假设暗含时限的两个实时周期任务τ

计算τ

Lateness(τ

Tardiness(τ

计算τ

Lateness(τ

TarDiness(τ

计算τ

Lateness(τ

Tardiness(τ

测试用例2:假设离散型周期任务

计算第一个job的延迟

Lateness(τ

Tardiness(τ

计算第二个job的延迟因为Lateness(τ

Lateness(τ

Tardiness(τ

计算第三个job的延迟

因为Lateness(τ

Lateness(τ

Tardiness(τ

计算第四个job的延迟:

因为Lateness(τ

Lateness(τ

Tardiness(τ

计算第五个job的延迟:

因为Lateness(τ

Lateness(τ

TarDiness(τ

计算第六个job的延迟:

因为Lateness(τ

Tardiness(τ

Tardiness(τ

计算第七个job的延迟:

因为Lateness(τ

Lateness(τ

Tardiness(τ

计算第八个job的延迟:

因为Lateness(τ

Lateness(τ

Tardiness(τ

第五部分:EDF-os算法中各任务延迟分析

EDF-os算法James H.Anderson提出的软实时任务的典型算法,其基本思路是:将任务分配分为两个阶段:第一阶段为离线分配阶段和第二阶段是在线执行阶段。在离线分配阶段,将所有任务按照利用率降序排列,然后按照处理器数量进行顺序分配。

首先,分配在处理器上的第一个任务必定是固定任务,其分配在该处理器上的份额一定是该任务的利用率因子。

其次,其他任务作为预迁移任务又按照顺序依次在每个处理器上进行分配。分配时先计算该处理器上的剩余份额,如果处理器剩余份额大于该预迁移任务的利用率因子则将该预迁移任务作为固定任务全部分配在该处理器上,否则将该处理器上剩余份额全部分配给该任务,然后对任务剩余的利用率因子部分进行下一个处理器上的分配,则该任务为迁移任务。重复执行剩余任务的分配直到所有任务都分配完毕。

按照表1示例,利用EDF-os算法可以获得如图1所示的离线分配结果和图2所示的在线执行结果。表1中的s

根据本发明中的定理1和定理2可以计算出所有任务的完成时间和延迟时间统计如表2-5所示。

表1 EDF-os算法任务属性表示例

表2 EDF-os算法任务τ

表3 EDF-os算法任务τ

表4 EDF-os算法任务τ

表5 EDF-os算法任务τ

下面来分析EDF-os算法中处理器上Job的延迟时间计算方法:

p

p

p

p

以上就是针对EDF-os算法的Job延迟计算思路,其他半划分算法也可以使用本方法进行计算。只要是按照比例固定分配到处理器上的暗含时限的软实时任务,都可以根据本发明中的定理1和定理2准确计算低优先级任务执行的完成时间和延迟时间的理论值。

以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。任何熟悉该技术的人在本发明所揭露的技术范围内的局部修改或替换,都应涵盖在本发明的包含范围之内。

相关技术
  • 一种基于扩展向量模型的软实时周期任务延迟计算方法
  • 一种适用于实时系统周期任务模型的低功耗调度方法
技术分类

06120112837432