HRTOS 学习模块

抢占式 vs 协作式调度模型

调度模型定义系统“CPU控制权归属方式”。 抢占式与协作式的核心区别在于:系统是否允许任务自行决定CPU释放时机。

Scheduling Model RTOS Core Concept Deterministic Behavior

一、调度模型本质:CPU控制权归属

调度模型的核心不是“任务如何切换”,而是“切换由谁决定”。

CPU 控制权: 内核控制 → 抢占式 任务控制 → 协作式 控制权决定时间边界

因此,yield()、阻塞调用与中断返回点,都是控制权交接位置。

二、抢占式调度(Preemptive)

抢占式调度由内核统一控制执行顺序,高优先级任务可随时中断低优先级任务。

[抢占式] 高优先级任务触发 ↓ 强制切换当前任务 内核决定执行顺序

本质:控制权始终在内核,不依赖任务行为。

时间控制

由内核统一控制任务切换。

实时性

可保证高优先级任务快速响应。

复杂度

需要处理并发与优先级问题。

确定性

具备可分析的时间上界。

三、协作式调度(Cooperative)

协作式调度依赖任务主动释放CPU,内核不会强制中断执行。

[协作式] 任务运行 → 必须 yield() 不让出CPU → 系统无法切换

系统行为取决于任务是否“自律”。

执行方式

任务主动让出CPU。

实现复杂度

简单,但依赖规范约束。

风险

单任务阻塞可拖垮系统。

实时性

无法保证严格时间上界。

四、本质差异

抢占式:内核控制执行 协作式:任务参与控制 差异 = 控制权位置不同

不是性能差异,而是系统控制模型差异。

五、RTOS影响

抢占式

适用于硬实时系统。

协作式

适用于简单嵌入式系统。

风险

内核复杂 vs 任务失控。

确定性

抢占式具备可证明上界。

六、结论

抢占式 = 受控系统 协作式 = 自管理系统

HRTOS默认采用抢占式调度,因为实时系统的核心是“时间可证明性”。

七、RTOS执行链路

调度模型处于RTOS执行流程核心位置。

Interrupt → 状态变化 → 调度决策 → 模型 → 切换 → 执行

模型决定“何时切换”,切换决定“如何执行”。

相关阅读