通用操作系统(GPOS)的设计出发点是“平均性能最优”, 而实时系统要求的是“最坏情况可控”。
这意味着 GPOS 并不是“做得不够好”,而是“优化目标完全不同”。
通用系统采用复杂调度算法(如 CFS、优先级动态调整等), 目的是提高整体公平性与CPU利用率。
但结果是:同一任务在不同时间点执行,其调度延迟可能完全不同。
在 GPOS 中,一个简单系统调用可能触发: 锁竞争 / 页调度 / 中断嵌套 / 内存回收等复杂路径。
这些路径的存在,使得最坏执行时间(WCET)难以建模。
中断可能被延迟、屏蔽或重新排序执行, 内核临界区也可能导致不可预测的暂停时间。
在实时系统中,这种“不可控暂停”本身就是错误来源。
CPU cache、内存、IO 都是共享资源, 在多任务竞争下会产生抖动(jitter)。
即使平均性能优秀,也无法保证每一次执行的时间边界。
GPOS 的核心目标是:
• 提高吞吐量
• 提高系统利用率
• 提供公平性
RTOS 的核心目标是:
• 保证时间上界
• 消除不可预测路径
• 控制最坏情况
通用操作系统的问题,本质上可以在 HRTOS 的系统模型中找到对应解释:
• 调度不可预测 → Scheduler Cycle(调度循环)
• 执行路径不确定 → Execution Flow(执行流)
• 中断延迟不可控 → Interrupt Flow(中断流)
• 时间抖动来源 → Time System(时间系统)
• 内存不可预测 → Memory View(内存视图)
👉 这些问题并不是实现缺陷,而是系统结构层的必然结果。