HRTOS 学习模块

调度基础(Scheduling Fundamentals)

调度是RTOS的核心控制机制,决定CPU在任意时刻执行哪个任务。 它直接影响系统是否满足实时约束,而不是单纯的运行效率问题。

Scheduling RTOS Core Deterministic Execution

一、调度本质

通用系统优化“整体效率”,RTOS优化“时间可预测性”。 调度的核心不是资源分配,而是时间约束是否成立。

调度 = 时间约束决策机制 目标: - 满足截止时间 - 控制最坏延迟 - 保证执行可预测 关键点: - 优先级 ≠ 执行顺序保证 - 可运行 ≠ 可调度成功 - 高优先级 ≠ 一定执行

RTOS调度器本质是“时间可行性判断器”,而不是简单的任务排序器。

二、任务状态链路

任务状态不是线性流程,而是被中断、资源与时间事件不断打断的动态系统。

状态流: 创建 → 就绪 → 运行 → 阻塞 → 就绪 → 终止 触发因素: - 中断 - 时间片 - 资源释放 - 超时 - 优先级变化

每次状态变化都可能触发一次调度,因此状态设计直接影响系统稳定性。

三、调度模型类型

优先级调度

基于优先级选择任务。 RTOS核心模型,但不等于实时性本身。 需要配合执行时间约束才能成立。

抢占式调度

高优先级任务可中断低优先级任务。 用于保证响应时间上界。 代价是上下文切换成本增加。

时间片调度

CPU按时间轮转分配。 强公平性,但弱实时性。 适用于后台任务。

事件驱动调度

由中断、消息、信号触发。 是RTOS与中断系统耦合的主要方式。

四、调度决策逻辑

调度不是“选最高优先级任务”,而是判断“谁在约束内仍可执行”。

调度判断流程: 1. 是否就绪 2. 是否满足资源条件 3. 是否满足时间约束 4. 是否被更高优先级抢占 5. 选择最优可执行任务

调度本质是约束满足问题,而不是排序问题。

五、抢占代价

抢占提升实时性,但带来系统成本:切换、缓存失效与抖动。

主要代价: - 上下文切换 - 缓存失效 - 调度抖动 - 锁竞争

高频抢占会吞噬执行时间,因此任务粒度必须受控。

六、实时性关系

实时性由调度保证,而不是CPU性能决定。

实时条件: 执行时间 + 调度延迟 ≤ 截止时间 所有阻塞与中断开销必须计入预算

评价RTOS不能看平均性能,而必须看最坏情况。

七、结论

RTOS调度本质: 不是资源优化,而是时间约束验证系统 每个任务都必须被当作“带截止时间的执行请求”

学习路径

建议顺序理解:

中断基础
RTOS vs Linux
IPC基础
抢占 vs 协作
实时系统基础