[发明专利]基于Barrelfish的时间触发实时调度方法有效
申请号: | 202110663286.1 | 申请日: | 2021-06-15 |
公开(公告)号: | CN113407319B | 公开(公告)日: | 2022-06-17 |
发明(设计)人: | 童超;陈逊;杨婷婷 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/50 |
代理公司: | 北京卓特专利代理事务所(普通合伙) 11572 | 代理人: | 田冰;段旺 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 barrelfish 时间 触发 实时 调度 方法 | ||
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.和参数τ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为负,则表明本次时间片为空闲时隙,交由非实时任务调度逻辑处理,否则设置下一次时钟中断到时间片结束,然后检索对应需要调度的任务的进程控制块,返回给中断处理接口。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110663286.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种表盘绘制方法
- 下一篇:一种基于云计算的桥梁智能感知系统