概述
调度器是RTOS的核心控制单元, 负责决定哪个任务在当前时刻获得CPU执行权。
工作原理
系统在中断或系统调用触发后进入调度判断, 根据优先级与就绪队列状态选择最高优先级任务执行。
调度策略直接决定系统实时性与响应稳定性。
调度触发条件
HRTOS在以下场景触发调度决策:
1. 时间片耗尽
2. 当前任务主动 Yield
3. 任务阻塞
4. 高优先级任务就绪
5. 中断退出后检查调度
调度触发时机直接决定系统响应速度与抢占能力。
执行路径
调度事件触发
↓
进入调度器
↓
检查就绪队列
↓
选择最高优先级任务
↓
执行上下文切换
↓
进入目标任务执行
调度路径决定任务切换效率与实时系统执行节奏。
关键接口 / 结构
os_schedule()
os_yield()
os_ready_queue_add()
os_ready_queue_pick()
struct scheduler {
uint32_t policy;
uint32_t tick;
};
就绪队列管理
调度器维护可运行任务集合, 并根据优先级快速选择下一个执行目标。
Ready Queue:
Priority 0
Priority 1
Priority 2
...
Highest Ready Task
运行流程
触发调度事件 → 检查就绪队列 → 选择最高优先级任务 → 执行上下文切换 → 进入目标任务执行。
调度策略
HRTOS支持多种调度策略组合:
1. 抢占式优先级调度
2. 时间片轮转
3. 协作式让出
不同策略适用于不同实时任务场景。
扩展说明
HRTOS支持抢占式调度与时间片轮转混合策略, 可在实时性与公平性之间进行权衡配置。
性能影响因素
调度性能主要受以下因素影响:
1. 任务数量
2. 优先级数量
3. 队列管理复杂度
4. 上下文切换成本
5. Tick频率