2. 通用操作系统为什么无法满足实时需求

Linux / Windows 在实时场景中的结构性限制

核心矛盾

通用操作系统(GPOS)的设计出发点是“平均性能最优”, 而实时系统要求的是“最坏情况可控”。

这意味着 GPOS 并不是“做得不够好”,而是“优化目标完全不同”。

GPOS is optimized for average performance, while real-time systems require worst-case predictability.

1. 调度路径不可预测

通用系统采用复杂调度算法(如 CFS、优先级动态调整等), 目的是提高整体公平性与CPU利用率。

但结果是:同一任务在不同时间点执行,其调度延迟可能完全不同。

2. 内核路径长度不确定

在 GPOS 中,一个简单系统调用可能触发: 锁竞争 / 页调度 / 中断嵌套 / 内存回收等复杂路径。

这些路径的存在,使得最坏执行时间(WCET)难以建模。

3. 中断与抢占的不稳定性

中断可能被延迟、屏蔽或重新排序执行, 内核临界区也可能导致不可预测的暂停时间。

在实时系统中,这种“不可控暂停”本身就是错误来源。

4. 资源共享导致时间抖动

CPU cache、内存、IO 都是共享资源, 在多任务竞争下会产生抖动(jitter)。

即使平均性能优秀,也无法保证每一次执行的时间边界。

根本原因(结构层)

GPOS 的核心目标是:
• 提高吞吐量
• 提高系统利用率
• 提供公平性

RTOS 的核心目标是:
• 保证时间上界
• 消除不可预测路径
• 控制最坏情况

语义总结

通用操作系统的失败点不在性能,而在“无法定义时间上界”, 这使其无法作为严格实时系统的基础。

The limitation is not performance, but the inability to define and guarantee timing upper bounds.

与 HRTOS System View 的对应关系

通用操作系统的问题,本质上可以在 HRTOS 的系统模型中找到对应解释:

• 调度不可预测 → Scheduler Cycle(调度循环)
• 执行路径不确定 → Execution Flow(执行流)
• 中断延迟不可控 → Interrupt Flow(中断流)
• 时间抖动来源 → Time System(时间系统)
• 内存不可预测 → Memory View(内存视图)

👉 这些问题并不是实现缺陷,而是系统结构层的必然结果。