4. 调度循环(Scheduler Cycle)

系统如何在时间维度上持续做出“谁执行”的决策

核心定义

调度循环(Scheduler Cycle)是 HRTOS 的核心控制闭环,用于在“任务执行流”和“中断事件流”之间持续进行决策更新。

它不是一次性算法,而是一个持续运行的实时决策系统

每一次循环,都必须在有限时间内完成“可执行性判断 + 最优执行选择”。

The scheduler cycle is a continuous real-time decision loop balancing task execution and interrupt events.

1. 系统状态采样(System State Sampling)

调度器首先获取当前系统状态快照:

• 任务状态(Ready / Running / Blocked)
• 中断标志位(Pending Interrupts)
• 资源锁状态(Mutex / Semaphore)
• 时间约束窗口(Deadlines)

这是调度决策的输入空间。

2. 可执行集合构建(Ready Set Construction)

从所有任务中筛选“当前可执行集合(Ready Set)”。

条件包括:

• 不在阻塞状态
• 满足资源依赖
• 未超过调度屏障(Scheduling Barrier)

3. 调度决策计算(Scheduling Decision)

调度器在 Ready Set 中选择“最优执行任务”。

在 RTOS 中,“最优”不是性能意义,而是:

✔ 满足时间约束
✔ 满足优先级规则
✔ 不破坏系统确定性

这是一个约束优化问题,而不是简单排序。

4. 上下文切换执行(Context Switch Execution)

当前任务被暂停,系统保存 CPU 状态并切换到目标任务。

切换过程必须满足:

• 时间上界可预测(Bounded Switch Time)
• 不引入随机延迟
• 不破坏中断一致性

5. 中断融合与再调度(Interrupt Fusion)

中断事件可能在任意时刻插入调度循环。

因此调度器必须具备:

✔ 中断感知能力
✔ 即时重新计算能力
✔ 可抢占决策能力

这使调度循环成为“动态重计算系统”。

语义总结

调度循环的本质不是“调度算法”,而是一个持续运行的实时决策闭环系统。

它连接了任务执行流与中断流,是RTOS时间模型的核心控制器。

The scheduler cycle is not an algorithm but a continuously running real-time decision loop that connects execution flow and interrupt flow.

相关阅读(Related Reading)

上级入口

System View 总览

上一篇(学习顺序)

03 中断流模型(Interrupt Flow)←

下一篇(学习顺序)

05 内存视图模型(Memory View)→

同类型扩展(调度 / 执行系统)

执行流模型
任务生命周期

跨模块关联(系统级理解)

优先级调度模型
任务上下文切换(Context Switch)