概述
实时调度用于保证任务在确定时间窗口内完成执行,是RTOS核心能力。 HRTOS采用优先级 + 时间约束联合调度模型。
支持硬实时与软实时任务:硬实时保证必须完成,软实时允许延迟但保证尽量执行。
工作原理
调度器维护就绪队列,根据优先级与任务状态选择执行对象。
高优先级任务就绪时,将立即触发抢占调度。
实时性依赖最坏执行时间控制与抢占式内核设计。
调度规则
1. 高优先级任务优先执行
2. 同优先级任务轮转执行
3. 低优先级任务仅在空闲时运行
4. 新任务就绪可触发抢占
关键接口 / 结构
/* 状态控制 */
os_task_suspend(id)
os_task_resume(id)
os_task_exit()
os_task_delete(id)
/* 调度控制 */
os_task_set_priority(id, pr)
os_task_get_priority(id)
os_task_set_next(id)
/* 查询 */
os_task_get_state(id)
os_task_self()
os_task_is_valid(id)
/* CPU控制 */
os_task_yield()
os_task_suspend_self()
/* 任务创建锁 */
os_lock()
os_unlock()
os_lock_query()
接口覆盖任务生命周期管理、优先级调整、调度触发与资源同步控制。
运行流程
task ready
↓
scheduler scan
↓
priority compare
↓
preempt decision
↓
context switch
↓
task execute
调度在任务就绪、中断唤醒或优先级变化时触发,执行延迟为微秒级。
优先级反转
低优先级任务持锁 + 高优先级等待 + 中优先级运行,会导致反转问题。
HRTOS通过优先级继承与锁机制缓解该问题。
扩展说明
调度性能依赖优先级队列结构与抢占效率。
HRTOS通过位图调度 + O(1)查找机制优化实时性表现。