一、测试背景
在实时操作系统中,任务切换耗时不仅与处理器性能有关,也与内核的调度机制、任务类型及上下文切换路径密切相关。
HRTOS 4.0 支持普通任务与高速任务,并针对不同调度路径进行处理。为了进一步了解两类任务之间的切换性能,本文分别测试时间片模式和调度位模式下的任务切换耗时。
本次测试包括四种情况:
-
时间片模式:普通任务切换到高速任务。
-
时间片模式:高速任务切换到普通任务。
-
调度位模式:普通任务切换到高速任务。
-
调度位模式:高速任务切换到普通任务。
测试通过 GPIO 电平变化标记任务切换过程,并使用逻辑分析仪测量时间间隔。
二、测试环境
| 项目 | 配置 |
|---|---|
| 操作系统 | HRTOS 4.0 |
| 处理器架构 | 8051 |
| 晶振频率 | 11.0592 MHz |
| 任务类型 | 普通任务、高速任务 |
| 测试模式 | 时间片模式、调度位模式 |
| 测试仪器 | 逻辑分析仪 |
| 测试方法 | GPIO 电平变化与时间间隔测量 |
三、测试原理
测试程序创建普通任务 task_a 和高速任务 task_b,并通过 P1.0、P1.1 两个 GPIO 引脚标记不同方向的任务切换。
其中:
-
P1.0:标记普通任务到高速任务的切换。
-
P1.1:标记高速任务到普通任务的切换。
程序通过 OS_KUAI_PROCESS_A 和 OS_SCHED_REASON 配合调度流程,并利用 TF0 触发定时器 0 中断,形成相应的任务切换测试路径。
通过逻辑分析仪观察两个标记信号,可以分别测量普通任务与高速任务之间的双向切换时间。
四、时间片模式测试
4.1 普通任务切换到高速任务
图 1:时间片模式下普通任务到高速任务的逻辑分析仪截图

实测结果:
285.917 μs
该数据反映了本次时间片模式测试配置下,普通任务切换到高速任务对应的测量时间。
4.2 高速任务切换到普通任务
图 2:时间片模式下高速任务到普通任务的逻辑分析仪截图

实测结果:
437.750 μs
本次测试中,高速任务切换到普通任务的测量时间高于普通任务切换到高速任务的测量时间。
需要注意,这些数值是特定测试路径的实际测量结果,并不单独代表处理器执行一次上下文切换所需的纯粹时间。
五、调度位模式测试
5.1 普通任务切换到高速任务
图 3:调度位模式下普通任务到高速任务的逻辑分析仪截图

实测结果:
199.333 μs
在本次调度位模式测试中,普通任务切换到高速任务的测量时间为 199.333 μs。
5.2 高速任务切换到普通任务
图 4:调度位模式下高速任务到普通任务的逻辑分析仪截图

实测结果:
351.583 μs
该结果反映了本次调度位模式测试配置下,高速任务切换到普通任务的测量时间。
六、四组实测数据对比
| 调度模式 | 切换方向 | 实测时间 |
|---|---|---|
| 时间片模式 | 普通 → 高速 | 285.917 μs |
| 时间片模式 | 高速 → 普通 | 437.750 μs |
| 调度位模式 | 普通 → 高速 | 199.333 μs |
| 调度位模式 | 高速 → 普通 | 351.583 μs |
6.1 两种模式下的切换时间差异
根据本次测量数据,可以计算出:
-
普通任务到高速任务:调度位模式比时间片模式少 86.584 μs。
-
高速任务到普通任务:调度位模式比时间片模式少 86.167 μs。
在这两组对应的测试中,调度位模式的测量时间均更短。
6.2 双向切换的差异
在时间片模式下,高速任务到普通任务的测量时间比反方向多 151.833 μs。
在调度位模式下,高速任务到普通任务的测量时间比反方向多 152.250 μs。
这说明,在当前测试配置和测量方法下,两个切换方向的实际耗时存在明显差异。要进一步解释原因,还需要结合 HRTOS 4.0 内部的调度入口、任务上下文处理及时间片相关路径进行分析。
七、结果分析
7.1 调度模式会影响任务切换路径
时间片模式与调度位模式具有不同的调度触发路径。时间片模式涉及时间片相关的调度过程,而调度位模式通过调度触发标志配合内核处理。
本次实测表明,在所测试的两种切换方向上,调度位模式的测量时间均低于时间片模式。
7.2 切换方向也会影响测量结果
普通任务切换到高速任务,与高速任务切换到普通任务,并不一定经过完全对称的内核执行路径。
本次四组数据中,高速任务切换到普通任务的测量时间均高于普通任务切换到高速任务。因此,评估任务切换性能时,应分别记录两个方向,而不是仅使用单一数值代表所有切换场景。
7.3 硬件实测的价值
逻辑分析仪能够直接记录 GPIO 信号的时间变化,为不同调度模式提供可观察、可比较的硬件测量数据。
需要说明,测量值可能包含调度触发、内核处理、GPIO 操作及上下文切换等多个环节。它们反映的是当前测试路径的整体时间表现,不能直接等同于纯上下文切换时间,也不能仅凭本次数据推导系统的最坏情况响应时间。
八、总结
本次对 HRTOS 4.0 的时间片模式与调度位模式进行了四组任务切换实测,得到以下结果:
-
时间片模式,普通 → 高速:285.917 μs
-
时间片模式,高速 → 普通:437.750 μs
-
调度位模式,普通 → 高速:199.333 μs
-
调度位模式,高速 → 普通:351.583 μs
在本次测试配置下,调度位模式的两个方向测量值均低于时间片模式。与此同时,普通任务与高速任务之间的切换耗时也表现出方向性差异。
通过对不同调度路径进行硬件测量,可以更具体地了解 HRTOS 4.0 的任务调度行为,并为后续性能评估和技术文档建设积累数据。