Matrix653 简介

更新时间:
2023-12-14
下载文档

Matrix653 简介

本节介绍 Matrix653 分时分区操作系统主要特性。

支持分时分区

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

空间隔离:必须保证一个分区的软件不能篡改其他分区内的软件或者私有数据,也不能访问其他分区内的私有设备或者作动器;Matrix653 的分区隔离机制,保证在一个分区内运行的程序的缺陷所导致的故障,不会影响到其他分区中程序的运行。如下图所示:

时间隔离:必须保证一个分区的软件从共享资源所获得的服务不能受其他分区软件的影响,如相关资源的性能、速率、延迟、偏差、以及访问时长等。 Matrix653 的调度策略保证每个分区都能在确定的时间窗口中运行。如下图所示:

上图中横轴表示时间,纵轴表示任务。在第一个时间窗口内,运行分区 1,分区 1 内的任务(P1-A,P1-B,P1-C)得到运行;之后进入下个时间窗口,运行分区 2,分区 2 内任务(P2-A,P2-B)得到运行;依次类推,直到周期内的所有时间窗口全部得到运行,进入下一周期。时间窗口在开发阶段配置,运行过程中不可更改。

系统确定性

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

采用两级调度

Matrix653 采用两级调度模型,第一级是分区调度,分区按照预配置的时间窗口轮转调度,保证分时特性;第二级是进程调度,在确定当前时间窗口对应的分区后,使用分区内调度算法调度其内部进程。Matrix653 的分区内进程调度算法可配置,默认采用优先级抢占算法。

支持多核

为了利用硬件多核的运算能力,Matrix653 提供对多核的支持。在最大限度的利用硬件功能的同时,也保证分时分区特性,以及系统运行的可预测性。其技术方案架构图如下所示:

上图展示了多核的多调度计划表 Mode1 Module Schedule 和 Mode2 Module Schedule,两个调度计划表中都,包含4个 CPU 核心的时间窗配置。横轴表示时间,纵轴表示 CPU 核心。每个进程都要绑定特定的核,每个核有自己独立的调度计划,分区可以同时在多个核上运行。它们之间是一一对应的,即一个核心对应一个分区列表,对应关系在开发阶段进行配置,每个核心的分区数目可以根据用户的需要自定义。分区配置信息包括像时间窗口、分区内进程数量以及分区运行的核心 ID 等参数。在系统运行过程中,分区配置信息一旦初始化,便不可更改。由于分区有独立的地址空间,这保证了分区之间的内存是不能互相访问的。同时也保证某个核心上发生错误不会影响其他核心正常运转,这也体现了分时分区机制的容错安全。

符合 ARINC653 规范

Matrix653 符合 2019 年发布的最新 ARINC 653 规范,其采用规范如下:

⚫ ARINC Specification 653 Part 1-5(Required Services)

⚫ ARINC Specification 653 Part 2-4(Extended Services)

⚫ ARINC Specification 653 Part 3A(Confiormity Test Specifications fo P1)

⚫ ARINC Specification 653 Part 3B(Confiormity Test Specifications fo P2)

Matrix653 提供完整的 ARINC 653 P1-5 必须服务,部分 ARINC 653 P2-4 扩展服务,满足航空软件的可移植性需求,提供以下标准组件:

  • 提供 ARINC 653 P1-5 中定义的分时分区。
  • 提供 ARINC 653 P1-5 中定义的分区间通信方式:队列端口,采样端口。
  • 提供 ARINC 653 P1-5 中定义的分区内通信方式:黑板,缓冲,信号量,互斥量,事件。
  • 提供 ARINC 653 P1-5 中定义的健康监控。
  • 提供 ARINC 653 P1-5 中定义的多核调度。
  • 提供 ARINC 653 P2-4 中定义的多模块调度计划。
  • 提供 ARINC 653 P2-4 中定义的文件系统 APEX 接口。
  • 提供 ARINC 653 P2-4 中定义的中断服务,内存块。
  • 提供 ARINC 653 P2-4 中定义的队列端口链表,采样端口扩展,健康监控扩展。
  • 配置符合 ARINC 653 P1 附录 H 定义的 XML 规范。
  • 同时,配套 IDE 提供 ARINC 653 可视化配置界面,自动完成配置数据的生成和验证,缩短航电公司开发周期。

支持系统分区

ARINC 653 调度策略保证了系统运行的确定性,但对一些非确定事件(可能出现在分区时间窗口之外的事件),响应不够及时。例如 Shell 进程的用户输入,网络数据的接收等随机发生的事件。Matrix653 在 ARINC 653 调度的基础上,对其进行优化,在保证分时分区的同时,增加系统分区。系统分区是一个伪分区,可以将不属于任何应用分区的进程放在该分区内运行。例如 Shell 进程。运行在系统分区内的进程称之为内核进程,系统分区内的进程全部运行在 CPU 特权态。在任何应用分区的时间窗口内,系统分区内的就绪进程都有得到调度的资格,调度策略是优先选择当前应用分区内的就绪进程,如果当前应用分区没有就绪进程,那么才会运行系统分区内的内核进程。另外,在模块间通信时,系统分区作为伪端口的宿主分区使用。

文档内容是否对您有所帮助?
有帮助
没帮助