SYSTEM VIEW / 04 / SCHEDULER CYCLE

调度周期模型

Scheduler Cycle · 从任务就绪与调度决策,到上下文切换、执行恢复和下一次调度触发,理解 HRTOS 的运行控制路径。

SYSTEM MECHANISM

调度周期不是简单的任务排序,也不意味着调度器必须不断遍历全部系统状态。 它描述的是:当系统运行条件或调度触发条件发生变化时,内核如何确定后续执行路径,并在任务、中断与上下文之间完成控制权转换。

对 8051 实时操作系统而言,调度过程必须与处理器的寄存器、堆栈、中断入口和返回机制共同考虑。调度算法只是其中一部分,真正的运行行为还取决于内核如何实现这些机制。

任务就绪 调度决策 上下文切换 中断介入 执行恢复
PHASE 01 调度触发 识别运行条件与事件变化
PHASE 02 目标选择 依据任务状态与调度规则决策
PHASE 03 上下文管理 按实际需要完成状态保存与恢复
01

调度周期的核心结构

Scheduling Pipeline

从系统运行角度,可以把调度过程理解为三个相互关联的阶段:形成调度条件、确定执行目标、恢复相应执行上下文。 这些阶段可能由任务主动让出执行权、任务状态变化、时钟事件或中断返回等不同路径触发。

STEP / 01 调度触发 任务状态变化、时钟事件或内核控制路径
STEP / 02 执行目标选择 依据当前可运行任务与调度规则确定目标
STEP / 03 执行上下文转换 必要时保存与恢复处理器执行状态

目标任务开始运行后,系统可能继续执行该任务,也可能因新的事件再次进入调度相关路径。因此,“调度周期”是对运行机制的整体描述,而不是要求每一步都以固定频率重复执行。

A scheduler cycle describes the control path from scheduling triggers to execution selection and, when required, context restoration.
02

调度器依据什么作出决策?

Scheduling Conditions

调度器的决策依据来自内核维护的任务运行状态及其调度规则,而不是对所有可能执行路径进行通用意义上的“最优解搜索”。

1. 可运行任务

只有符合内核运行条件、当前可以参与调度的任务,才可能成为本次调度的执行目标。等待事件或处于阻塞状态的任务,通常不能直接作为普通任务执行目标。

2. 优先级与调度模式

优先级用于表达任务之间的调度关系,但具体选择结果还取决于内核的调度模式、时间片规则、当前执行路径以及相应的状态更新机制。

3. 事件与时间条件

时钟节拍、等待条件满足、任务主动让出执行权,以及中断处理后的返回路径,都可能影响下一阶段的运行安排。并非每个事件都会直接触发一次任务切换。

关键区别: 任务状态发生变化、调度器执行选择、处理器真正发生上下文切换,是三个不同的概念。某次调度判断可能最终选择当前任务继续运行,而不一定产生实际的任务切换。
03

调度决策不等于上下文切换

Context Management

调度器确定下一步执行目标后,内核还需要根据当前执行状态完成控制权转换。如果目标任务与当前任务不同,通常需要处理相应的上下文保存与恢复;如果目标仍是当前任务,则可能无需执行完整的任务切换。

当前执行上下文 寄存器、堆栈与任务执行位置
→
目标执行上下文 恢复对应状态并继续执行

在 8051 架构中,上下文管理尤其需要考虑寄存器组、程序计数器、堆栈使用以及编译器生成的代码。任务切换的实际成本不能只用调度算法本身的计算量衡量。

对 HRTOS 而言,评估调度开销应结合实际内核实现、Keil C51 编译结果、目标芯片指令周期及中断影响,而不能仅根据流程图推导出一个固定的切换时间。

分析原则: 将“调度决策耗时”和“上下文切换耗时”分开测量与分析,才能更准确地理解任务切换的实际成本。
04

中断如何影响调度周期?

Interrupt Interaction

中断路径与普通任务调度路径相互关联,但不能简单地视为同一条流程。中断请求到达后,处理器是否立即接受、能否嵌套、何时退出,以及退出后是否进入任务调度路径,都取决于具体的中断控制与内核实现。

EVENT / 01 中断请求 产生事件,等待处理器接受
HANDLER / 02 中断处理 执行中断服务路径并维护必要状态
RETURN / 03 退出与恢复 按内核机制返回原执行路径或进入后续调度

中断处理可能改变任务的运行条件,也可能增加当前任务的等待时间;但这并不意味着每次中断都会重新选择任务,或每次中断退出都会发生上下文切换。

在支持嵌套中断的系统中,还需要考虑中断优先级、允许嵌套的运行阶段、寄存器保护和堆栈预算。这些因素共同影响调度响应与执行时序。

实时性边界: 支持优先级调度或中断嵌套,并不自动证明系统满足所有硬实时期限。要评估最坏响应时间,还需要分析中断屏蔽时间、执行路径、切换开销和任务竞争等因素。
05

时间片与优先级如何参与调度?

Priority & Time Slice

时间片与优先级是两类不同的调度控制因素。优先级决定任务之间的相对调度关系;时间片机制则可以限制特定调度模式下任务连续占用处理器的时间。

分析 HRTOS 的具体调度行为时,应将优先级定义、时间片配置、任务状态转换和中断路径结合起来,而不是仅凭某一个优先级数值推断所有执行结果。

06

怎样验证调度周期的实际行为?

Verification Methods

调度周期不仅是概念模型,也应能够通过代码审查、指令分析和目标板测试进行验证。不同方法回答的问题不同,宜交叉使用。

证据分层: 流程模型用于说明机制,实测用于说明已观察到的行为,最坏情况分析用于研究规定条件下的执行上界。三者相互补充,但不能互相替代。
07

调度周期模型的语义总结

Model Summary

调度周期描述的是内核如何从调度触发条件进入执行目标选择,并通过必要的上下文管理完成后续运行。 中断、任务状态变化、优先级规则和时间片机制共同影响这条运行路径,但它们并不总是以固定顺序执行,也不必然导致任务切换。

对 8051 实时操作系统而言,理解调度周期需要同时关注调度策略与处理器执行机制。只有进一步结合实际内核代码、编译结果和目标板测试,才能对切换开销、响应时间及其最坏情况作出有依据的判断。

The scheduler cycle connects scheduling conditions, execution selection and context management. Its timing properties must be evaluated against the actual kernel implementation and target hardware.