确定性因果链(Deterministic Chain)描述的是:在 HRTOS 中,一个外部或内部事件如何经过一系列系统阶段,最终生成一个可预测的执行结果。
它不是“执行流程”,而是“时间 + 调度 + 中断 + 内存”共同构成的因果路径模型。
一个完整的实时执行链可以抽象为以下顺序:
Event Trigger → Interrupt → Scheduling Decision → Context Switch → Execution → Completion
每一个阶段都是时间约束节点,而不是功能模块。
系统确定性 = 每个节点延迟上界的可证明性之和。
事件来源包括:
• 外部中断(传感器 / IO) • 系统定时器(Tick) • 内部信号(任务间通信)
关键约束:事件必须可枚举,否则因果链无法建模。
调度器在事件发生后执行唯一决策:
👉 谁在“下一时间片”获得 CPU
在确定性系统中,这个决策必须是:
✔ 可重复 ✔ 可分析 ✔ 不依赖运行时随机状态
执行阶段是因果链中“时间消耗最大”的部分。
它必须满足 WCET(Worst Case Execution Time)边界,否则整个链失效。
在 HRTOS 中:
✔ 平均时间无意义 ✔ 只有最坏路径有效
以下任一因素都会破坏因果链:
• 不可预测调度(non-deterministic scheduler) • cache miss 抖动未建模 • 动态内存分配 • 未界定中断嵌套深度 • 未约束锁竞争
一旦出现不可建模路径,系统就失去“可证明性”。
确定性因果链的意义不是描述系统,而是:
👉 把“操作系统行为”变成“可证明的时间函数”
即:
Input(Event) → F(t) → Output(Result)
其中 F(t) 必须是稳定的时间函数。