立即注册
查看: 2259|回复: 0

[翼辉OS原厂技术资料] 翼辉Matrix653分时分区操作系统

已绑定手机
发表于 2019-12-16 10:23:06 | 显示全部楼层 |阅读模式 来自 广东省深圳市
翼辉信息依托在嵌入式操作系统领域十几年的技术积累,结合安全关键领域(Safety-Critical)对操作系统在容错安全和信息安全方面的需求,正式推出全新的Matrix653操作系统产品。Matrix653是符合ARINC653标准的微内核操作系统。用户使用Matrix653操作系统可以快速搭建出符合航电系统SWaP(Size Weight and Power)设计约束,适合于行业标准的稳定、高效、可移植的软件系统。

Matrix653实现了分区之间的空间隔离和时间隔离,达到容错和简化验证的目的,有效保证了各个分区间代码和数据的独立安全性。分区之间互不干扰,每个分区有独立的时间窗口,地址空间,从根本上解决传统嵌入式领域安全性问题,防止错误扩散到其它分区和操作系统内核。

空间隔离:必须保证一个分区的软件不能篡改其他分区内的软件或者私有数据,也不能访问其他分区内的私有设备或者作动器;

Matrix653 的分区隔离机制,保证在一个分区内运行的程序的缺陷所导致的故障,不会影响到其他分区中程序的运行。如下图所示:
QQ截图20191216102424.png
时间隔离:必须保证一个分区的软件从共享资源所获得的服务不能受其他分区软件的影响,如相关资源的性能、速率、延迟、偏差、以及访问时长等。

Matrix653 的调度策略保证每个分区都能在确定的时间窗口中运行。如下图所示:
QQ截图20191216102447.png
上图中横轴表示时间,纵轴表示任务。在第一个时间窗口内,运行分区1,分区1内的任务(P1-A,P1-B,P1-C)得到运行;之后进入下个时间窗口,运行分区2,分区2内任务(P2-A,P2-B)得到运行;依次类推,直到周期内的所有时间窗口全部得到运行,进入下一周期。时间窗口在开发阶段配置,运行过程中不可更改。

采用微内核架构

Matrix653 采用微内核架构。微内核是一种重要的操作系统设计思想,微内核一方面降低了模块的变化带来的影响范围;另一方面也使得模块更内聚、结构更简单、可裁剪性更强、以及便于理解。与之对应的是宏内核,以 Linux、VxWorks 为例,其内核态运行了任务管理、同步通信、内存管理,文件系统,网络协议栈等功能,这些功能往往和各种各样的设备驱动内聚在一起,任何一个模块的错误都将导致系统崩溃。究其原因,传统嵌入式操作系统内核功能模块间耦合度太高,导致其可靠性降低。因此采用微内核的思想,拆分各个功能模块,重新组织嵌入式操作系统结构使其独立开来,可增强可靠性。

Matrix653 仅有很少量的关键性代码运行在 CPU 的特权状态下,这些代码经过严格验证和测试,最大限度的保证操作系统内核的安全性。其次,由于内核代码的精简,也让操作系统内核的形式化验证成为可能。

系统确定性

Matrix653 分区严格按照预设时间窗口运行,某个时间点一定运行某个分区;其次,所有资源在开发阶段预分配,避免运行时申请资源引发的不确定性开销;再次,O(1)级的调度算法保证在任务量任意多,满负荷的系统上,最高优先级任务的响应时间仍然是一个常值;从而保证系统的可预测性(Predictability)。

采用两级调度

Matrix653采用两级调度模型,第一级是分区调度,分区按照预配置的时间窗口轮转调度,保证分时特性;第二级是进程调度,在确定当前时间窗口对应的分区后,再使用分区内调度算法调度其内部进程。Matrix653 的分区内进程调度算法可配置,目前支持 RMS(单调速率算法),EDF(最早截止时间优先算法),LLF(最短空闲时间优先算法),RR(轮转算法)等调度算法。

支持多核

为了利用硬件多核的运算能力,Matrix653 提供对多核的支持。在最大限度的利用硬件功能的同时,也保证分时分区特性,以及系统运行的可预测性。其技术方案架构图如下所示:
QQ截图20191216102530.png
上图中横轴表示时间,纵轴表示 CPU 核心。每一个核心上面绑定一个分区列表。它们之间是一一对应的,即一个核心对应一个分区列表,对应关系在开发阶段进行配置,每个核心的分区数目可以根据用户的需要自定义。分区配置信息包括像时间窗口、分区内进程数量以及分区运行的核心 ID 等参数。在系统运行过程中,分区配置信息一旦初始化,便不可更改。由于分区有独立的地址空间,这保证了分区之间的内存是不能互相访问的。同时也保证某个核心上发生错误不会影响其他核心正常运转,这也体现了分时分区机制的容错安全。


支持 ARINC653 标准

由航空无线电公司(Aeronautical Radio, Inc.)提出的 ARINC653 标准是航空电子行业国际公认的规范,其为 IMA(Integrated Modular Avionics)综合化航空电子各个组件定义了相应的功能需求及接口标准。ARINC653 APEX(APplication/EXecutive)定义了应用与系统服务之间的接口规范以及调度机制。使用这个标准能够使航空电子设备供应商和系统集成商在同一个硬件平台上部署多个航电应用模块,同时保持系统符合严格的航空电子安全标准,如 RTCA DO-178C。

Matrix653提供完整的ARINC653-1 标准系统服务,满足航空软件的可移植性需求,APEX 接口库包括以下几个部分:
QQ截图20191216102632.png
同时,配套 IDE 提供 ARINC653 可视化配置界面,自动完成配置数据的生成和验证,缩短航电公司开发周期。

支持背景分区

ARINC653 调度策略保证了系统运行的确定性,但对一些非确定事件(可能出现在分区时间窗口之外的事件),响应不够及时。例如 Shell 任务的用户输入,网络数据的接收等随机发生的事件。Matrix653 在 ARINC653 调度的基础上,对其进行优化,在保证分时分区的同时,增加背景分区。当某个分区被配置为背景分区,那么在任何时间窗口内,背景分区内的就绪进程都有得到调度的资格。我们可以将处理随机事件的任务所在的分区配置为背景分区,从而保证对随机事件的快速响应能力。

应用场景:航空电子系统

支持的硬件平台:x86,PowerPC,ARM,MIPS,SPARC

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表