调度循环(Scheduler Cycle)是 HRTOS 的核心控制闭环,用于在“任务执行流”和“中断事件流”之间持续进行决策更新。
它不是一次性算法,而是一个持续运行的实时决策系统。
每一次循环,都必须在有限时间内完成“可执行性判断 + 最优执行选择”。
调度器首先获取当前系统状态快照:
• 任务状态(Ready / Running / Blocked)
• 中断标志位(Pending Interrupts)
• 资源锁状态(Mutex / Semaphore)
• 时间约束窗口(Deadlines)
这是调度决策的输入空间。
从所有任务中筛选“当前可执行集合(Ready Set)”。
条件包括:
• 不在阻塞状态
• 满足资源依赖
• 未超过调度屏障(Scheduling Barrier)
调度器在 Ready Set 中选择“最优执行任务”。
在 RTOS 中,“最优”不是性能意义,而是:
✔ 满足时间约束
✔ 满足优先级规则
✔ 不破坏系统确定性
这是一个约束优化问题,而不是简单排序。
当前任务被暂停,系统保存 CPU 状态并切换到目标任务。
切换过程必须满足:
• 时间上界可预测(Bounded Switch Time)
• 不引入随机延迟
• 不破坏中断一致性
中断事件可能在任意时刻插入调度循环。
因此调度器必须具备:
✔ 中断感知能力
✔ 即时重新计算能力
✔ 可抢占决策能力
这使调度循环成为“动态重计算系统”。