首页 / 专利库 / 广播 / 基于段的缓存 / 一种TTFC网络的任务调度模型及消息调度表生成方法

一种TTFC网络的任务调度模型及消息调度表生成方法

阅读:801发布:2020-05-11

专利汇可以提供一种TTFC网络的任务调度模型及消息调度表生成方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种TTFC网络的任务调度模型及消息调度表生成方法。TTFC网络任务调度模型综合考虑运行在端系统上的计算任务和通过网络进行数据交换的通信任务,支持对时间触发(Time-Triggered,TT)流量类和速率受限(Rate-Constrained,RC)流量类的建模,支持多播通信。该模型由网络拓扑模型,任务、链路树、数据 帧 模型,以及一组任务调度模型约束条件构成。TTFC网络的消息调度表生成方法设计了一种TT任务和RC任务的分阶段调度 框架 。该方法先执行任务的可调度性检验,如通过检验,再针对TT任务调用具体的调度表生成 算法 求得TT任务的静态调度表,在此 基础 上检验链路是否有足够的剩余带宽完成RC任务调度,最终获得满足模型所有约束条件的静态调度表,解决了TTFC网络中的任务调度问题。,下面是一种TTFC网络的任务调度模型及消息调度表生成方法专利的具体信息内容。

1.一种TTFC网络的任务调度模型,其特征在于,综合考虑运行在端系统上的计算任务和通过网络进行数据交换的通信任务,支持TT任务和RC任务的描述及约束条件的表达,同时支持单播和多播应用,模型包括如下模
模块S11:描述TTFC网络结构的网络拓扑模型;
模块S12:描述TTFC网络中的TT任务、RC任务及其数据的任务模型、链路树模型和数据帧模型;
模块S13:描述TTFC网络中任务调度要求的一组任务调度模型约束条件。
2.如权利要求1所述的一种TTFC网络的任务调度模型,其特征在于,所述模块S11对交换式网络结构建立网络模型:G=(V,E),顶点集V(vertex):表示网络中所有的设备节点,包括终端节点和交换机节点;边集E(edges):表示网络中交换机和终端以及交换机与交换机相连的所有全双工通信链路;链路[vm,νn]表示为:{[vm,νn].bw,[vm,νn].d,[vm,νn].b},其中,[vm,νn].bw表示链路带宽;[vm,νn].d表示链路延迟,[vm,νn].b表示链路的缓存能,即节点νn最多可以缓存来自节点vm的帧的数量。
3.如权利要求1所述的一种TTFC网络的任务调度模型,其特征在于,所述模块S12包括以下模型:
S121:任务模型;S122:链路树模型、S123:数据帧模型;
S121、任务模型包括:TT任务和RC任务,
所述TT任务:
Ti={{Ti,1,Ti,2…Ti,n},Ti.Tr,Ti.p,Ti.D,Ti.rt,Ti.Fi}
其中,{Ti,1,Ti,2…Ti,n}表示Ti的子任务序列,子任务个数为n;Ti.Tr表示任务Ti所涉及的所有物理链路构成一棵链路树;Ti.p表示任务Ti的周期;Ti.D表示任务Ti的截止期;Ti.rt表示任务Ti的响应时间,即任务Ti的最后一个子任务完成时间与周期开始时间之间的时长;
Ti.Fi表示任务Ti产生的数据帧集合;其中任务Ti中的单个子任务Ti,j可表示为如下元组:
其中, 表示任务Ti,j的偏移量;任意Ti,j.link=[vm,νn]∈E,当m≠n时,Ti,j.link=[vm,νn]表示通信子任务Ti,j的传输链路,当m=n时,Ti,j.link=[vm,νm]表示计算子任务Ti,j在节点vm上执行;任务Ti中,消息发送者端系统上的计算任务称为消息的生产者子任务,消息接受者端系统上的计算任务称为消息的消费者子任务。在多播任务的情况,将一个任务Ti中所有的消费者子任务集合记为Tci;
Ti,j.c表示任务Ti,j的执行时间,当Ti,j.link=[vm,νm]时,Ti,j.c为WCET(Worst-case Execution Time),即最坏情况执行时间,运行于端系统va上的一个计算任务的执行时间记作:wcet(va);当Ti,j.link=[vm,νn]时: 其中Fi,s.L为当
前任务数据帧长度,[vm,νn].bw表示链路[vm,νn]上的网络带宽,[vm,νn].d表示链路延迟。
Ti,j.p:表示任务Ti,j的周期,满足关系:Ti,j.p=Ti.p;
所述RC任务:
区别于强实时任务,系统中所有的RC(rate-constrained,速率受限)任务集合记为R,其中Ri∈R,是第i个任务。同TT消息相比,Ri可描述为:
Ri={{Ri,1,Ri,2…Ri,n},Ri.Tr,Ri.bw,Ri.BAG,Ri.Fi}
其中,{Ri,1,Ri,2…Ri,n}表示RC任务Ri的子任务;Ri.Tr表示任务Ri所涉及的所有物理链路构成一棵链路树;Ri.bw表示任务Ri的带宽;Ri.BAG表示任务Ri的最小帧间隙,即任务Ri发送两个连续帧的起始二进制位之间的最小间隔;Ri.Fi:表示任务Ri产生的数据帧集合;
其中任务Ri中的单个任务Ri,j可表示为如下元组:
其中, 表示任务Ri,j的偏移量;任意Ri,j.link=[vm,νn]∈E,当m≠n时,Ri,j.link=[vm,νn]表示通信子任务Ri,j的传输链路,当m=n时,Ri,j.link=[vm,νm]表示计算子任务Ti,j在节点vm上执行;Ri,j.c表示任务Ri,j的执行时间,当Ri,j.link=[vm,νm]时,Ri,j.c为WCET(Worst-case Execution Time),即最坏情况执行时间,其执行时间长度同TT任务;当Ri,j.link=[vm,νn]时: 其中Fi,s.L为当前RC任务数据帧长
度,[vm,νn].bw表示链路[vm,νn]上的网络带宽,[vm,νn].d表示链路延迟;
S122、链路树模型:
对一个应用程序任务来说,其产生的数据帧会在网络链路上进行传播。一个任务中所有通信子任务的link构成一棵链路树。任务Ti对应的链路树记为Ttri,树中的顶点集合记为Ttri.V,边的集合记为Ttri.E;同理,任务Ri对应的链路树记为Rtri;任务系统中所有的链路树构成的集合记为LT;
S123、数据帧模型:
定义任务Γi∈Γ产生的有序帧集合记为Fi,fi,s表示任务Γi产生的第s个帧。fi,s在链路[vm,νn]上的传输记为 可用如下元组表示:
其中, 表示任务Γi产生的第s个帧在链路[vm,νn]上的传输偏移量,即数据
帧在链路上的发送时间; 表示任务Γi产生的第s个帧在链路[vm,νn]上的传输周期; 表示任务Γi产生的第s个帧在链路[vm,νn]上传输时的数据帧长度。网络中所有任务的帧集合记为F,Fi在链路[vm,νn]上的传输记为 其中传输的最后一个帧记为
4.如权利要求1所述的一种TTFC网络的任务调度模型,其特征在于,所述模块S13包括:
S131、数据帧约束:对于在链路上调度的任何TT数据帧,偏移量不能取负值或任何会导致帧结束时间超过数据帧周期的值;
上式定义表示:TTFC系统中,对于在任意一段链路[va,vb]上传输的数据帧fi,s,调度任务需确保该数据帧的偏移量为正值,并且其偏移量 与帧对应的执行时间之和要比该数据帧周期小;
S132、端系统计算任务约束:对于网络拓扑中的任意端系统,需要确保在每个处理器上,只有当处理器空闲时,才能够触发一个应用程序任务。即在端系统中不可存在计算任务冲突的情况;
上式定义表示:TTFC系统中,在任意一个端系统上执行的任意两个任务τi,j和τx,y,满足:任务τi,j偏移量比任务τx,y的偏移量与执行时间之和大,或者任务τx,y的偏移量比任务τi,j的偏移量与执行时间之和大,即端系统上的计算任务需满足时域内不重叠;
S133、链路约束:在同一链路上传输的任何两个不同任务的TT数据帧不会发生冲突,即:对于某一条链路,两个TT数据帧在时域内没有重叠;
上式定义表示:TTFC系统中,在同一段链路[va,vb]上传输的任意两个任务所包含的任意两个数据帧 和 在任务周期内,等待数据帧 传输完成后,帧 才能够
在该链路上传输或者等待数据帧 传输完成后,帧 才能够在该链路上传输,即这
两个数据帧在同一链路上的传输满足在时域内不重叠;
S134、链路树约束:一条链路上的传输窗口的开始与前一条链路上的传输窗口的结束之间的差距必须大于前一条链路的一跳延迟加上整个网络的精度
其中Ti,j是 对应的任务。δ是网络精度;
上式定义表示:数据帧fi,1在两个连续链路[va,vx],[vx,vb]上传输,帧fi,1在链路[vx,vb]上的偏移量数值必须比在中间端点vx上的最一个任务的偏移量加上其执行时间,加上前一条链路一跳延迟以及整个网络的精度之后的时间值大,即满足连续链路传输条件;
S135、端到端延迟约束:每一个TT消费者任务的结束和第一个生产者任务的开始之间的差距必须小于或等于允许的最大端到端延迟;

其中,dest(Ttri)表示链路树Ttri上的叶子结点集合(消息的消费者节点集合),src(Ttri)表示Ttri的根节点(消息的生产者节点),max_lantency表示生产者任务所在的节点和消费者任务所在的节点之间允许的最大端到端延迟;
上式定义表示:任意一个TT任务Ti,任务的最后一个接受者 完成端系统上的
计算任务的时间与该任务产生的第一个数据帧偏移量之间的差值不能比该TT任务所要求的的最大端到端延迟大,即满足TT任务的延迟限制;
S136、任务依赖关系约束:两个任务之间的开始时间和结束时间可根据实际需要,满足一定的关系;Ti,1.link=[va,νa]对应Ti消息的生产者子任务,Ti,n.link=[vb,νb]对应Ti消息的消费者子任务;Tm,1.link=[vc,νc]对应Tm消息的生产者子任务,Tm,k.link=[vd,νd]对应Tm消息的消费者子任务。则:依赖关系有如下三种:Tm,1在Ti,n结束之后开始,且Tm,1开始时间与Ti,n结束时间之间差满足Δt∈[p.q],p,q∈R;Tm,1在Ti,1开始之后开始,且Tm,1与Ti,1开始时间差满足Δt∈[p.q],p,q∈R;Tm,k和Ti,n的结束时间必须同时属于某个时间区间,即Tm,k的结束时间与Ti,n的结束时间差满足Δt∈[p.q],p,q∈R;
S137、内存约束:节点中输入端口缓存的帧个数不能超过端口的最大缓存能力;
其中,函数G定义如下:
式中 表示 经过vx后在[vx,vb]上传输的帧;函数G表示如果任务Tm在[va,
vx]上传输的帧在 到达vx时仍在缓存队列中,则返回1,否则返回0。而上第三行则统计了 到达vx时所有尚在缓存队列中的帧的数量,并确保该数值不超过限制。
上式定义表示:当数据帧fi,j经过链路[vx,vb]到达节点vx时,该节点将利用G函数对此时缓存队列中任务Tm的数据帧进行合计,对于此时仍与节点中的数据帧返回1,否则返回0,对G函数求和汇总,得出节点数据帧fi,j到达节点vx时缓存队列中的数据帧个数,其数值必须小于其链路的缓存能力[va,vx].b;
S138、多播约束:多播树上的交换机节点将一个帧发送到多个不同的输出端口时,各输出端口的帧的偏移量相同;
其中 表示一个链路树上的某个交换机节点, 表示节点 的孩子节点
个数。假设某个帧经过该交换机共发往n个不同的输出端口,其中第k个端口输出的帧记为上式定义表示:TTFC系统中的多播任务有n个消息接受者,需要向n条链路
中发送数据帧,且必须保证各个数据帧的的偏移量相
同;
S139、RC帧约束:同一个消费者任务的前后两个RC帧的接收时间差:Δt∈(1×BAG,1.5×BAG]。

其中,Rtri是Ri对应的链路树,dest(Rtri)是Rtri的叶子结点集合。
上式定义表示:TTFC系统中的同一个RC任务的任意两个相邻RC帧之间的传输间隔满足在1个BAG到1.5个BAG之间,如前文所述,BAG是由RC任务周期和链路带宽计算得出的RC帧间隙。
5.一种TTFC网络的消息调度表生成方法,其特征在于,基于提出的任务调度模型,提出TT任务和RC任务的分阶段调度框架,该框架用于生成满足任务调度约束条件的TT任务消息调度表,包括以下步骤:
S21、对任务进行可调度性检验,检验TTFC网络系统中的所有TT任务和RC任务是否满足基本的可调度性约束;
S22、在检验结果为任务可调度的基础上,调用消息调度表生成方法,求得TT任务的静态调度表S;
S23、在结果S的基础上,进一步检验链路的剩余带宽能否完成RC任务调度,若检验通过,返回结果S。
6.如权利要求5所述的一种TTFC网络的消息调度表生成方法,其特征在于,所述步骤S21由系统模型定义一组任务的基本可调度性检验条件,检验系统中任务集是否可调度;
所述步骤S21包括:
S211、消息总带宽约束检验:TTFC网络中的链路集合中的任意一段链路上的TT任务和RC任务传输所需总带宽不能超过链路本身的带宽;
S212、TT消息总执行时间约束检验:对于 在确定其数据帧Fi的传输路径后,Ti
所有子任务的执行时间不得超过Ti的截止时间
S213、终端cpu利用率检验:对于 必须确保每个终端系统的CPU利用率低于
100%;
S214、BAG约束检验:对于系统中的任意RC任务Ri,由任务Ri的预设带宽和发送周期,计算Ri.BAG,当BAG在[0.1ms,128ms]范围内时,RC任务可调度。
7.如权利要求5所述的一种TTFC网络的消息调度表生成方法,其特征在于,所述步骤S22采用具体的消息调度表生成算法求解系统中TT消息调度表,通用算法可依据情况选择SMT理论模型、MIP混合整数规划模型或者其他计算模型。
8.如权利要求5所述的一种TTFC网络的消息调度表生成方法,其特征在于,所述步骤S23验证RC任务是否可调度,基于TT任务调度结果S,进一步检验各链路的剩余可用带宽是否能够调度所有的RC任务;
所述步骤S23包括:
S231、RC任务可调度性约束检验:TTFC系统在进行RC任务调度之前,各链路在排好所有的TT任务之后,需要检验各链路空余可用带宽能否满足所有RC任务的排布。
9.根据权利要求8所述所述的一种TTFC网络的消息调度表生成方法,其特征在于,所述步骤S231:用下面公式所示的分段函数h([va,vb],i),对任意链路[va,vb]上相邻的TT帧间空余带宽进行可用性判断,判断规则如下:相邻TT帧间空余带宽至少足够传输两个最长RC帧(其一作为最后一个RC帧之后的TT帧的保护时间),即称之为空余可用带宽;用I([va,vb])对任意链路[va,vb]上所有相邻TT帧间空余可用带宽能够传输的RC帧个数进行汇总,其总和必须大于该链路上需要传输的RC帧总数;
[va,vb]上排好的TT帧依次按偏移量递增排序记为
m为[va,vb]上排好的TT帧的个数。设[va,vb]上需要传输的RC帧的
数量为n([va,vb])。则TT帧的偏移量需满足如下公式:
其中:
Ti,p.link=[va,vb],Ti,p.c表示表示帧ffi在链路[va,vb]上的执行时间,RC_max表示任务集合R中的最长数据帧在链路[va,vb]上的传输时间,即:
max(Fri)表示RC任务中最大的数据帧的帧长。

说明书全文

一种TTFC网络的任务调度模型及消息调度表生成方法

技术领域

[0001] 本发明涉及属于网络通信技术领域中的TTFC网络中时间触发流量类的调度方法研究领域,特别涉及一种TTFC网络中任务调度模型及消息调度表生成方法。

背景技术

[0002] 近年来,网络通信技术在军事、航空电子系统、制造业等领域得到了快速发展,日益增长的网络化需求意味着更复杂的网络布线、更拥塞的信息传输和更高的成本。在FC网络中,端系统通过交换以太网进行通信,数据帧通过从发送端到接收端的交换机逐跳转
发。通常当数据帧被同时转发到同一个链路时,它被存储在队列中,并根据输出调度程序发送。因此,交换机排队会导致传输延迟,而传输延迟又进一步依赖于拓扑结构。这种不确定性的时间行为使得传统的FC网络不适合具有严格时序要求的安全关键应用。为了保障强实
时性,近年来时间触发机制开始引入航空电子网络,在FC协议中加入时间触发的机制,结合时间触发机制和FC协议两者的优点来传输实时性和非实时性业务,在航电或车载等领域成
为一种必然的趋势。
[0003] 国内现有的关于时间触发网络的研究大多数通过把流量划分成不同的类,应用于具有不同时间要求的通信。常见的方法是将流量划分为时间触发(Time-triggered)流量
类、速率受限(Rate-constrained)流量类和尽传输(Best-Effort)流量类。在实时性方
面,现有大多数关于时间触发网络的消息调度表生成算法仅针对网络流量进行调度,但实
际上分布式应用系统的实时性同时取决于端系统上的计算任务和链路上的通信任务,分布
式系统的实时调度问题不能简化为单独的通信调度问题。此外,现有针对时间触发网络的
大多数解决方案仅考虑时间触发流量调度,对速率受限流量调度的支持不够;仅考虑单播
应用,对多播应用的支持不够,因此无法满足更复杂的应用需求。目前对于时间触发网络的研究刚刚起步,对于相关标准的指定,FC网络交换机软件的设计等工作还需要进一步的投

发明内容

[0004] 为了克服上述现有技术中存在的不足,解决TTFC网络系统中的任务调度问题,本发明提供一种TTFC网络的任务调度模型及消息调度表生成方法;对TTFC网络以及网络上的
TT任务和RC任务进行形式化描述,并确定TTFC网络中终端和交换机在网络中发送TT数据帧
的确切时间点,使得终端网卡和交换机可以按照这些时间点进行TT消息的转发,确保TT任
务和RC任务同时满足调度要求;此外,本发明还支持对多播应用的描述和调度。
[0005] 为实现上述目的,本发明采用以下技术方案:
[0006] 一种TTFC网络的任务调度模型,综合考虑运行在端系统上的计算任务和通过网络进行数据交换的通信任务,支持TT任务和RC任务的描述及约束条件的表达,同时支持单播
和多播应用,模型包括如下模:
[0007] 模块S11:描述TTFC网络结构的网络拓扑模型;
[0008] 模块S12:描述TTFC网络中的TT任务、RC任务及其数据帧的任务模型、链路树模型和数据帧模型;
[0009] 模块S13:描述TTFC网络中任务调度要求的一组任务调度模型约束条件。
[0010] 进一步地,所述模块S11对交换式网络结构建立网络模型:G=(V,E),顶点集V(vertex):表示网络中所有的设备节点,包括终端节点和交换机节点;边集E(edges):表示网络中交换机和终端以及交换机与交换机相连的所有全双工通信链路;链路[vm,vn]表示
为:{[vm,vn].bw,[vm,vn].d,[vm,vn].b},其中,[vm,vn].bw表示链路带宽;[vm,vn].d表示链路延迟,[vm,vn].b表示链路的缓存能力,即节点vn最多可以缓存来自节点vm的帧的数量。
[0011] 进一步地,所述模块S12采用任务、链路树及数据帧等概念对TTFC网络中的TT任务、RC任务、多播任务以及网络中消息的传输进行形式化描述;
[0012] 所述模块S12包括以下模型:S121:任务模型;S122:链路树模型、S123:数据帧模型;
[0013] S121、任务模型包括:TT任务和RC任务,
[0014] 所述TT任务:
[0015] Ti={{Ti,1,Ti,2…Ti,n},Ti.Tr,Ti.p,Ti.D,Ti.rt,Ti.Fi}
[0016] 其中,{Ti,1,Ti,2...Ti,n}表示Ti的子任务序列,子任务个数为n;Ti.Tr表示任务Ti所涉及的所有物理链路构成一棵链路树;Ti.p表示任务Ti的周期;Ti.D表示任务Ti的截止期;Ti.rt表示任务Ti的响应时间,即任务Ti的最后一个子任务完成时间与周期开始时间之间的时长;Ti.Fi表示任务Ti产生的数据帧集合。
[0017] 进一步地,其中任务Ti中的单个子任务Ti,j可表示为如下元组:
[0018]
[0019] 其中, 表示任务Ti,j的偏移量;任意Ti,j.link=[vm,vn]∈E,当m≠n时,Ti,j.link=[vm,vn]表示通信子任务Ti,j的传输链路,当m=n时,Ti,j.link=[vm,vm]表示计算子任务Ti,j在节点vm上执行。任务Ti中,消息发送者端系统上的计算任务称为消息的生产者子任务,同理,消息接受者端系统上的计算任务称为消息的消费者子任务。在多播任务的情况,将一个任务Ti中所有的消费者子任务集合记为Tci。
[0020] Ti,j.c表示任务Ti,j的执行时间,当Ti,j.link=[vm,vm]时,Ti,j.c为WCET(Worst-case Execution Time),即最坏情况执行时间,运行于端系统va上的一个计算任务的执行时间记作:wcet(va);当Ti,j.link=[vm,vn]时: 其中
Fi,s.L为当前任务数据帧长度,[vm,vn].bw表示链路[vm,vn]上的网络带宽,[vm,vn].d表示链路延迟。Ti,j.p:表示任务Ti,j的周期,满足关系:Ti,j.p=Ti.p。
[0021] 所述RC任务:
[0022] 区别于强实时任务,系统中所有的RC(rate-constrained,速率受限)任务集合记为R,其中Ri∈R,是第i个任务。同TT消息相比,Ri可描述为:
[0023] Ri={{Ri,1,Ri,2...Ri,n},Ri.Tr,Ri.bw,Ri.BAG,Ri.Fi}
[0024] 其中,{Ri,1,Ri,2...Ri,n}表示RC任务Ri的子任务;Ri.Tr表示任务Ri所涉及的所有物理链路构成一棵链路树;Ri.bw表示任务Ri的带宽;Ri.BAG表示任务Ri的最小帧间隙,即任务Ri发送两个连续帧的起始二进制位之间的最小间隔;Ri.Fi:表示任务Ri产生的数据帧集合。
[0025] 进一步,任务Ri中的单个任务Ri,j可表示为如下元组:
[0026]
[0027] 其中, 表示任务Ri,j的偏移量;任意Ri,j.link=[vm,vn]∈E,当m≠n时,Ri,j.link=[vm,vn]表示通信子任务Ri,j的传输链路,当m=n时,Ri,j.link=[vm,vm]表示计算子任务Ti,j在节点vm上执行;Ri,j.c表示任务Ri,j的执行时间,当Ri,j.link=[vm,vn]时,Ri,j.c为WCET(Worst-case Execution Time),即最坏情况执行时间,其执行时间长度同TT任务;当Ri,j.link=[vm,vn]时: [vm,vn].d,其中Fi,s.L为当前RC任务数据帧长度,[vm,vn].bw表示链路[vm,vn]上的网络带宽,[vm,vn].d表示链路延迟。
[0028] S122、链路树模型;对一个应用程序任务来说,其产生的数据帧会在网络链路上进行传播。一个任务中所有通信子任务的link构成一棵链路树。任务Ti对应的链路树记为Ttri,树中的顶点集合记为Ttri.V,边的集合记为Ttri.E。同理,任务Ri对应的链路树记为Rtri。任务系统中所有的链路树构成的集合记为LT。
[0029] S123、数据帧模型;定义任务Γi∈Γ产生的有序帧集合记为Fi,fi,s表示任务Γi产生的第s个帧。fi,s在链路[vm,vn]上的传输记为 可用如下元组表示:
[0030]
[0031] 其中, 表示任务Γi产生的第s个帧在链路[vm,vn]上的传输偏移量,即数据帧在链路上的发送时间; 表示任务Γi产生的第s个帧在链路[vm,vn]上的传
输周期; 表示任务Γi产生的第s个帧在链路[vm,vn]上传输时的数据帧长度。
[0032] 网络中所有任务的帧集合记为F,Fi在链路[vm,vn]上的传输记为 其中传输的最后一个帧记为
[0033] 进一步地,所述模块S13根据任务相关约束及网络自身约束定义一组模型约束条件。所述模块S13包括:
[0034] S131、数据帧约束;
[0035] 对于在网络链路上调度的任何TT数据帧,偏移量不能取负值或任何会导致帧结束时间超过数据帧周期的值。
[0036]
[0037] 上式定义表示:TTFC系统中,对于在任意一段链路[va,vb]上传输的数据帧fi,s,调度任务需确保该数据帧的偏移量为正值,并且其偏移量 与帧对应的执行时间之和要比该数据帧周期小。
[0038] S132、端系统计算任务约束;
[0039] 对于网络拓扑中的任意端系统,需要确保在每个处理器上,只有当处理器空闲时,才能够触发一个计算任务。即在端系统中不可存在计算任务冲突的情况。
[0040]
[0041] 上式定义表示:TTFC系统中,在任意一个端系统上执行的任意两个任务τi,j和τx,y,满足:任务τi,j偏移量比任务τx,y的偏移量与执行时间之和大,或者任务τx,y的偏移量比任务τi,j的偏移量与执行时间之和大,即端系统上的计算任务需满足时域内不重叠。
[0042] S133、链路约束;
[0043] 在同一链路上传输的任何两个不同任务的TT数据帧不会发生冲突,即:对于某一条链路,两个TT数据帧在时域内没有重叠。
[0044]
[0045]
[0046] Ti,j.link=[va,vb],Tk,h.link=[va,vb],
[0047]
[0048]
[0049] 上式定义表示:TTFC系统中,在同一段链路[va,vb]上传输的任意两个任务所包含的任意两个数据帧 在任务周期内,等待数据帧 传输完成后,帧 才
能够在该链路上传输或者等待数据帧 传输完成后,帧 才能够在该链路上传输,即
这两个数据帧在同一链路上的传输满足在时域内不重叠。
[0050] S134、链路树约束;
[0051] 一条链路上的传输窗口的开始与前一条链路上的传输窗口的结束之间的差距必须大于前一条链路的一跳延迟加上整个网络的精度
[0052]
[0053] 其中Ti,j是 对应的任务。δ是网络精度。
[0054] 上式定义表示:数据帧fi,1在两个连续链路[va,vx],[vx,vb]上传输,帧fi,1在链路[vx,vb]上的偏移量数值必须比在中间端点vx上的最一个任务的偏移量加上其执行时间,加上前一条链路一跳延迟以及整个网络的精度之后的时间值大,即满足连续链路传输条件。
[0055] S135、端到端延迟约束;
[0056] 每一个TT消费者任务的结束和第一个生产者任务的开始之间的差距必须小于或等于允许的最大端到端延迟
[0057]
[0058] 其中,dest(Ttri)表示链路树Ttri上的叶子结点集合(消息的消费者节点集合),src(Ttri)表示Ttri的根节点(消息的生产者节点),max_lantency表示生产者任务所在的节点和消费者任务所在的节点之间允许的最大端到端延迟。
[0059] 上式定义表示:任意一个TT任务Ti,任务的最后一个接受者 完成端系统上的计算任务的时间与该任务产生的第一个数据帧偏移量之间的差值不能比该TT任务
所要求的的最大端到端延迟大,即满足TT任务的延迟限制。
[0060] S136、任务依赖关系约束:
[0061] 两个任务之间的开始时间和结束时间可根据实际需要,满足一定的关系,Ti,1.link=[va,va]对应Ti消息的生产者子任务,Ti,n.link=[vb,vb]对应Ti消息的消费者子任务(多播情况下,取决于最后完成计算任务的消费者子任务);同理,Tm,1.link=[vc,vc]对应Tm消息的生产者子任务,Tm,k.link=[vd,vd]对应Tm消息的消费者子任务。则:
[0062] 依赖关系共有如下三种:
[0063] (1)如图1所示,Tm,1在Ti,n结束之后开始,且Tm,1开始时间与Ti,n结束时间之间满足关系:
[0064]
[0065] 上式定义表示:任务Tm的生产者子任务在终端vc上发出的第一个数据帧的偏移量与任务Ti的最后一个消费者子任务在终端vb上的执行完成时间的差值属于区间
[p,q],0<=p
[0066] (2)如图2所示,Tm,1在Ti,1开始之后开始,且Tm,1与Ti,1开始时间满足关系:
[0067]
[0068] 上式定义表示:任务Tm的生产者子任务在终端vc上发出的第一个数据帧的偏移量与任务Ti的生产者子任务在终端vc上发出的第一个数据帧的偏移量 的差
值属于区间[p,q],0<=p
[0069] (3)如图3所示,Tm,k和Ti,n的结束时间必须同时属于某个时间区间,即Tm,k的结束时间与Ti,n的结束时间差满足:Δt∈[p,q],p,q∈R:
[0070]
[0071] 上式定义表示:任务Tm的最后一个消费者子任务在终端vd上的执行完成时间与任务Ti的最后一个消费者子任务在终端vb上的执行完成时间的差值属于区间[p,q],0<=p
[0072] S137、内存约束;
[0073] 节点中输入端口缓存的帧个数不能超过端口的最大缓存能力。
[0074]
[0075]
[0076]
[0077] 其中,函数G定义如下:
[0078]
[0079] 式中:
[0080] 表示 经过vx后在[vx,vb]上传输的帧;函数G表示如果任务Tm在[va,vx]上传输的帧在 到达vx时仍在缓存队列中,则返回1,否则返回0。而上第三行则统
计了 到达vx时所有尚在缓存队列中的帧的数量,并确保该数值不超过限制。
[0081] 上式定义表示:当数据帧fi,j经过链路[vx,vb]到达节点vx时,该节点将利用G函数对此时缓存队列中任务Tm的数据帧进行合计,对于此时仍与节点中的数据帧返回1,否则返回0,对G函数求和汇总,得出节点数据帧fi,j到达节点vx时缓存队列中的数据帧个数,其数值必须小于其链路的缓存能力[va,vx].b。
[0082] S138、多播约束;
[0083] 多播树上的交换机节点将一个帧发送到多个不同的输出端口时,各输出端口的帧的偏移量相同。
[0084]
[0085] 其中 表示一个链路树上的某个交换机节点, 表示节点 的孩子节点的个数。假设某个帧经过该交换机共发往n个不同的输出端口,其中第k个端口输出的帧
记为
[0086] 上式定义表示:TTFC系统中的多播任务有n个消息接受者,需要向n条链路中发送数据帧,且必须保证各个数据帧的的偏移量相
同。
[0087] S139、RC帧约束:
[0088] 同一个消费者任务的前后两个RC帧的接收时间差满足:Δt∈(1×BAG,1.5×BAG]。
[0089] 且
[0090]
[0091] 其中,Rtri是Ri对应的链路树,dest(Rtri)是Rtri的叶子结点集合。
[0092] 上式定义表示:TTFC系统中的同一个RC任务的任意两个相邻RC帧之间的传输间隔满足在1个BAG到1.5个BAG之间,如前文所述,BAG是由RC任务周期和链路带宽计算得出的RC帧间隙。
[0093] 一种TTFC网络的消息调度表生成方法,基于提出的任务调度模型,提出TT任务和RC任务的分阶段调度框架,该框架用于生成满足任务调度约束条件的TT任务消息调度表,
包括以下步骤:
[0094] S21、对任务进行可调度性检验,检验TTFC网络系统中的所有TT任务和RC任务是否满足基本的可调度性约束;
[0095] S22、在检验结果为任务可调度的基础上,调用消息调度表生成方法,求得TT任务的静态调度表S;
[0096] S23、在结果S的基础上,进一步检验链路的剩余带宽能否完成RC任务调度,若检验通过,返回结果S。
[0097] 进一步地,所述步骤S21由系统模型定义一组任务的基本可调度性约束条件,检验系统中任务集是否可调度。
[0098] 所述步骤S21包括:
[0099] S211、消息总带宽约束检验:链路的带宽约束是决定任务是否可调度的前提条件。TTFC网络中的链路集合中的任意一段链路上的TT任务和RC任务传输所需总带宽不能超过
链路本身的带宽;
[0100] 给定网络拓扑G=(V,E)、TT任务集合T以及RC任务集合R,在确定消息的传输路径后,对于链路集合E={L1,L2...Lk...Ln},任务在任意链路Lk上的消息传输总带宽用Bk表示,Bk∈B={B1,B2...Bk...Bn}。若任意Bk满足下式,则该链路带宽能够保证所有链路消息集的发送和调度。
[0101] 令
[0102]
[0103]
[0104] 其中,I和J分别表示表示TT任务总数和RC任务总数,X和Y分别表示经过链路Lk的任务Ti的消息总数和任务Rj的消息总数。
[0105] S212、TT消息总执行时间约束检验;
[0106] 对于 在确定其数据帧Fi的传输路径后,Ti所有子任务的执行时间必须小于Ti的截止时间
[0107]
[0108] S213、终端CPU利用率检验;对于 须满足下式所述约束,以确保每个终端系统的CPU利用率低于100%。
[0109]
[0110] S214、BAG约束检验;对于系统中的任意RC任务Ri,由任务Ri的预设带宽和发送周期,计算Ri.BAG,判断其值是否在可调度范围内,即RC任务调度需满足以下公式:
[0111]
[0112] 进一步地,所述步骤S22采用具体的消息调度表生成算法求解系统中TT任务调度问题,通用算法可依据情况选择SMT理论模型、MIP混合整数规划模型等。
[0113] 进一步地,所述步骤S23,所述步骤S23验证RC任务是否可调度,基于TT任务调度结果S,进一步检验各链路的剩余可用带宽是否能够调度所有的RC任务;
[0114] 所述步骤S23包括:
[0115] S231、RC任务可调度性约束检验:TTFC系统在进行RC任务调度之前,各链路在排好所有的TT任务之后,需要检验各链路空余可用带宽能否满足所有RC任务的排布。
[0116] 用下面公式所示的分段函数h([va,vb],i),对任意链路[va,vb]上相邻的TT帧间空余带宽进行可用性判断,判断规则如下:相邻TT帧间空余带宽至少足够传输两个最长RC帧(其一作为最后一个RC帧之后的TT帧的保护时间),即称之为空余可用带宽;用I([va,vb])对任意链路[va,vb]上所有相邻TT帧间空余可用带宽能够传输的RC帧个数进行汇总,其总和必须大于该链路上需要传输的RC帧总数。
[0117] 上排好的TT帧依次按偏移量递增排序记为m为[va,vb]上排好的TT帧的个数。设[va,vb]上需要传输的RC帧的
数量为n([va,vb])。则TT帧的偏移量需满足如下公式:
[0118]
[0119] 其中:
[0120]
[0121] Ti,p.link=[va,vb],Ti,p.c表示表示帧ffi在链路[va,vb]上的执行时间,RC_max表示任 务 集合 R 中的 最 长数 据 帧 在链 路 [v a ,v b] 上 的 传输 时间 ,即 :max(Fri)表示RC任务中最大的数据帧的帧长。
[0122] 本发明的有益效果是:
[0123] 1.本发明提出的一种TTFC网络的任务调度模型综合考虑端系统上的计算任务和通信链路上的通信任务,计算任务和通信任务协同调度能有效提升应用系统的实时性;且
该任务调度模型考虑到多播应用,模型描述方法具有一定的通用性,适用于复杂网络拓扑
结构和广泛的上层应用需求。
[0124] 2.本发明提出的一种TTFC网络的消息调度表生成方法,适用于以TTFC网络为通信网络的分布式系统任务调度。该方法通过建立网络模型、任务模型、链路树模型以及数据帧模型对工程问题进行形式化描述,将任务的多种约束及网络本身的约束转化为一组模型约
束条件,并设计TTFC网络的任务调度总体执行框架,使得TTFC网络上的任务调度问题更加
流程化。
[0125] (3)本发明提出的一种TTFC网络的消息调度表生成方法,在执行任务调度之前先进行任务可调度性检验,在确保TT任务和RC任务满足一系列可调度性约束条件之后,采用
具体的调度表生成算法对TT任务进行调度,得到TT任务的静态消息调度表后再检验剩余带
宽是否满足RC任务的调度。先进行可调度性检验能够避免不必要的计算,节约计算资源;先生成TT任务的消息调度表再检验RC任务的可调度性,一方面准确反映了TT任务和RC任务在
应用层面的重要程度差异,另一方面也降低了生成消息调度表的计算量和难度,避免了因
条件过于苛刻而找不到可行解,为后期寻找最优解奠定基础。
附图说明
[0126] 图1为任务依赖关系约束中示意图。
[0127] 图2为任务依赖关系约束中示意图;
[0128] 图3为任务依赖关系约束中的示意图;
[0129] 图4为算法总体执行框架流程图
[0130] 图5为本发明提出的分布式系统网络拓扑结构图;
[0131] 图6为本发明提出的任务和链路示意图。

具体实施方式

[0132] 下面结合附图对本发明技术方案进行详细说明。本实施例的一种TTFC网络的任务调度模型及消息调度表生成方法主要分为任务调度模型描述和消息调度表生成方法两个
部分。
[0133] 其中,任务调度模型部分主要描述TTFC网络的拓扑结构和任务模型,并定义一组模型约束条件,形成完整的TTFC网络任务调度模型。
[0134] 所述模型构建包括如:
[0135] 模块S11:描述TTFC网络结构的网络拓扑模型;所述模块S11对交换式网络结构建立网络模型:G=(V,E),顶点集V(vertex):表示网络中所有的设备节点,包括终端节点和交换机节点;边集E(edges):表示网络中交换机和终端以及交换机与交换机相连的所有全双
工通信链路;链路[vm,vn]表示为:{[vm,vn].bw,[vm,vn].d,[vm,vn].b},其中,[vm,vn].bw表示链路带宽;[vm,vn].d表示链路延迟,[vm,vn].b表示链路的缓存能力,即节点vn最多可以缓存来自节点vm的帧的数量。
[0136] 模块S12:描述TTFC网络中的TT任务、RC任务及其数据帧的任务模型、链路树模型和数据帧模型;所述模块S12采用任务、链路树及数据帧等概念对TTFC网络中的TT任务、RC任务、多播任务以及网络中消息的传输进行形式化描述,所述模块S12包括以下模型:S121:
任务模型;S122:链路树模型、S123:数据帧模型;
[0137] S121、任务模型:TT任务和RC任务,
[0138] 所述TT任务:
[0139] Ti={{Ti,1,Ti,2...Ti,n},Ti.Tr,Ti.p,Ti.D,Ti.rt,Ti.Fi}
[0140] 其中,{Ti,1,Ti,2...Ti,n}表示Ti的子任务序列,子任务个数为n;Ti.Tr表示任务Ti所涉及的所有物理链路构成一棵链路树;Ti.p表示任务Ti的周期;Ti.D表示任务Ti的截止期;Ti.rt表示任务Ti的响应时间,即任务Ti的最后一个子任务完成时间与周期开始时间之间的时长;Ti.Fi表示任务Ti产生的数据帧集合。
[0141] 进一步地,任务Ti中的单个子任务Ti,j可表示为如下元组:
[0142]
[0143] 其中, 表示任务Ti,j的偏移量;任意Ti,j.link=[vm,vn]∈E,当m≠n时,Ti,j.link=[vm,vn]表示通信子任务Ti,j的传输链路,当m=n时,Ti,j.link=[vm,vm]表示计算子任务Ti,j在节点vm上执行。任务Ti中,消息发送者端系统上的计算任务称为消息的生产者子任务,同理,消息接受者端系统上的计算任务称为消息的消费者子任务。在多播任务的情况,将一个任务Ti中所有的消费者子任务集合记为Tci。
[0144] Ti,j.c表示任务Ti,j的执行时间,当Ti,j.link=[vm,vm]时,Ti,j.c为WCET(Worst-case Execution Time),即最坏情况执行时间,运行于端系统va上的一个计算任务的执行时间记作:wcet(va);当Ti,j.link=[vm,vn]时: 其中
Fi,s.L为当前任务数据帧长度,[vm,vn].bw表示链路[vm,vn]上的网络带宽,[vm,vn].d表示链路延迟。Ti,j.p:表示任务Ti,j的周期,满足关系:Ti,j.p=Ti.p。
[0145] 所述RC任务区别于强实时任务,系统中所有的RC(rate-constrained,速率受限)任务集合记为R,其中Ri∈R,是第i个任务。同TT消息相比,Ri可描述为:
[0146] Ri={{Ri,1,Ri,2...Ri,n},Ri.Tr,Ri.bw,Ri.BAG,Ri.Fi}
[0147] 其中,{Ri,1,Ri,2...Ri,n}表示RC任务Ri的子任务;Ri.Tr表示任务Ri所涉及的所有物理链路构成一棵链路树;Ri.bw表示任务Ri的带宽;Ri.BAG表示任务Ri的最小帧间隙,即任务Ri发送两个连续帧的起始二进制位之间的最小间隔;Ri.Fi:表示任务Ri产生的数据帧集合。
[0148] 进一步,任务Ri中的单个任务Ri,j可表示为如下元组:
[0149]
[0150] 其中, 表示任务Ri,j的偏移量;任意Ri,j.link=[vm,vn]∈E,当m≠n时,Ri,j.link=[vm,vn]表示通信子任务Ri,j的传输链路,当m=n时,Ti,j.link=[vm,vm]表示计算子任务Ti,j在节点vm上执行;Ri,j.c表示任务Ri,j的执行时间,当Ri,j.link=[vm,vm]时,Ri,j.c为WCET(Worst-case Execution Time),即最坏情况执行时间,其执行时间长度同TT任务;当Ri,j.link=[vm,vn]时: 其中Fi,s.L为当前RC任务数据帧长度,[vm,vn].bw表示链路[vm,vn]上的网络带宽,[vm,vn].d表示链路延迟。
[0151] S122、链路树模型;对一个应用程序任务来说,其产生的数据帧会在网络链路上进行传播。一个任务中所有通信子任务的link构成一棵链路树。任务Ti对应的链路树记为Ttri,树中的顶点集合记为Ttri.V,边的集合记为Ttri.E。同理,任务Ri对应的链路树记为Rtri。任务系统中所有的链路树构成的集合记为LT。
[0152] S123、数据帧模型;定义任务Γi∈Γ产生的有序帧集合记为Fi,fi,s表示任务Γi产生的第s个帧。fi,s在链路[vm,vn]上的传输记为 可用如下元组表示:
[0153]
[0154] 其中, 表示任务Γi产生的第s个帧在链路[vm,vn]上的传输偏移量,即数据帧在链路上的发送时间; 表示任务Γi产生的第s个帧在链路[vm,vn]上的传
输周期; 表示任务Γi产生的第s个帧在链路[vm,vn]上传输时的数据帧长度。
[0155] 网络中所有任务的帧集合记为F,Fi在链路[vm,vn]上的传输记为 其中传输的最后一个帧记为
[0156] 模块S13:描述TTFC网络中任务调度要求的一组任务调度模型约束条件。
[0157] 所述模块S13包括:
[0158] S131、数据帧约束;
[0159] 对于在网络链路上调度的任何TT数据帧,偏移量不能取负值或任何会导致帧结束时间超过数据帧周期的值。
[0160]
[0161] 上式定义表示:TTFC系统中,对于在任意一段链路[va,vb]上传输的数据帧fi,s,调度任务需确保该数据帧的偏移量为正值,并且其偏移量 与帧对应的执行时间之和要比该数据帧周期小。
[0162] S132、端系统计算任务约束;
[0163] 对于网络拓扑中的任意端系统,需要确保在每个处理器上,只有当处理器空闲时,才能够触发一个计算任务。即在端系统中不可存在计算任务冲突的情况。
[0164]
[0165] 上式定义表示:TTFC系统中,在任意一个端系统上执行的任意两个任务τi,j和τx,y,满足:任务τi,j偏移量比任务τx,y的偏移量与执行时间之和大,或者任务τx,y的偏移量比任务τi,j的偏移量与执行时间之和大,即端系统上的计算任务需满足时域内不重叠。
[0166] S133、链路约束;
[0167] 在同一链路上传输的任何两个不同任务的TT数据帧不会发生冲突,即:对于某一条链路,两个TT数据帧在时域内没有重叠。
[0168]
[0169]
[0170] Ti,j.link=[va,vb],Tk,h.link=[va,vb],
[0171]
[0172]
[0173] 上式定义表示:TTFC系统中,在同一段链路[va,vb]上传输的任意两个任务所包含的任意两个数据帧 在任务周期内,等待数据帧 传输完成后,帧 才
能够在该链路上传输或者等待数据帧 传输完成后,帧 才能够在该链路上传输,即
这两个数据帧在同一链路上的传输满足在时域内不重叠。
[0174] S134、链路树约束;
[0175] 一条链路上的传输窗口的开始与前一条链路上的传输窗口的结束之间的差距必须大于前一条链路的一跳延迟加上整个网络的精度。
[0176]
[0177] 其中Ti,j是 对应的任务。δ是网络精度。
[0178] 上式定义表示:数据帧fi,1在两个连续链路[va,vx],[vx,vb]上传输,帧fi,1在链路[vx,vb]上的偏移量数值必须比在中间端点vx上的最一个任务的偏移量加上其执行时间,加上前一条链路一跳延迟以及整个网络的精度之后的时间值大,即满足连续链路传输条件。
[0179] S135、端到端延迟约束;
[0180] 每一个TT消费者任务的结束和第一个生产者任务的开始之间的
[0181] 差距必须小于或等于允许的最大端到端延迟。
[0182]
[0183] 其中,dest(Ttri)表示链路树Ttri上的叶子结点集合(消息的消费者节点集合),src(Ttri)表示Ttri的根节点(消息的生产者节点),max_lantency表示生产者任务所在的节点和消费者任务所在的节点之间允许的最大端到端延迟。
[0184] 上式定义表示:任意一个TT任务Ti,任务的最后一个接受者 完成端系统上的计算任务的时间与该任务产生的第一个数据帧偏移量之间的差值不能比该TT任务所
要求的的最大端到端延迟大,即满足TT任务的延迟限制。
[0185] S136、任务依赖关系约束:
[0186] 两个任务之间的开始时间和结束时间可根据实际需要,满足一定的关系,Ti,1.link=[va,va]对应Ti消息的生产者子任务,Ti,n.link=[vb,vb]对应Ti消息的消费者子任务(多播情况下,取决于最后完成计算任务的消费者子任务);同理,Tm,1.link=[vc,vc]对应Tm消息的生产者子任务,Tm,k.link=[vd,vd]对应Tm消息的消费者子任务。则:
[0187] 依赖关系共有如下三种:
[0188] (1)如图1所示,Tm,1在Ti,n结束之后开始,且Tm,1开始时间与Ti,n结束时间之间满足关系:
[0189]
[0190] 上式定义表示:任务Tm的生产者子任务在终端vc上发出的第一个数据帧的偏移量与任务Ti的最后一个消费者子任务在终端vb上的执行完成时间的差值属于区间
[p,q],0<=p
[0191] (2)如图2所示,Tm,1在Ti,1开始之后开始,且Tm,1与Ti,1开始时间满足关系:
[0192]
[0193] 上式定义表示:任务Tm的生产者子任务在终端vc上发出的第一个数据帧的偏移量与任务Ti的生产者子任务在终端vc上发出的第一个数据帧的偏移量 的差
值属于区间[p,q],0<=p
[0194] (3)如图3所示,Tm,k和Ti,n的结束时间必须同时属于某个时间区间,即Tm,k的结束时间与Ti,n的结束时间差满足:Δt∈[p,q],p,q∈R:
[0195]
[0196] 上式定义表示:任务Tm的最后一个消费者子任务在终端vd上的执行完成时间与任务Ti的最后一个消费者子任务在终端vb上的执行完成时间的差值属于区间[p,q],0<=p
[0197] S137、内存约束;
[0198] 节点中输入端口缓存的帧个数不能超过端口的最大缓存能力。
[0199]
[0200]
[0201]
[0202] 其中,函数G定义如下:
[0203]
[0204] 表示 经过vx后在[vx,vb]上传输的帧;函数G表示如果任务Tm在[va,vx]上传输的帧在 到达vx时仍在缓存队列中,则返回1,否则返回0。而上第三行则统
计了 到达vx时所有尚在缓存队列中的帧的数量,并确保该数值不超过限制。
[0205] 上式定义表示:当数据帧fi,j经过链路[vx,vb]到达节点vx时,该节点将利用G函数对此时缓存队列中任务Tm的数据帧进行合计,对于此时仍与节点中的数据帧返回1,否则返回0,对G函数求和汇总,得出节点数据帧fi,j到达节点vx时缓存队列中的数据帧个数,其数值必须小于其链路的缓存能力[va,vx].b。
[0206] S138、多播约束;
[0207] 多播树上的交换机节点将一个帧发送到多个不同的输出端口时,
[0208] 各输出端口的帧的偏移量相同。
[0209]
[0210] 其中 表示一个链路树上的某个交换机节点, 表示节点 的孩子节点的个数。假设某个帧经过该交换机共发往n个不同的输出端口,其中第k个端口输出的帧
记为
[0211] 上式定义表示:TTFC系统中的多播任务有n个消息接受者,需要向n条链路中发送数据帧,且必须保证各个数据帧的的偏移量相
同。
[0212] S139、RC帧约束:
[0213] 同一个消费者任务的前后两个RC帧的接收时间差满足:Δt∈(1×BAG,1.5×BAG]。
[0214] 且
[0215]
[0216] 其中,Rtri是Ri对应的链路树,dest(Rtri)是Rtri的叶子结点集合。
[0217] 上式定义表示:TTFC系统中的同一个RC任务的任意两个相邻RC帧之间的传输间隔满足在1个BAG到1.5个BAG之间,如前文所述,BAG是由RC任务周期和链路带宽计算得出的RC帧间隙。
[0218] 一种TTFC网络的消息调度表生成方法,基于提出的任务调度模型,提出TT任务和RC任务的分阶段调度框架,该框架用于生成满足任务调度约束条件的TT任务消息调度表,
包括以下步骤:
[0219] S21、对任务进行可调度性检验,检验TTFC网络系统中的所有TT任务和RC任务是否满足基本的可调度性约束;
[0220] 所述步骤S21包括:
[0221] S211、消息总带宽约束检验:链路的带宽约束是决定任务是否可调度的前提条件。
[0222] 给定网络拓扑G=(V,E)、TT任务集合T以及RC任务集合R,在确定消息的传输路径后,对于链路集合E={L1,L2...Lk...Ln},任务在任意链路Lk上的消息传输总带宽用Bk表示,Bk∈B={B1,B2...Bk...Bn}。若任意Bk满足下式,则该链路带宽能够保证所有链路消息集的发送和调度。
[0223] 令
[0224]
[0225]
[0226] 其中,I和J分别表示表示TT任务总数和RC任务总数,X和Y分别表示经过链路Lk的任务Ti的消息总数和任务Rj的消息总数。
[0227] S212、TT消息总执行时间约束检验;
[0228] 对于 在确定其数据帧Fi的传输路径后,Ti所有子任务的执行时间必须小于Ti的截止时间。
[0229]
[0230] S213、终端CPU利用率检验;
[0231] 对于 须满足下式所述约束,以确保每个终端系统的CPU利用率低于100%。
[0232]
[0233] S214、BAG约束检验;
[0234] 对于系统中的任意RC任务Ri,由任务Ri的预设带宽和发送周期,计算Ri.BAG,判断其值是否在可调度范围内,即RC任务调度需满足以下公式:
[0235]
[0236] S22、在检验结果为任务可调度的基础上,调用消息调度表生成方法,求得TT任务的静态调度表S;
[0237] 所述步骤S22采用具体的消息调度表生成算法求解系统中TT任务调度问题,通用算法可依据情况选择SMT理论模型、MIP混合整数规划模型。
[0238] 算法总体框架描述如下:
[0239] 表1:算法总体框架
[0240]
[0241] 其中,输入为网络拓扑、TT任务集和RC任务集。算法首先通过Check1依次进行消息总带宽约束检测、TT消息执行时间约束检测、BAG约束检测以及终端利用率约束检测,若全部通过,则调用对应的调度求解方法求得TT任务的调度表S。算法接着判断TT调度结果是否为空,若TT调度有解,则通过Check2函数进行RC任务的可调度性检测,若全部通过则返回S,否则返回值为空。算法最终的返回结果由TT任务调度和RC任务可调度性检测结果共同决定。
[0242] 消息调度算法总体执行流程如图4所示。表1中的scheduleAlgorithm(G,T)的具体实现可采用SMT理论模型进行求解,也可以采用MIP混合整数规划模型求解,以SMT模型为
例,算法的具体实现如下:
[0243] 表2:基于SMT的调度表求解算法
[0244]
[0245] 以上算法中,输入为网络拓扑和任务集合,输出为帧的偏移量集合(如果存在可行解)。算法通过Assert函数将定义的约束添加到解算器上下文C中,并调用SMT解算器计算可行解(SMTSolve函数)。解决方案S包含所有TT数据帧的偏移量。
[0246] S23、在结果S的基础上,进一步检验各链路的剩余带宽能否完成RC任务调度,若检验通过,返回结果S。
[0247] 所属步骤S23包括:
[0248] S231、RC任务可调度性约束检验:TTFC系统在进行RC任务调度之前,各链路在排好所有的TT任务之后,需要检验各链路空余可用带宽能否满足所有RC任务的排布。
[0249] 用下面公式所示的分段函数h([va,vb],i),对任意链路[va,vb]上相邻的TT帧间空余带宽进行可用性判断,判断规则如下:相邻TT帧间空余带宽至少足够传输两个最长RC帧(其一作为最后一个RC帧之后的TT帧的保护时间),即称之为空余可用带宽;用I([va,vb])对任意链路[va,vb]上所有相邻TT帧间空余可用带宽能够传输的RC帧个数进行汇总,其总和必须大于该链路上需要传输的RC帧总数。
[0250] 上排好的TT帧依次按偏移量递增排序记为m为[va,vb]上排好的TT帧的个数。设[va,vb]上需要传输的RC帧的
数量为n([va,vb])。则TT帧的偏移量需满足如下公式:
[0251]
[0252] 其中:
[0253]
[0254] Ti,p.link=[va,vb],Ti,p.c表示表示帧ffi在链路[va,vb]上的执行时间,RC_max表示任 务 集合 R 中的 最 长数 据 帧 在链 路 [v a ,v b] 上 的 传输 时间 ,即 :max(Fri)表示RC任务中最大的数据帧的帧长。
[0255] 表1中的Check2(E,S,R)是用来确保在TT任务调度之后,链路中的剩余可用带宽足够保证所有RC任务的调度,具体算法描述如下:
[0256] 表3:RC任务可调度性检测算法
[0257]
[0258] 函数实现RC任务可调度性约束检测。算法输入为TT调度返回值S、网络拓扑中边集E、RC任务集合R,算法输出为布尔变量b,其值表示RC任务是否可调度。其中subset([va,vb])函数统计了链路[va,vb]上排布的TT帧总数,I([va,vb])统计链路[va,vb]上TT帧间空余可用带宽能够传输的RC帧个数总和,n([va,vb])表示链路[va,vb]上需传输的RC帧总数。
[0259] 实施例1
[0260] 该实施例考虑一个分布式系统,该系统由5个通过交换式光网连接的终端系统组成,系统参数为bw=100Mbps,数据帧长设为64字节,网络延迟为5μs,由各参数计算得一条消息在链路上传输时间为517μs。网络拓扑如图5所示:
[0261] 就图5所示的分布式系统,建立网络模型:G=(V,E),顶点集V中,ESi(End System)和SWi(Switch)分别表示终端和交换机,用 表示一个终端节点, 表示一个交换机节点,不加区分时将某个节点记为vi。
[0262] 在该系统中,端系统上的计算任务和网络链路上的通信任务共构成5个应用程序,其中3个为TT任务,2个为RC任务,系统中5个应用程序任务被映射到ES1至ES5这5个端系统
处理器上,每一个应用程序任务都有相应的发送端和接收端,且其所有通信子任务的link
构成一颗链路树,任务与链路示意图如图6所示:
[0263] 如上图所示,以多播任务T1为例,T1包含子任务{T1,1,T1,2,T1,3,T1,4,T1,5,T1,6,T1,7},其所有通信子任务构成的链路树记为Ttr1,其中树的根节点为v1,叶子节点为v3和v4,节点v6和v7是树上节点,且v7是v6的孩子节点。
[0264] 系统中应用程序任务的详细信息如表4所示。
[0265] 表4:应用程序任务信息表
[0266]
[0267]
[0268] 在一个周期内,15个计算任务被映射到5个不同的处理器上,7个数据帧发送到网络上,其中1个数据帧是多播的。应用程序任务先由端系统发起,端系统执行完相应的生产者子任务后将任务以消息的形式发往接收端,消息最终被对端系统接收,并在其处理器上
执行相应的接受者子任务。
[0269] 每个子任务都有自己的周期,且其周期与所属的应用程序任务周期相同,每个计算子任务都有自己的执行时间,都会周期性地发送或者接收相应的数据帧。应用程序中计
算子任务的详细信息如表5所示。
[0270] 表5:计算子任务信息表
[0271]
[0272] 任务最终将以数据帧的形式在网络中传输,因此,需要对消息进行详细分析,每一个在网络中传输的帧都有其源宿地址,数据帧有特定的长度设定和周期信息,通信子任务的周期与所属的应用程序任务的周期相同。消息传输信息如表6所示。
[0273] 表6:消息传输信息表
[0274]
[0275]
[0276] 如上所述,对于给定的TTFC网络系统,进行了任务、链路树、数据帧模型构建,由于该系统没有特殊的任务依赖关系,因此仅定义前文所述数据帧约束、端系统计算任务约束、链路约束、链路树约束、端到端延迟约束、内存约束、多播约束、RC帧约束共八个模型约束条件。基于此模型,采用前文所述的消息调度表生成方法的总体执行框架,对TTFC网络中的任务进行消息调度。在给定参数下检验消息总带宽约束、TT消息总执行时间约束以及终端利用率均满足约束条件。即系统中任务可调度。采用具体的消息调度表生成算法,得出TT消息偏移量: 在TT消息调度
结果的基础上,进一步检测RC任务的BAG约束及RC任务可调度性检测约束,所述约束均可满足,由此得出该TTFC网络系统的消息调度结果。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈