4. 资源管理核心机制

航电系统的资源管理不是单一算法,而是一组相互咬合的机制。它们共同回答三个问题:谁在什么时候用哪块资源、用错了或坏了怎么办、任务变了如何在不破坏安全的前提下重新分配。本节围绕资源调度器、分区管理、时间与空间隔离、健康监控、资源预留与动态重配置六项机制展开,重点说明它们各自解决什么问题、彼此如何衔接,以及在实际配置中如何落地。

一、资源调度器:把“可用”变成“可执行”

资源调度器位于操作系统内核与任务之间,负责把计算、内存、总线带宽、I/O 等资源按策略分配给各分区或任务。航电中常见的调度策略有两类:静态时间触发调度和动态优先级调度。前者按预先编排的时间片轮转,适合强实时、可预测的飞控任务;后者按优先级抢占,适合事件驱动的显示与告警任务。

以某综合航电平台为例,调度器配置一个 20 ms 的主帧,划分为 8 个 2.5 ms 的时间片。飞控分区占 3 片,显示分区占 2 片,健康监控占 1 片,剩余 2 片作为预留。调度表在系统启动时加载,运行期不可被普通任务修改。调度器在每个时间片边界触发分区切换,并记录切换时刻与执行时长,供后续健康监控比对。

二、分区管理:给每个功能一个“独立房间”

分区管理的核心思想是把不同安全等级、不同供应商、不同更新周期的功能隔离开。每个分区拥有独立的代码段、数据段、堆栈和 I/O 访问权限。分区之间不能直接读写对方内存,只能通过受控的端口或共享缓冲区通信。

分区配置通常包含以下字段:分区标识、所属安全等级、分配的时间片、内存基址与长度、允许访问的端口、最大执行时间。例如:

分区ID: P-FCS-01
安全等级: A
时间片: 0~7.5 ms
内存: 0x4000_0000 ~ 0x4001_FFFF (128 KB)
端口: ARINC653_PORT_12
最大执行时间: 7.0 ms
超时动作: 触发健康监控,降级至备份分区

分区管理还负责分区生命周期:初始化、启动、运行、挂起、重启、关闭。当某分区超时或越界,分区管理器可将其单独重启,而不影响其他分区继续运行。

三、时间与空间隔离:两条不可逾越的边界

时间隔离保证一个分区超时不会挤占其他分区的时间片。实现方式包括硬件定时器、看门狗和调度表强制切换。若 P-FCS-01 在 7.5 ms 边界仍未释放 CPU,调度器强制切走,并记录一次超时事件。

空间隔离保证一个分区不能读写其他分区的内存。通常由 MMU(内存管理单元)或 MPU(内存保护单元)实现,把每个分区的地址空间映射到独立页表。越界访问触发异常,由健康监控接管。时间隔离防“拖垮”,空间隔离防“踩踏”,两者缺一不可。

航电资源管理核心机制协同关系 资源调度器 主帧 20 ms / 8 时间片 静态时间触发 + 优先级 分区管理 P-FCS-01 / P-DIS-02 生命周期与端口控制 时间 / 空间隔离 MMU 页表 + 定时器 越界异常 / 超时切换 分配时间片 施加边界 健康监控 超时 / 越界 / 校验失败 降级 / 重启 / 告警 异常上报 资源预留 2 个空闲时间片 内存余量 / 带宽余量 备用资源 动态重配置 任务变更 / 故障切换 重新分配时间与内存 触发重配 更新调度表 调整分区边界 调度器分配时间 → 分区管理组织资源 → 隔离机制守住边界 → 健康监控发现异常 → 预留资源兜底 → 动态重配置恢复或调整

四、健康监控:让异常“被看见、被处理”

健康监控(Health Monitoring, HM)持续采集各分区的运行状态,判断是否偏离预期。典型监控项包括:执行时间是否超过最大执行时间、内存访问是否越界、通信校验是否失败、心跳是否按时到达、CPU 温度与电压是否在范围内。

HM 通常按严重程度分级:信息级只记录日志;警告级通知相关分区降级运行;严重级触发分区重启或切换到备份;灾难级触发系统级安全模式。例如,P-FCS-01 连续 3 个主帧超时,HM 将其标记为严重故障,切换到备份分区 P-FCS-01B,并通知显示分区更新告警图标。

五、资源预留:为不确定留出确定余量

资源预留是在系统设计阶段就划出一部分资源不分配给常规任务,专门用于应对峰值负载、故障恢复和未来功能扩展。预留的对象包括时间片、内存块、总线带宽、端口数量和中断向量。

预留不是“浪费”,而是安全裕度。以 20 ms 主帧为例,8 个时间片中只分配 6 个,保留 2 个作为预留。当某个分区需要临时增加计算量时,调度器可从预留池中临时借出时间片,借出记录写入日志,任务结束后归还。内存预留同理,例如总内存 512 MB,常规分区使用 384 MB,预留 128 MB 用于动态加载和故障备份。

六、动态重配置:在运行中安全地“换牌”

动态重配置指系统在运行期间,根据任务变化或故障状态,重新分配资源、调整分区参数或切换工作模式。它必须满足两个前提:不破坏时间隔离、不破坏空间隔离。因此,重配置通常由健康监控或地面指令触发,经过安全校验后,由调度器在时间片边界原子地更新调度表和分区映射。

一个典型流程是:地面站上传新任务计划 → 重配置管理器校验新配置的合法性(内存不重叠、时间片不超帧、安全等级匹配)→ 在下一个主帧边界暂停受影响分区 → 更新调度表与页表 → 恢复分区运行 → 记录重配置事件。若校验失败,则拒绝重配置并保持原状态,同时向健康监控上报。

时间隔离与空间隔离是动态重配置的底线:任何重配置都不能让一个分区越界访问或超时占用。校验不通过时,宁可拒绝重配置,也不能带病切换。

七、机制之间的协同关系

六项机制不是并列的,而是有明确的依赖与反馈关系。调度器提供时间基准,分区管理组织资源容器,隔离机制守住边界,健康监控发现越界与超时,资源预留提供兜底余量,动态重配置在安全前提下调整分配。一次完整的异常处理可以这样串起来:P-FCS-01 超时 → 隔离机制强制切换 → 健康监控记录并分级 → 若严重则触发动态重配置 → 从预留池借出时间片给备份分区 → 调度器更新调度表 → 系统继续运行。

在实际工程中,建议把上述关系固化为可检查的配置项:每个分区必须有明确的最大执行时间和内存边界;每个主帧必须保留至少一个空闲时间片;健康监控的每一级动作必须有对应的降级或恢复策略;动态重配置必须经过合法性校验并留痕。做到这几点,资源管理机制才算真正闭环。