确定性因果链描述事件在 HRTOS 中如何经过中断、调度与执行路径, 最终生成可预测的系统输出。
它不是流程图,而是“时间约束驱动的因果模型”。
完整链路:
Event → Interrupt → Scheduling → Context Switch → Execution → Result
每个节点都是时间约束点,而非功能模块。
事件来源:
• 外部中断(IO / 传感器)
• Tick 定时器
• 任务通信信号
要求:事件必须可枚举,否则无法建立确定性模型。
调度器只做一件事:
决定下一时刻 CPU 属于谁
要求:
✔ 可重复
✔ 可分析
✔ 无随机依赖
执行是链路中主要耗时阶段。
必须满足 WCET 上界,否则因果链失效。
设计原则:只关心最坏情况,而非平均值。
以下因素会破坏确定性:
• 非确定调度策略
• cache miss 未建模
• 动态内存分配
• 不受控中断嵌套
• 锁竞争不可界定
因果链的目标不是描述执行,而是构造函数:
Input(Event) → F(t) → Output
其中 F(t) 必须稳定且可证明。
确定性因果链把操作系统从“执行系统”提升为“时间因果系统”。
系统正确性等价于:在相同时间结构下产生相同结果。