HRTOS Scheduler

优先级调度(Priority Scheduling)

基于任务优先级进行调度决策的核心机制。 高优先级任务可抢占低优先级任务,以满足实时性要求。

概述

优先级调度通过任务优先级决定CPU分配顺序,是实时系统的基础调度模型。 HRTOS采用抢占式设计,确保关键任务可在确定性时间内响应。

支持静态优先级与动态优先级扩展。静态模式用于确定性任务, 动态机制用于解决资源竞争与优先级反转问题。

工作原理

系统维护按优先级组织的就绪队列,始终选择最高优先级任务执行。

高优先级任务进入就绪状态时,将立即触发抢占调度。

调度过程基于优先级队列快速查找机制(位图/链表组合), 避免全量扫描,提高实时响应速度。

调度规则

1. 优先级最高的任务优先执行 2. 同优先级任务按轮转或FIFO 3. 低优先级仅在高优先级阻塞时运行 4. 新高优先级任务触发抢占

调度器始终选择当前最高优先级就绪任务。 同优先级任务之间可配置公平性策略。

关键接口 / 结构

// 优先级控制 os_task_set_priority(id, pr) os_task_get_priority(id) // 调度触发 os_task_yield() // 当前任务 os_task_self() // 强制切换(内核级接口) os_task_set_next(id)

接口用于优先级设置、调度触发与主动让出CPU。 任务控制块记录调度所需核心状态。

运行流程

task ready → enqueue ↓ scheduler scan ↓ priority compare ↓ preempt if needed ↓ context switch ↓ task run

调度流程在任务就绪、中断唤醒或优先级变化时触发, 整体执行在微秒级完成以保证实时性。

优先级反转

当低优先级任务持有资源,高优先级任务等待, 中优先级任务持续运行时,会发生优先级反转。

HRTOS通过优先级继承机制缓解该问题。

同时支持优先级天花板策略,用于避免复杂锁竞争场景中的不可控阻塞。

扩展说明

优先级调度是实时系统的核心基础,其设计直接影响系统确定性。

HRTOS通过位图调度优化、抢占式内核与优先级继承机制, 实现低开销、高确定性的调度行为。