HRTOS Documentation

调度流程(Scheduling Flow)

调度流程描述RTOS如何在多个任务之间选择执行对象, 并通过优先级、就绪状态与时间片机制完成任务切换决策。

System Scheduler Task Switching

概述

调度器是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频率