基于Barrelfish的时间触发实时调度方法

文档序号:7321 发布日期:2021-09-17 浏览:20次 英文

基于Barrelfish的时间触发实时调度方法

技术领域

提出了一种基于Barrelfish的时间触发实时调度方法,将Barrelfish进行实时化改 造并与时间触发实时通信系统相结合,属于面向实时分布式系统的网络通信(H04W)领域。

背景技术

信息物理融合系统(Cyber Physical System,CPS)。与传统实时系统不同的是,CPS 系统对计算能力,计算实时性和通信实时性都具有比较高的要求,CPS系统广泛用于飞行 器、智能工业、汽车电子等安全关键领域。目前CPS系统的发展主要有两个趋势:一是,分布式节点数量和种类增多。如在智能工厂中,通过增加传感器的数量和种类,更好的获取当前工厂的运行状态,从而进行更智能的反馈控制。二是,单个节点内的处理器核心数目和种类的增多。如在自动驾驶领域,需要计算能力更强的处理器和专用的加速芯片来支撑AI任务的运行。目前CPS系统上运行的实时操作系统并不能完全满足CPS系统的发展趋势, 特别是第二个发展趋势。

在多核、异构硬件架构的支持方面,苏黎世理工大学提出的基于多内核(MultiKernel) 架构的新型操作系统Barrelfish,因为其在每一个处理器核心上都有一个操作系统内核, 内核之间并不共享数据,可以更好地支持未来众核、异构的硬件架构。但Barrelfish是一 个面向高性能通用领域的操作系统,并不具有实时性。

在分布式实时通信的支持方面,Kopetz等人针对分布式实时系统提出了时间触发架构 (Time-Triggered Architecture,TTA),时间触发架构包含了经过工业界验证的时间触发 实时通信子系统。现有的时间触发实时通信系统主要包括两类:一种是基于时间触发总线协 议TTP(Time-Triggered Protocol)的总线型网络,另外一种是时间触发以太网TTE[14] (Time-Triggered Ethernet),可以根据实际需求选用。

与传统的通用操作系统不同,实时操作系统更加关注的是应用执行在时间上的确定性和 整个系统在组件发生错误时的容错性能,而且在实时系统领域,越来越多的系统呈现出分布 式的趋势,诸如综合化航空电子系统IMA和信息物理融合系统CPS,实时系统的分布式趋势 对传统实时任务调度和实时通信提出了新的要求。然而现有的实时系统中,大多数实时操作 系统对于多核处理器的支持还不够完善,而对多核处理器支持完善的操作系统绝大多数面向 通用领域,实时性较差。Barrelfish操作系统作为面向异构多核架构的操作系统,对异构 多核处理器具有良好的支持,适合改造为实时操作系统。针对未来可能出现的多核节点分布 式实时系统,将Barrelfish进行实时化改造并与时间触发实时通信系统相结合是解决CPS 系统发展所面临问题的一种可行的解决方案。

发明内容

本权利的目的是针对多内核操作系统的实时化改造和时间触发实时通信,基于Barrelfish提出了一种新的时间触发实时调度方法,来实现一个基于时间触发的实时系统以解决CPS发展过程中所面对的实时性差等问题。

本权利提出了一种新的时间触发实时调度方法。它在已有任务模型的基础上,通过添加 通信亲和性参数来描述任务对消息发送和接收的偏向程度,从而在此基础上提出了一种新的 任务与通信分离式调度模型,基于此调度模型实现了对任务与通信依赖的拆分,使得任务与 通信可以并行的进行离线调度,在调度解空间损失尽可能小的情况下,使得任务与消息可以 独立的求解,以降低大规模系统调度问题求解的计算时间,以提升系统的实时性。

本发明包括下列步骤:

1.一种基于Barrelfish时间触发实时调度方法,其特征在于,所述方法运行于采用TTP/C 时间触发式通信协议的分布式实时系统;所述分布式实时系统包括多个节点;所述分布 式实时系统的节点包括端节点计算机和时间触发以太网交换节点,实时任务在端节点计 算机上执行,并通过时间触发以太网传递和接收消息;

其中实时任务用四参数模型来表示,其中τi代表第i个实时 任务,φ表示该实时任务在每个周期内被释放的时刻相对于周期开始时刻的偏移,C表 示该实时任务在最坏的情况下需要运行的时间,D表示该实时任务相对于任务释放时刻的截止期限,T表示该实时任务两次被释放的时间间隔;

其中时间触发以太网是一个二层的交换网络,网络拓扑可以表示成一个有向图 其中是节点的集合,包括端节点和交换节点,表示网络中边的集合,通常时间触发以太网采用双向的全双工的物理链路,数学表示如下:

其中[va,vb]表示节点va和节点vb之间的一条有向逻辑链路,一条物理链路(Link)[va,vb] 的数学表示如下:

<[va,vb].s,[va,vb].d,[va,vb].mt>

其中参数s表示传输速率;参数d表示链路延迟,参数延迟主要由传播和处理延迟构成;参 数mt表示时间触发以太网的宏拍粒度;

一对通信节点的通信路径为虚链路,端节点va通过交换节点与端节点vb建立通信连接,那 么端节点va与端节点vb之间的虚链路vl[va,vb]表示如下:

vl[va,vb]=[[va,v1],[v1,v2],[v1,v2],…,[vn-1,vn],[vn,vb]]

消息在虚链路上传输,在传输过程中消息的实例和进行通信调度的基本单位为帧,虚链路 vl上传输的消息mi在第j条物理链路[va,vb]上的帧实例记为虚链路vl上所有的帧 集合记为整个系统内所有的帧集合记为F,一个帧的表示如下:其中参数T为发送周期,φ为发送偏移,L为发送占用时 长;

所述方法包括以下步骤:

步骤1、在实时任务中添加通信亲和性参数δ:

引入通信亲和性参数δ在所述分布式实时系统中描述实时任务对消息发送和接收的偏向程度,

依赖于时间触发以太网通信的实时任务包括Producer类型,Shaper类型和Consumer类型的任务,Free类型为与消息无关的任务,则通信依赖的任务模型描 述为:其中:①通信依赖任务τi不支持并行以 及多关键性任务;②任务的通信亲和力参数δ是一个[0,1]之间的数,描述任务对 消息发送和接收的偏向程度;③仅同周期之间的任务存在优先序约束;④不同周期 的任务之间是独立的;⑤Shaper类型任务任务一个周期内只能发送或者接受一 个消息或者接收并发送一个消息;Free类型的任务不发送或者接受任何消息;⑥ 任务不能被跨核迁移;被分配完成后的任务只能在指定核上运行;

步骤2、拆分任务模型与通信模型的依赖进行分离调度:

对于由描述的Producer类型,Shaper类型和Consumer类型的任务,对于Producer类型或Shaper类型的发送消息的任务与 Shaper类型或者Consumer类型的接收消息的任务若任务之间存在通 信关系,则设置发送消息任务执行完毕后,其发送的消息mi才可以被发送到网络 中,并且消息mi到接收节点之前,接收消息的任务不可执行;

步骤3、统一三种通信依赖任务的约束表示:

在所有节点任务可以调度的情况下通过调整参数和参数τi.D使得通信调度的解空间尽量变大以满足Free类型任务,Producer类型任务,Shaper类型任务和 Consumer类型任务的需求,具体如下;

Free类型若Free任务集Γfree中任务τi与任务τj具有优先序依赖,仅设置约束 τi.D<τj.D.且

①Producer类型,设Producer类型任务τi对应的Consumer类型任务为则使得消息的调度余量尽量大的形式化目标为:其中di,c表 示任务τi以及任务之间的预期网络传输延迟;

②Consumer类型,设Consumer类型任务τi的生产者任务为则消息的调度余量尽量大的形式化目标为:其中dp,i表示任务τi以 及任务之间的预期延迟;

③Shaper类型,Shaper类型任务有两个优化目标:将所述两个优化目标转化为一个可解的优化目 标:针对当目标取 得最优值时该目标可能会导致结果出现极左偏以及极右偏的现象,引入通信亲和性 参数δ∈[0,1]来表达左偏或者右偏的程度,此时优化目标为需要最小化的目标值:任 务的和D参数需要满足的约束为τi.D≥τi.C;τi.D≥0;ΓConsumer+Producer+Shaper是可调度的(schedulable);

步骤4.归一化调度模型优化目标

对于每个Producer类型任务构造一个虚拟的Producer类型任务且该虚拟的Producer类型任务的偏移为截止期限为0,网络延迟为0;对于每个 Consumer类型任务,构造一个虚拟的Consumer类型任务且该虚拟的Consumer 类型任务的偏移为截止期限为0,网络延迟为0:

对于Shaper类型任务,假设该Shaper类型任务由Producer类型任务转换而来, 可得转换得到该Shaper类型任的Producer类型任务的虚拟Producer类型任务 的参数令δ=0时,有:

从而有: 该目标与单独的Producer类型任务优化目标等价;

对于Shaper类型任务,假设该Shaper类型任务由Consumer类型任务转换而来, 可得转换得到该Shaper类型任的Consumer类型任务的虚拟Consumer类型任务的 参数令δ=1时,Shape类型任务优化目标等价于 Consumer类型任务的优化目标,

从而将Producer任务和Consumer任务统一归为Shaper任务;

步骤5.约束求解:

经过目标归一化后,Producer类型任务和Consumer类型任务的优化目标等价于Shaper类型任务的优化目标: 再考虑可调度性约束:ΓConsumer+Producer+Shaper是可 调度的(schedulable),并采用用于约束任务集ГConsumer+Producer+Shaper的可调度性,为凸约束,则整个约束优化目标为凸优化,使用逐步信赖 域规划方法进行约束求解;

步骤6、任务调度:

经过约束求解后,得到单独的任务调度模型和通信调度模型在原有任务集的基础上产生 一个新的任务集;新的任务集在各个节点上独立地利用EDF调度算法进行模拟调度生成任 务调度表,由拆分约束保证其可调度性;根据新的任务集的参数和调度依赖拆分方法可以生 成任务相关的消息调度约束,结合消息原有约束,生成消息调度表;在中断处理接口函数调 用任务调度接口后,任务调度器首先检索任务调度表的下一个表项,如果已经是最后一个表 项,则滚动到下一个周期,读取需要调度的任务ID和任务结束时刻,如果任务ID为负,则 表明本次时间片为空闲时隙,交由非实时任务调度逻辑处理,否则设置下一次时钟中断到时 间片结束,然后检索对应需要调度的任务的进程控制块,返回给中断处理接口。经过以上步 骤关于分布式实时系统调度问题的建模和求解后,得到的基于Barrelfish的时间触发实时 调度方案为,在损失尽可能小的解空间的情况下,将任务与通信的调度依赖拆分,使得任务调 度与时间触发通信调度可以单独进行,来降低大规模系统调度问题求解的计算时间,从而提 升系统的实时性能。

本权利在已有的模型基础上,引入任务通信亲和性参数来描述任务对消息发送和接收的 偏向程度。并在损失尽可能小的解空间的情况下,将任务与通信的调度依赖拆分,并保证切 分后的可调度性尽可能大,使得任务调度与时间触发通信调度可以单独进行,以降低大规模 系统调度问题求解的计算时间,以满足系统对实时性的要求。虽然对任务的可调度性约束引 入的非线性高次约束,但从数学上可以证明其属于凸约束问题,从而可以采用现有且成熟的 凸优化领域的理论以及工具较为快速地求解模型。实验表明了本发明提出的时间触发实时调 度新方法的有效性,其在调度时间性能上具有比与联合式调度更优的性能,而且在调度的解 空间上,分离式调度方案与联合式调度方相比,大幅度地降低了调度模型的求解时间复杂度, 大大提升了系统的实时性能。

附图说明

图1为时间触发调度的流程图;

图2为时间触发调度框架整体设计图

图3为Shaper任务左偏示意图;

图4为分离式与联合式调度的时间性能对比;

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作 进一步地详细描述。

参见图1、图2,将本发明用于中大规模系统模型调度时,其具体处理步骤如下:

步骤1、引入了通信亲和性参数:

在传统实时调度领域,主要用四个参数来表示一个实时任务,第一个参数是周期内的偏 移量φ,表示该任务在每个周期内被释放的时刻相对于周期开始时刻的偏移;第二个参数最 坏执行时间C,该参数表示该实时任务在最坏的情况下需要在指定平台上运行的时间;第三 个参数是相对截止期限D,该参数表示任务相对于任务释放时刻的截止期限;第四个参数是 周期T,该参数表示任务两次被释放的时间间隔。任务一般用数学符号τ来表示,任务τi的数 学表示如下:

在此传统的任务模型的基础上,本发明引入了通信亲和性参数δ用于刻画任务对消息发 送和接收的偏向程度,本发明中将通信依赖任务模型(包括Producer类型,Shaper类型 和Consumer类型的任务)描述如下:

步骤2、任务与通信调度的分离:

本发明将通信模型和任务模型拆解分别调度的调度方案,虽然这样并不能覆盖整个解空 间,但是能比较好地降低模型求解的复杂度,具体任务与通信调度的分离通过由 描述的Producer类型,Shaper类型和Consumer类型的任务,考虑一个 发送消息的任务如Producer类型或Shaper类型与一个接收消息的任务如Shaper类 型或者Consumer类型之间存在通信关系,则要求发送消息任务执行完毕后,消息mi才可以 被发送到网络中,并且消息到接收节点之前,接收消息任务不可执行。

(1)切分任务和通信之间的依赖。考虑一个发送消息的任务(在上述任务模型中可以是Producer类型和Shaper类型的任务)与一个接收消息的任务τc(在上述任务模 型中可以是Shaper类型和Consumer类型的任务)之间存在通信关系,则要求发送消息 任务执行完毕后,消息mi才可以被发送到网络中,并且消息到接收节点之前,接收消息任 务不可执行。本发明采取了确定任务开始和结束时刻的方式来拆分消息与任务依赖。考虑发 送任务的结束时刻,根据实时任务的定义,实时任务应该在其截止期限之前被完成,由此可 以得出发送任务的结束时刻不晚于考虑接受任务的开始时刻,实时任务具 体释放时刻,任务被释放后才可以执行,换而言之,接收任务最早在任务的释放时刻开始执行。由此,拆分后的通信调度约束如下(2.1)公式所示:

(2)保证切分后的可调度性尽可能大。通过分析公式(2.1)可知,消息的调度空间受到 任务的参数和参数τi.D的限制。在上述任务模型中,对于原始任务集Γ而言,任意任务 τi.∈Γ,除参数τi.C和参数τi.T是任务的固有属性之外,其余参数和参数τi.D均可调 整。在保证原有的相对截止期限被满足下,参数τi.D只能调小,且需要满足任务的相对截止 期应大于任务的最坏执行时间;由于任务不可能被提前释放,所以参数只能调大,但需 要满足任务的偏移加上任务相对截止期小于任务的周期。在保证任务可调度性和任务集原有 特性(任务不会违反原有截止期限也不会要求任务被提前释放)的同时,通过优化调整任务 的参数和参数τi.D可以增大消息的调度空间,更好的保证拆分后消息的可调度性。

步骤3、分离式任务与通信调度模型的求解:

为了求解模型,需要对任务的可调度性约束引入非线性高次约束,但这些非线性高次约 束可以被证明属于凸约束,从而可以利用现有且成熟的工具较为快速地求解模型,步骤如下:

(1)模型假设。为了使得模型可以求解,需要对模型中的一些参数作限制性假设。假 设如下:①通信依赖任务τ由五个模型描述,即不支持并行以及多关键性任务假设;②任务的通信亲和力参数δ是一个[0,1]之间的数,描述任务对消息发送和接收的偏向程度;③仅同周期之间的任务存在优先序约束;④不同周期的任务之间 是独立的;⑤一个任务一个周期内只能发送或者接受一个消息或者接收并发送一个消息(对 于Shaper类型任务)。Free类型的任务不发送或者接受任何消息;⑥任务不支持跨核迁 移。即任务分配完成后的任务只能在指定个核心上运行。

(2)模型约束。在所有节点任务可以调度的情况下通过调整参数和参数τi.D使得 通信调度的解空间尽量变大以满足Free类型任务,Producer类型任务,Shaper类型任务和Consumer类型任务的需求。

①Free类型,该类型任务不需要关注消息的依赖,因此只需要关注任务间的优先序依 赖关系,若Free任务集Γfree中任务τi与任务τj具有优先序依赖,仅需设置约束τi.D<τj.D. 且即可;

②Producer类型,应保证其与对应的Consumer任务的消息调度余量尽可能大,以使 得在任务可以调度的情况下通信尽可能可调度,设生产者任务τi对应的消费者任务为则 使得消息的调度余量尽量大的形式化目标为:其中di,c表示任 务τi以及任务之间的预期网络传输延迟;

③Consumer类型,对于Consumer类型的任务,应使得其与对应生产者任务的消息调 度预留时间尽量大,设τi的生产者任务为则消息的调度余量尽量大的形式化目标为:其中dp,i表示任务τi以及任务之间的预期延迟;

④Shaper类型,Shaper任务可以看做是Producer任务与Consumer任务的结合,对于Shaper任务需要下述两个优化目标: 跟据多目标优化的相关理论,将两个优化目标加和以将问题转化为一个可解的优化目标:即然而,当 目标取得最优值时该目标可能会导致结果出现极左偏以及极右偏的现象,参照图3。为了避 免这现象,引入通信亲和性参数δ∈[0,1]来表达左偏或者右偏的程度,则两个目标需尽量满 足以下目标:转化为相减形式有以下需要最小化目标值: 任务的和D参数需要满足的约束为τi.D≥τi.C;τi.D≥0;ΓConsumer+Producer+Shaperis schedulable。

(3)目标归一化。对于每个Producer任务存在一个虚拟的Producer任务且该 任务的偏移为截止期限为0,网络延迟为0;对于每个Consumer任务,假设其存在 一个虚拟的Consumer任务且该任务的偏移为截止期限为0,网络延迟为0。 则可将Producer任务和Consumer任务统一归为Shaper任务类型。

对于Shaper任务,假设该Shaper任务由Producer任务转换而来,可得虚拟Producer任务的参数令δ=0时,有:

从而有: 即第二个目标恒取 得,该目标与单独的Producer任务优化目标等价。

对于Shaper任务,假设该Shaper任务由Consumer任务转换而来,可得虚拟Producer任务的参数令δ=1时,有:

从而有: 即第二个目标恒取得,结果等价于Consumer 任务的优化目标。

根据Producer任务和Consumer任务目标关系呈现镜像性,仅需要考虑Producer或者Consumer任务的约束,将Producer任务以及Consumer任务看作一个任务对,并添加 一个虚拟Consumer任务,使得其成为一个形式上和Shaper任务相同的目标以及约束相 同的任务链即,令Γnew_shaper=Γshaperconsumer,并对于所有的Shaper任务链中,,可 采用修正因子法去除比例约束中含有绝对值项,设为负修正因子,为正修正因子,其 均为大于或等于0的数。添加下述线性约束: 修正因子用于修正目标取值 的偏差,即修正因子表示约束可能偏负值,修正因子表示约束可能偏正值。对于函数 f(x)+d--d-=0,可虑目标类型:由于假设上述目标取得最优,可知f(x) f(x)-d+=0→f(x)≤0。同理,对于目标目标将上式的min目标转换为max目标,以使得两个 目标方向一致,即将两个目标加权求和,可得目标: 其中k为大于0的比例约束的权重指标, k值越大,则比例约束越容易得到满足,k值在求解前由系统设计人员指定,求解结果不满 足时可调整k值重新求解计算。

对于每个Producer-Shaper-Consumer任务链,则需要创建一个上述的max目标,这些目标一般难以同时取得最优。一种可用的优化目标是使得上述目标中最小的最大,即max期望延迟di,c和dp,i可以通过具体的网络设施计算得到,通常使用网络演算或者随机网络演算计算出一个 最大容许值。令 将max(min)表达式转换,即对于 i∈Гnew_shaper)。

最终,上述max min表达式等价于max,则可将三种不同任务的目标功能统一成以下 形式:max z s.t: i∈Гnew_shaper);ifτij;τi.D≥τi.C; ΓConsumer+Producer+Shaperis schedulable。 (3.1)

(4)约束求解。经过目标归一化后,Producer任务和Consumer任务的优化目标等价于Shaper任务的优化目标: 考虑可调度性约束:ΓConsumer+Producer+Shaperis schedulable。对于 单核同步隐截止期或限截止期实时调度,EDF算法被证明是最优的。对于同步隐截止期任务 集,当任务集的密度时,则任务集是单核EDF可调的。但是当任务集为非同步 任务时,则该判定条件是充分非必要的。同步任务集表示存在一个时刻点,使得所有的任务 都在该点同时释放任务;非同步任务表示不存在这样的一个时刻点,使得任务集同时释放任 务。对于非同步任务,其可调度性判定的充分必要条件可以由实时演算给出。但是实时演算 中给出的可调度性判定是严格非凸的,因此不容易求解。为了简单起见,本发明采用 充分条件用于约束任务集的可调度性。该约束为凸约束可由以下定理证明:

定理1设n维向量X=(X1,X2,…,Xn),其中Xi∈[a,b]且为实数,a≥0,b≥ 0,a<b。设SX={X},则SX为凸集。

定理2设其中Ci为任一大于0的实数,则f(X)为定义在空间SX上的严格凸函数。

定理3步骤3中的目标规划公式(3.1)为凸优化。

从而整个约束优化目标为凸优化,可使用已成熟的逐步信赖域规划方法进行约束求 解。

经过以上步骤关于分布式实时系统调度问题的建模和求解后,得到的基于Barrelfish 的时间触发实时调度方案为,在损失尽可能小的解空间的情况下,将任务与通信的调度依赖 拆分,使得任务调度与时间触发通信调度可以单独进行,来降低大规模系统调度问题求解的 计算时间,从而提升系统的实时性能。

然后再通过设计和实现一个原型验证系统来验证和测试时间触发任务和通信调度的正 确性和实时性,对分离式离线调度器和联合式调度器的进行性能测试。本发明采用了模拟的 方式,在单个硬件平台上,以每个CPU核心为一个计算节点,计算节点之间通过共享内存 的方式进行消息传递。并基于Barrelfish操作系统Multi-Kernel的设计理念,每个CPU 核心上都会有一个操作系统内核,每个内核具有独立的任务调度队列,这样本文可以将每个 CPU核心视为一个计算节点。在时间触发通信方面,本发明在Barrelfish中设计和实现一 个模拟的通信框架,将通信任务之间的通信缓冲区在内存中区分开,基于系统时钟,该框架 可以提供时间触发的转发服务。然后本发明在ZCU104平台实现了该原型验证系统,原型验 证系统提供了对多节点、分布式实时系统的模拟,可以支持对Barrelfish操作系统进行任 务调度、消息通信、中断延迟、系统调用开销,任务切换开销等实时性相关的特性的测试和 评估。

综上,本权利提出了一种新的基于Barrelfish时间触发实时调度方法,通过在已有任 务模型的基础上,添加了通信亲和性参数来描述任务对消息发送和接收的偏向程度,从而在 此基础上能够顺利将任务与通信进行分离式调度。实验表明,这种改进的分离式调度方法在 调度时间性能上具有比与联合式调度方法更优的性能,尤其在中大规模系统模型调度中更加 明显,能大幅度降低系统调度的计算时间,提升系统的实时性能,参照图4。而且在调度的 解空间上,分离式调度方案与联合式调度方相比,分离式调度方案比联合式调度方案牺牲的 调度解空间并不是太多,但大幅度地降低了调度模型的求解时间复杂度。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种基于5G小基站的MAC层调度方法及终端

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!