《一种ARINC653标准下的航电系统分区窗口调度方法.pdf》由会员分享,可在线阅读,更多相关《一种ARINC653标准下的航电系统分区窗口调度方法.pdf(14页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103544065 A (43)申请公布日 2014.01.29 CN 103544065 A (21)申请号 201310542756.4 (22)申请日 2013.11.05 G06F 9/50(2006.01) (71)申请人 中国航空工业集团公司西安飞机设 计研究所 地址 710089 陕西省西安市 72 号信箱 (72)发明人 刘冬 蔡瑞宗 王东 王亮 (74)专利代理机构 中国航空专利中心 11008 代理人 李建英 (54) 发明名称 一种 ARINC653 标准下的航电系统分区窗口 调度方法 (57) 摘要 本发明属于嵌入式时空分区技术, 涉及一种 A。
2、RINC653 标准下的航电系统分区窗口调度方法。 通过计算基准时间片 Tp, 以基准时间片为单位积 木式拼接分区的执行窗口时间、 主时间框架调度 时间、 系统空闲时间。分区周期、 主时间框架均为 基准时间片的整数倍, 将分区因周期的不同要求 而产生的调度排序问题得到简化。通过该方法每 个分区的周期释放点均能落在本分区的时间窗口 上。设计了两种分区调度中的周期控制模式以适 用于不同类型的嵌入式系统 : 功能分区控制模式 和 IO 分区进行控制模式。 (51)Int.Cl. 权利要求书 2 页 说明书 7 页 附图 4 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2。
3、页 说明书7页 附图4页 (10)申请公布号 CN 103544065 A CN 103544065 A 1/2 页 2 1. 一种 ARINC653 标准下的航电系统分区窗口调度方法, 其特征是, 窗口调度的假设条 件 : (1) 完成分区任务划分后进行, 适用于分区划分个数在 2 至 20 个之内 ; (2) 分区划分具有唯一独立 IO 分区, 分区中只有 IO 分区具有对设备外的总线通讯权 限, 其他分区为功能分区, 仅具有离散量通讯权限 ; (3) 分区划分运算量均衡, 针对于特定性能 CPU, 最大分区不大于最小分区任务运算量 10 倍 ; (4) 嵌入式系统分区周期定义为毫秒级别,。
4、 分区任务周期定义为 5ms 的整数倍 ; (5) 分区调度周期大于设备 CPU 处理周期 10 倍以上 ; (6) 分区间通讯采用端口通讯方式, 支持采样端口或者队列端口 ; 采用单位时间片 Tp 方法, 将主时间框架 Ts、 各分区运行窗口 Tw、 系统空闲时间窗口 Idle 以单位时间片 Tp 的整数倍进行排列, 最终得到调度顺序 ; 调度工作流程如下 : 步骤 1 : 针对机载计算机 CPU 计算能力, 按照各分区分配功能, 估算系统分区 1、 分区 2、 分区 n 运行开销时间为 t1、 t2、 t3tn ; 步 骤 2 :设 航 电 系 统 对 分 区 运 行 余 量 要 求 为 。
5、q%,分 区 时 间 窗 口 (i=1, 2,n) 计算各分区的窗口时间为 Tw1、 Tw2Twn ; 步骤 3 : 各分区取整后的窗口时间为 Tw1、 Tw2Twn, 设分区的任务周期包含 P1、 P2、 P3Pm 共 m 种不同周期, 其中 Pii,j=1,2,m), 由上述假设条件 (4) P1、 P2、 P3 Pm 为 5ms 的整倍数, 取 P1、 P2、 P3Pm、 Tw1、 Tw2Twn 的最大公约数为基准时间片 Tp ; 步骤4 : IO分区负责各分区的数据对外通讯, IO分区周期为所有周期的最小值min (Pi) (i=1, 2,m) 。定义主时间框架为 Ts, 所有分区时间。
6、窗口在 Ts 上进行排列, 分区运行从 Ts 起始运行, 逐步运行完所有分区以及系统空闲后到达 Ts 末端, 到达 Ts 末端后, 系统再次从 Ts 起始循环运行 ; 步骤 5 : 定义所有任务周期 P1、 P2、 P3Pm 的公约数和公倍数集合 Vt, 定义任一周期 Pi, 满足 (1) 对于任意小于 Pi 的周期 Pj(j=1,2,i) , Pi 是 Pj(j=1,2,i 公倍数,(2) 对于任意大于 Pi 的周期 Pk(k=i,i+1,m) , Pi 是 Pk(k=i,i+1,m) 公约数 ; 定义所有 Pi 的集合为 Vp, 取集合 V Vt Vp ; 步 骤 6 : 设 航 电 系 。
7、统 运 行 时 间 余 量 为 p%,分 区 i 的 最 小 周 期 为 Pmi,取 为调度表中应用运行总时间 ; 计算为系统调度表最小 安全门限 ; 步骤 7 : 计算航电系统主时间框架为 Ts, Ts 为满足如下要求的最小值 :(1)Ts V; (2) Ts 应不小于最小安全门限 ; 步骤 8 : 将主时间框架以 Tp 为基准时间片进行分割, 各个分区以计算后的窗口时间 Tw1、 Tw2Twn 依次排列于主时间框架之上, 主时间框架剩余部分设定为航电系统空闲时 间 ; 步骤 9 : 根据分区 1、 分区 2, 分区 3分区 n 的相互依存关系, 以及通讯密集程度将分 权 利 要 求 书 C。
8、N 103544065 A 2 2/2 页 3 区 1 到分区 n 进行排序 ; 排序原则为 :(1) 具有生产顺序的相关分区, 根据生产的前后顺序 排列 ;(2) 对具有系统启动需求的分区设计在调度表最前 ;(3) 数据交互较多的分区相近排 列 ; (4) 在 IO 分区窗口之间根据均衡分布剩余分区窗口 ;(5) 对于具有任务周期 Pmi 小于 主时间框架Ts的分区i (i=1, 2,n) , 在调度表中出现TwPmi次, 每次相距时间为Pmi, 伴随每次分区 i 出现之间, 至少安排一次 IO 分区出现 ;(6) IO 分区出现次数为 Twmin (Pi) (i=1, 2,n) , 间隔周。
9、期为所有周期的最小值 min(Pi) (i=1, 2,n) ;(7) 将分区排 序后主时间框架上剩余未分配的时间窗口设定为系统空闲窗口 ; 步骤 10 : 选择分区调度表周期控制方式, 周期控制方式为如下之一 : (1) 功能分区控制 功能分区控制周期定义为 : 由功能分区进行周期控制, 即功能分区将输出数据根据不 同的周期 Pi 建立不同的周期任务 i, 由这些周期任务将数据按照周期 Pi 交给 IO 分区, IO 分区负责接收到数据立即发送设备外部 ; (2) IO 分区周期控制 IO 分区进行周期控制定义为 : IO 分区负责控制周期, 在 IO 分区中实现 P1、 P2、 P3Pm 等。
10、周期任务, 各功能分区根据自身的周期需求 P1、 P2Pi 建立与 IO 分区的通讯端口 1、 端 口 2端口 i。各功能分区在本分区窗口运行结束时刻, 将本分区所有周期 Pi 的发送数据 发送给 IO 分区的相对应周期端口 i 上, IO 分区以周期 Pi 去获取各分区传递在分区间端口 i 上的周期消息, 组织数据传输。 步骤 11 : 若选择 IO 分区进行周期控制方式, 将 IO 分区的多个周期控制分散到调度表 的多个 IO 分区中, 将周期 P1、 P2Pn 进行分组, 将不同 Pi 组的周期发送任务分散到不同 的 IO 分区窗口释放, 平衡总线负载 ; 若经步骤 9 计算主时间框架上。
11、 IO 分区仅出现 1 次, 则 本条步骤不适用。 权 利 要 求 书 CN 103544065 A 3 1/7 页 4 一种 ARINC653 标准下的航电系统分区窗口调度方法 技术领域 0001 本发明属于嵌入式时空分区技术, 涉及一种 ARINC653 标准下的航电系统分区窗 口调度方法。 背景技术 0002 针对新型飞机航空电子系统可移植、 可重用、 高可靠的需要, 美国航电委员会于 1997 年针对新一代飞机数据综合化提出的应用程序接口标准Arinc653。Arinc653 规 范中定义了应用程序和操作系统隔离, 提出时间隔离、 空间分区的概念。我国在 2005 年提 出的 GJB5。
12、357-2005 标准中对这一概念也作出了相关定义。 0003 ARINC653 操作系统通过内存管理, 给每个单独的应用分区划分一块独享的内存空 间, 通过软件配置可以调节虚拟内存大小、 动态内存总大小。 分区的运行空间不会被其他分 区所干扰。采用时间调度表的方式调度多分区运行。设定一个总的调度表主时间轴大小, 用户可以将时间轴划分多个任意子时间窗口分配给应用分区运行。 分区在自己的时间窗口 内独享 CPU 的所有资源, 当分区的时间窗口终止时, 操作系统将强行将资源切换给调度表 中的下一分区。 0004 时分设计的 CPU 资源划分, 使得计算机应用软件的某一子系统故障将不会蔓延到 其它系。
13、统。CPU 资源在时间空间上不会进入某一故障的死锁状态。这种时分设计给系统安 全带来了提升。 0005 对于多任务多功能的复杂系统, 系统需求、 安全等级、 周期以及优先级各不相同, 如何给出一个合理可靠的分区划分、 分区排序、 窗口分配、 调度顺序, 是系统设计能否成功 的关键。对于工程应用而言, 目前还没有一套关于多分区操作系统时间片调度设计的完整 方法。 发明内容 0006 本发明的目的是提出一种对于多任务多功能的复杂系统、 系统需求、 安全等级、 周 期以及优先级各不相同的情况下, 如何给出一个合理可靠的分区划分、 分区排序、 窗口分 配、 调度顺序的在 ARINC653 标准下的航电。
14、系统分区窗口调度方法。 0007 本发明的技术解决方案 0008 窗口调度的假设条件 : 0009 (1) 完成分区任务划分后进行, 适用于分区划分个数在 2 20 个之内 ; 0010 (2) 分区划分具有唯一独立IO分区, 分区中只有IO分区具有对设备外的总线通讯 权限, 其他分区为功能分区, 仅具有离散量通讯权限 ; 0011 (3) 分区划分运算量均衡, 针对于特定性能 CPU, 最大分区任务运算量不大于最小 分区任务运算量 10 倍 ; 0012 (4) 嵌入式系统分区周期定义为毫秒级别, 分区任务周期定义为 5ms 的整数倍 ; 0013 (5) 分区调度周期大于设备 CPU 处理。
15、周期 10 倍以上 ; 说 明 书 CN 103544065 A 4 2/7 页 5 0014 (6) 分区间通讯采用端口通讯方式, 支持采样端口或者队列端口 ; 0015 采用单位时间片 Tp 方法, 将主时间框架、 各分区运行窗口、 系统空闲时间窗口以 单位时间片 Tp 的整数倍进行排列, 最终得到调度顺序。调度工作流程如下 : 0016 步骤 1 : 针对机载计算机 CPU 计算能力, 按照各分区分配功能, 估算系统分区 1、 分 区 2、 分区 n 运行开销时间为 t1、 t2、 t3tn ; 0017 步 骤 2。 设 航 电 系 统 对 分 区 运 行 余 量 要 求 为 q%,分。
16、 区 时 间 窗 口 (i=1, 2,n) 计算各分区的窗口时间为 Tw1、 Tw2Twn ; 0018 步骤 3 : 各分区取整后的窗口时间为 Tw1、 Tw2Twn, 设分区的任务周期包含 P1、 P2、 P3Pm 共 m 种不同周期, 其中 Pii,j=1,2,m), 由上述假设条件 (4) P1、 P2、 P3Pm 为 5ms 的整倍数, 取 P1、 P2、 P3Pm、 Tw1、 Tw2Twn 的最大公约数为基准时间片 Tp ; 0019 步骤4 : IO分区负责各分区的数据对外通讯, IO分区周期为所有周期的最小值min (Pi) (i=1, 2,m) 。定义主时间框架为 Ts, 所。
17、有分区时间窗口在 Ts 上进行排列, 分区运行 从 Ts 起始运行, 逐步运行完所有分区以及系统空闲后到达 Ts 末端, 到达 Ts 末端后, 系统再 次从 Ts 起始循环运行 ; 0020 步骤 5 : 定义所有任务周期 P1、 P2、 P3Pm 的公约数和公倍数集合 Vt, 定义任一周 期 Pi, 满足 (1) 对于任意小于 Pi 的周期 Pj(j=1,2,i) , Pi 是 Pj(j=1,2,i 公倍数, (2) 对于任意大于 Pi 的周期 Pk(k=i,i+1,m) , Pi 是 Pk(k=i,i+1,m) 公约数 ; 定义所 有 Pi 的集合为 Vp, 取集合 V Vt Vp ; 0。
18、021 步 骤 6 : 设 航 电 系 统 运 行 时 间 余 量 为 p%, 分 区 i 的 最 小 周 期 为 Pmi, 取 为调度表中应用运行总时间 ; 计算为系统调度表最小 安全门限 ; 0022 步骤7 : 计算航电系统主时间框架为Ts, Ts为满足如下要求的最小值:(1)TsV; (2) Ts 应不小于最小安全门限 ; 0023 步骤 8 : 将主时间框架以 Tp 为基准时间片进行分割, 各个分区以计算后的窗口时 间 Tw1、 Tw2Twn 依次排列于主时间框架之上, 主时间框架剩余部分设定为航电系统空闲 时间 ; 0024 步骤9 : 根据分区1、 分区2, 分区3分区n的相互依。
19、存关系, 以及通讯密集程度将 分区 1 到分区 n 进行排序 ; 排序原则为 :(1) 具有生产顺序的相关分区, 根据生产的前后顺 序排列 ;(2) 对具有系统启动需求的分区设计在调度表最前 ;(3) 数据交互较多的分区相近 排列 ; 0025 (4) 在 IO 分区窗口之间根据均衡分布剩余分区窗口 ;(5) 对于具有任务周期 Pmi 小于主时间框架 Ts 的分区 i(i=1, 2,n) , 在调度表中出现 TwPmi 次, 每次相距时 间为 Pmi, 伴随每次分区 i 出现之间, 至少安排一次 IO 分区出现 ;(6) IO 分区出现次数为 Twmin(Pi) (i=1, 2,n) , 间隔。
20、周期为所有周期的最小值 min(Pi) (i=1, 2,n) ;(7) 将分区排序后主时间框架上剩余未分配的时间窗口设定为系统空闲窗口 ; 0026 步骤 10 : 选择分区调度表周期控制方式, 周期控制方式为如下之一 : 说 明 书 CN 103544065 A 5 3/7 页 6 0027 (1) 功能分区控制 0028 功能分区控制周期定义为 : 由功能分区进行周期控制, 即功能分区将输出数据根 据不同的周期Pi建立不同的周期任务i, 由这些周期任务将数据按照周期Pi交给IO分区, IO 分区负责接收到数据立即发送设备外部 ; 0029 (2) IO 分区周期控制 0030 IO 分区进。
21、行周期控制定义为 : IO 分区负责控制周期, 在 IO 分区中实现 P1、 P2、 P3Pm 等周期任务, 各功能分区根据自身的周期需求 P1、 P2Pi 建立与 IO 分区的通讯端 口 1、 端口 2端口 i。各功能分区在本分区窗口运行结束时刻, 将本分区所有周期 Pi 的发 送数据发送给 IO 分区的相对应周期端口 i 上, IO 分区以周期 Pi 去获取各分区传递在分区 间端口 i 上的周期消息, 组织数据传输 ; 0031 步骤 11 : 若选择 IO 分区进行周期控制方式, 将 IO 分区的多个周期控制分散到调 度表的多个IO分区中, 将周期P1、 P2Pn进行分组, 将不同Pi组。
22、的周期发送任务分散到不 同的 IO 分区窗口释放, 平衡总线负载 ; 若经步骤 9 计算主时间框架上 IO 分区仅出现 1 次, 则本条步骤不适用。 0032 本发明的优点和积极效果 : 0033 通过计算基准时间片 Tp, 以基准时间片为单位积木式拼接分区的执行窗口时间、 主时间框架调度时间、 系统空闲时间。分区周期、 主时间框架均为基准时间片的整数倍, 将 分区因周期的不同要求而产生的调度排序问题得到简化。 通过该方法每个分区的周期释放 点均能落在本分区的时间窗口上。 设计了两种分区调度中的周期控制模式以适用于不同类 型的嵌入式系统 : 功能分区控制模式和 IO 分区进行控制模式。 003。
23、4 对于多任务、 多周期、 多分区的高可靠性 ARINC653 嵌入式系统, 系统需求、 安全等 级、 周期以及优先级各不相同, 一种 ARINC653 标准下的分区窗口调度方法给出一个合理可 靠的分区排序、 窗口分配、 调度顺序和周期控制的方法 ; 通过该方法设计出的分区运行调度 表具有满足周期需求、 可靠性高、 负载均衡、 系统损耗小、 易操作等特点。 附图说明 0035 图 1 是本发明基准时间片的设计方法示意图 ; 0036 图 2 是本发明由 IO 分区进行周期控制示意图 ; 0037 图 3 是本发明由功能分区进行周期控制示意图 ; 0038 图 4 是本发明排列分区与系统余量 I。
24、DLE 示意图 ; 0039 图 5 是本发明 IO 以最小时间周期 (1/2Ts) 在主时间框架 (Ts) 中出校多次示意 图 ; 0040 图 6 是本发明分区顺序排列示意图 ; 0041 图 7 是本发明 IO 分区控制周期模式下总线负载示意图 ; 0042 图 8 是本发明经过多 IO 分区任务均衡后的总线负载示意图 ; 0043 图 9 是本发明实施例计算 Ts 后的分区排列示意图 ; 0044 图 10 是本发明实施例最终的分区调度方案示意图。 具体实施方式 说 明 书 CN 103544065 A 6 4/7 页 7 0045 下面对本发明作进一步详细说明。 0046 1. 本发。
25、明针对于软件架构为基于 ARINC653 操作系统的多分区平台软件结构、 各 个分区以事先安排好的时间片调度下, 相对独立的实现各自的功能。 0047 2. 此外各系统分区间有信号需求, 如系统逻辑输入、 系统条件、 转发信号等。分区 与分区之间开辟信息传输通道。软件分区之间的通讯机制主要为 port 端口通讯, 这类通讯 模式包括采样方式和队列方式两种, 在软件分区建立时设置。 0048 3. 针对一般嵌入式系统设计提出的分区时间窗口设计, 工程中一般约定 : 0049 a) 根据系统划分了若干应用分区, 分区个数应在 2 个到 20 个分区之间, 以适用绝 大部分嵌入式系统设计 ; 005。
26、0 b) 分区划分具有独立的 IO 分区, IO 分区定义为该系统与外部进行主要通讯的唯 一接口分区 , 而其他分区为功能处理分区, 接收由 IO 分区派发的数据, 经处理再提交给 IO 分区进行设备外部发送 ; 0051 c) 分区运算量均衡, 即最大分区不宜大于最小分区运算量 10 倍, 均值适中, 方差 较小 ; 0052 d) 工程应用中, 嵌入式系统周期大多定义为毫秒级周期, 定义功能分区的周期需 求均为 5ms 周期的整倍数 ; 0053 e) 根据系统设计原则, 相对于设备 CPU 处理能力下, 周期任务周期应至少大于周 期任务 CPU 执行时间 10 倍以上。 0054 4. 。
27、基准时间片设计 0055 如图 1, 根据系统需求进行多分区任务划分, 由工程约定知分区任务量划分一般相 对均衡, 最大分区与最先分区任务量不超过 10 倍, 因此划分好的 N 各分区的 CPU 执行时间 也应相对均衡, 在同一量级上, 为了灵活的安排分区窗口设计, 采用积木化单位时间片的方 法进行设计, 即通过单位基准时间片来堆积主时间框架和分区时间窗口, 这样方便对分区 周期任务、 调度任务释放点的把握。即取分区 1、 分区 2、 分区 N 的估算 CPU 运行时间 t1、 t2tn, 加上系统 CPU 运行余量后的向上取整。一般工程嵌入式周期要求大多为 5 的整倍 数, 如周期需求为 5。
28、0ms、 100ms、 200ms、 500ms、 1s, 10s 等周期。因此向上取整一般为向 5ms 的整倍数取整。如分区 1 所需 (某型 CPU) 任务计算量估算时间为 2.1ms, 系统余量为 30%, 则取整后的周期为 2.1*130%=5ms。 0056 各分区取整后的运行时间为 T1、 T2Tn, 取 T1、 T2Tn 运行时间以及各分区周期 需求P1、 P2、 P3Pm的最大公约数为Tp, 定义为基准时间片。 该时间片是分区窗口设计的基 准时间片, 各分区窗口、 系统空闲时间窗口、 调度表主时间窗口应均为该 Tp 的整数倍, 如图 1所示。 主时间框架、 分区1时间窗口、 分。
29、区2时间窗口均为基准时间片的若干整数倍 ; 分区 1到分区1再一次执行时间间隔为分区1内的周期任务周期, 此周期同样为基准时间片的整 数倍 ; IO 分区和系统空闲时间作为必须的时间窗口同样可以以基准时间片的整数倍表达 ; 对与具有周期小于主时间框架的分区 1, 可以安排分区 1 在主时间框架中出现多次, 来满足 小周期需求。 0057 5. 周期控制 0058 各功能分区 (非IO分区) 的输出数据需要遵循系统周期需求, 因此对于一定周期的 输出数据, 需要满足时序要求进行数据输出, 如分区1的周期任务主要有P1、 P2、 P3三种, 其 说 明 书 CN 103544065 A 7 5/7。
30、 页 8 中 P1、 P2、 P3 应是 Tp 基准时间片的整数倍。由于分区划分原则, 所有分区数据输出均通过 为 IO 分区进行, 因此为了满足分区 1 的周期需求, 分区 1 和 IO 分区必须满足 P1、 P2、 P3 所 对应周期。要求在分区 1 窗口执行完毕后, 在调度表中经过 P1、 P2、 P3 周期后, 调度顺序依 然处于分区 1 的时间窗口中 ; 分区 1 和 IO 分区必须相伴出现, 以保证 IO 分区即时将分区 1 运算完毕的数据按照周期进行输出 ; 对于周期控制主要有两种方式 : 一种为功能分区控制 周期, 另一种为统一由 IO 分区进行周期控制。 0059 6.IO 。
31、分区周期控制方式 0060 该方式由 IO 分区进行周期控制, IO 分区负责控制周期, 在 IO 分区中实现 P1、 P2、 P3Pn 等周期任务, 根据周期去获取各分区传递在分区间端口 port 上的周期消息, 并组织 数据传输。如分区 1 有 P1、 P2、 P3 三种周期发送类型, 则分区 1 将 P1、 P2、 P3 三个发送数据 包以分区1最快周期发送给IO分区 ; 发送时, 不同周期采用不同的采样端口, 同时在端口中 设置相应的周期标志 ; IO 分区在接收到分区 1 端口数据时, 选择相应的周期任务进行周期 发送。IO 分区分别采用 P1 发送任务、 P2 发送任务、 P3 发。
32、送任务来处理三个采样端口上的 待发送数据。如图 2 所示。这种周期控制的优点是 :(1) 总线分区便于进行数据综合 ;(2) 功能分区实现简单 ;(3) 分区切换相对较少。这种周期控制的缺点是 :(1) 总线负载时间不 均衡 ;(2) IO 分区设计相对复杂 ;(3) CPU 资源要求高。该方式适用于周期较为复杂, CPU 运 行资源宽松的大中型系统中。 0061 7. 功能分区控制 0062 由功能分区进行周期控制, 即各功能分区将输出数据根据不同的周期建立不同的 周期任务, 由这些不同的周期任务将周期数据按照需求交给 IO 分区, IO 分区只负责接收到 数据立即发送外部总线即可。如分区 。
33、1 有 P1、 P2、 P3 三种周期发送类型, 则分区 1 将建立 P1、 P2、 P3 三个发送任务分别处理这三种周期发送。在分区 1 窗口之后需要安排 IO 分区窗 口以便实时发送。如图 3 所示。这种周期控制的优点是 :(1) IO 分区设计简单 ;(2) 总线负 载均衡 ; 这种周期控制的缺点是 :(1) 对于来源不同分区的综合数据包 IO 分区难以进行数 据综合 ;(2) 实时性要求更高, 分区切换频繁。该方式适用于周期较为简单, CPU 运行资源 紧张的小型系统中。如图 3 所示。 0063 8. 系统余量 0064 按照 ARINC653 规范开发的实时操作系统, 由域组成操作。
34、系统结构。系统中的运行 内核 CoreOS、 分区、 共享库都是以域的方式存在。包含 CoreOS 的域是核心域, CoreOS 控制 整个系统, 运行在特权态, 它创建分区, 管理分区的调度、 分区间的通信, 管理系统资源, 监 视分区和系统的健康。应用运行在应用分区中, 每个应用分区包含一个分区核 OS。在分区 核 OS 运行时, CoreOS 在后台作系统服务, 调度分区, 并监控分区的运行状态。因此在调度 表中除了给应用分区安排足够的时间窗口外, 还要有相应的空余窗口 “IDLE” , 即必须留一 定空窗口给系统 OS, 用于完成整个工程的系统后台服务, 为了保证系统安全, 这个空窗口。
35、应 为 2 5 倍 Tp 基准时间片。除操作系统必须的空闲开销外, 考虑到嵌入式软件安全要求, CPU 的安全工作余量一般要求 20% 50% 以上, 调度表还须预留一定的空余窗口 IDLE 满足 系统余量。如图 4 所示。 0065 9. 小周期的 IO 分区与功能分区的要求 0066 如图 5 所示, 分区 2 数据发送任务有 1/2Ts 周期发送要求, 相对于 Ts 的主时间框 说 明 书 CN 103544065 A 8 6/7 页 9 架, 分区 2 与 IO 分区需在调度表中出现两次, 间隔必须满足 1/2Ts 要求。因此设计分区 2 与 IO 分区窗口相邻, 与另一对分区 2 与。
36、 IO 分区窗口相距 1/2Ts 时间, 其余空闲基准时间片 用于安排其他分区窗口。因此在对于有较快周期需求的功能分区与 IO 分区而言, 可以在调 度表中安排多次出现, 以满足小周期需求。 0067 10. 分区顺序与窗口大小 0068 调度表中分区的安排顺序和窗口大小接将根据实际需求而定, 例如系统中维护分 区为系统初始化的第一个分区, 需要完成从初始化的参数状态, 同时判断是否进入维护模 式, 因此将维护分区放在调度表中第一个启动窗口, IO 分区作为基础的通讯服务分区, 将跟 随维护分区进行输入输出操作因此将 IO 分区排在维护分区之后, 其他功能分区无特殊要 求将根据执行时间开销在剩。
37、余时间片中排列。 原则上相邻分区具有较多数据关联的应相邻 排列, 以保证数据的即时传递 ; IO 分区应均衡分布在调度表中, 每一个 IO 分区时间窗口均 是数据输入输出窗口, 功能分区窗口出现顺序必须满足自身周期任务的要求, 由紧随其后 而来的第一个 IO 分区完成对外数据发送。因此 IO 分区周期必须满足所有功能分区任务周 期 P1、 P2、 P3Pm 的最小值。功能分区窗口的大小根据估算分区任务量的 CPU 运行时间加 上分区运行安全余量而得, 通过向上取整, 换算为多干单位的基准时间片长度, 较大的系统 分区窗口分配多个基准时间片 ; 如图 6 所示, 分区 4、 分区 7 分配了 2。
38、 个 Tp 窗口。 0069 11. 总线的负载均衡 0070 选择周期控制方式为 IO 分区控制模式, 数据发送总是集中在 IO 分区执行时间片 后一段时间, 这将导致总线负载集中加大, 由于 IO 分区是设备嵌入式软件唯一对外的输入 输出服务分区, 所以对于功能分区执行时间段, 总线输出负载将较小, 这种总线负载的不均 衡将增加总线传输的风险。如图 7 所示。 0071 为解决这一矛盾, 在主时间框架中分割 IO 分区时间窗口为若干部分, 均匀分布在 主时间框架上, 窗口大小依然保持以Tp为单位, 将IO分区的不同周期发送任务控制分散到 多个 IO 分区中, 将周期分为 P1、 P2 一组。
39、、 P3、 P4 为另一组, P1、 P2 发送数据与 P3、 P4 发送数 据通过不同的 IO 分区窗口释放, 这样可以有效地平衡总线负载。如图 8 所示。 0072 实施例 0073 飞机的机电系统任务周期需求为 50ms、 100ms、 200ms、 500ms、 1s 五种类型周期, 经 设计人员系统需求分析后, 将机电系统软件需求划分为 : 起落架分区、 液压分区、 燃油分区、 环控分区、 供电分区、 照明分区以及 IO 分区供 7 个分区。每个分区的周期需求为 : 0074 起落架分区 : 50ms、 100ms、 200ms、 500ms ; 0075 液压分区 : 100ms、。
40、 200ms、 500ms、 1s ; 0076 燃油分区 : 100ms、 200ms、 500ms ; 0077 环控分区 : 100ms、 200ms、 500ms ; 0078 供电分区 : 100ms、 200ms、 500ms ; 0079 照明分区 : 100ms、 200ms、 500ms、 1s ; 0080 机电核心处理计算机 CPU 选用 PowerPC755, 主频为 266Mhz, 针对该型 CPU 对各分 区的功能软件运算规模进行测试, 得到分区运行开销分别为 : 起落架分区 2.3ms、 液压分区 1.6ms、 燃油分区 4.8ms、 环控分区 2.1ms、 供电。
41、分区 1.8ms、 照明分区 0.9ms、 IO 分区 2.9ms。 根据飞机安全性要求分区运行余量要求为 40%, CPU 系统运行时间余量要求为 30%。 说 明 书 CN 103544065 A 9 7/7 页 10 0081 按照本发明步骤 2 计算各分区的窗口执行时间为 : 起落架分区为 5ms、 液压分区为 5ms、 燃油分区为 10ms、 环控分区为 5ms、 供电分区为 5ms、 照明分区为 5ms、 IO 分区为 5ms。 0082 按照步骤 3 计算出基准时间片 Tp=5ms ; 0083 按照步骤 4 并确定 IO 分区周期为 50ms ; 0084 按照步骤 5 计算出。
42、满足 V 集合的周期包括 V=50ms、 100ms、 500ms、 1s ; 0085 按照步骤 6 计算出调度表最小安全门限为 Ts=50ms 时最小安全门限为 80ms ; Ts=100ms 时最小安全门限为 71ms ; 0086 按照步骤 7 从 V 集合中选出大于或等于最小安全门限值的最小值为 Ts=100ms ; 0087 按照步骤8将主时间框架以Tp为基准时间片分割, 各个分区窗口时间依次排列于 主时间框架之上, 如图 9 所示 ; 0088 按照步骤 9 根据起落架分区、 液压分区、 燃油分区、 环控分区、 供电分区、 照明分区 的相互依存关系, 以及通讯密集程度进行排序 ;。
43、 其中供电分区负责系统启动供电任务应最 先启动, 所以排列于主时间框架第一个 Tp 上, IO 分区负责供电分区数据输出排列于第二个 Tp 上 ; IO 分区、 起落架分区周期为 50ms, 在主时间框架中出现两次, 每次间隔 50ms ; 其中照 明分区、 环控分区、 液压分区数据交互较多, 具有先后顺序, 因此将环控分区、 照明分区、 液 压分区顺序排列 ; 燃油分区与其他分区数据交互较少, 为了平衡 IO 分区窗口之间的数据运 算量, 将其排列于第二个 IO 分区之后 ; 主时间框架剩余时间窗口为系统空闲时间 ; 排序后 的调度表如图 10 所示 ; 0089 按照步骤 10, 由于本系。
44、统运算量较大、 分区个数较多、 周期复杂, 采用功能分区 IO 分区控制方式进行周期控制 ; 0090 按照步骤 11, 将系统周期任务以 50ms、 100ms 为一组在第一个 IO 分区窗口释放周 期 ; 50ms、 200ms、 500ms、 1s 为一组在第二个 IO 分区窗口释放周期, 如此可以平衡总线输出 负载。 说 明 书 CN 103544065 A 10 1/4 页 11 图 1 图 2 说 明 书 附 图 CN 103544065 A 11 2/4 页 12 图 3 图 4 图 5 说 明 书 附 图 CN 103544065 A 12 3/4 页 13 图 6 图 7 图 8 说 明 书 附 图 CN 103544065 A 13 4/4 页 14 图 9 图 10 说 明 书 附 图 CN 103544065 A 14 。