HRTOS · SCHEDULER

优先级调度

优先级是实时操作系统进行任务调度的重要依据。 理解优先级的分层、调度模式与切换时机, 是分析 HRTOS 任务响应行为和系统实时性的基础。

8051 Native Task Scheduling Kernel Behavior HRTOS 4.0
01

机制概述

优先级调度通过任务的优先级参与运行任务的选择。 当多个任务处于可运行状态时,调度器依据当前调度模式和内核规则, 决定任务的执行顺序以及是否需要发生任务切换。

对实时系统而言,优先级并不是孤立的数字。 它需要与任务状态、调度触发条件、中断处理和上下文切换机制共同理解。 因此,分析 HRTOS 的调度行为,应以实际内核实现和对应配置为准。

阅读重点: 区分任务优先级的高低、调度器何时运行,以及调度器何时真正切换任务。 这三个问题相关,但并不等价。
02

HRTOS 优先级体系

HRTOS 的优先级体系覆盖普通任务、快任务和中断相关执行层级。 这里的数字越大,表示优先级越高。

10
嵌套中断层级
9
中断层级
8
快任务层级
1–7
普通任务优先级范围
0
空闲任务层级
NORMAL TASKS

普通任务

普通任务使用 0–15 号任务槽位;优先级数值用于表达任务的调度级别,空闲任务与普通业务任务应区别理解。

FAST TASKS

快任务

快任务使用独立任务槽位 16、17。任务编号表示任务槽位,不应与任务优先级数值混为一谈。

优先级值描述调度级别,任务 ID 描述任务标识。 二者是不同概念。中断执行层级也不应简单等同于普通业务任务的优先级。
03

优先级模式与时间片模式

HRTOS 提供不同的调度模式。阅读调度行为时, 应先确认系统当前使用的模式,再判断高优先级任务就绪后会发生什么。

观察维度 优先级模式 时间片模式
核心关注点 任务优先级对调度与抢占行为的影响 优先级关系与时间片运行机制的配合
分析重点 任务就绪时的调度时机及是否发生切换 时间片边界、任务优先级和切换条件
验证方式 观察不同优先级任务之间的执行关系 观察时间片到期及任务切换时的执行顺序
不要仅根据“高优先级”几个字,就推导所有模式下的即时抢占行为。 具体结果还取决于当前调度模式、任务状态和内核切换条件。
04

调度触发与任务切换

调度触发表示内核需要重新评估任务运行安排; 上下文切换则是将处理器执行状态从一个任务转移到另一个任务。 触发调度并不意味着每次都必须切换任务。

状态发生变化 任务就绪、阻塞或其他调度事件
执行调度判断 结合当前模式和内核规则
确定运行任务 判断是否需要切换上下文

如果调度判断后当前任务仍然符合运行条件,内核可以继续执行当前任务; 如果调度结果要求运行另一个任务,则需要按照 HRTOS 的上下文管理机制完成切换。

流程图用于说明概念关系,并不代表所有调度事件都经过完全相同的代码路径。 中断进入、嵌套中断和任务上下文切换应结合各自的内核实现分析。
05

任务优先级如何规划

优先级规划应从任务的响应要求出发,而不是简单地把所有重要任务都设置为最高优先级。 如果多个任务长期竞争处理器,优先级配置不合理可能使低优先级任务得不到足够的执行机会。

1
明确任务的响应要求 分析任务触发来源、允许的响应时间,以及错过处理时机的实际影响。
2
区分任务与中断的职责 判断工作应在中断中完成,还是交给任务上下文处理,避免不必要地扩大中断处理负担。
3
控制高优先级任务的执行时间 结合运行频率、执行时间和阻塞行为,评估其对其他任务响应能力的影响。
4
通过实测验证配置 在目标芯片、编译器和实际负载下检查任务切换、中断响应及长时间运行表现。
06

实时性分析与验证

优先级是影响响应行为的重要因素,但优先级本身并不能直接证明系统具有某个确定的最坏响应时间。 要分析实时性,还需要考虑中断屏蔽时间、任务执行路径、上下文切换开销、 更高优先级工作的干扰以及共享资源带来的等待。

MEASUREMENT

实测分析

使用 GPIO、计时器或其他可重复的测量手段,记录任务切换和中断响应的实际时间。

WORST-CASE ANALYSIS

最坏情况分析

结合目标机器码、控制流路径和指令周期,分析指定执行路径的时间上界及其成立条件。

工程原则: 测量结果反映已测试条件下的行为;最坏情况分析需要明确路径、环境与假设。 两者结合,才能更可靠地评估实时系统的时间特性。