时间系统模型
实时系统不仅要计算正确,还需要在规定的时间范围内完成规定的工作。 时间系统负责建立软件使用的时间基准,并通过节拍、中断、调度与等待机制影响系统何时响应事件、何时切换任务,以及任务能够在什么条件下满足期限要求。
对 HRTOS 而言,系统时间、任务实际执行时间和外部事件响应时间并不是同一个指标。理解这些时间量之间的关系,是分析调度行为与最坏情况执行时间的基础。
一、三个不同的时间概念
分析实时系统时,首先要区分外部世界的时间、内核维护的时间基准,以及处理器实际执行某段代码所消耗的时间。
这三者存在关联,但不能互相替代。系统 Tick 可以提供软件时间基准,却不直接等于任务的执行时间;任务执行了多少个 CPU 周期,也不能单独决定外部事件何时得到响应。
二、Tick:系统时间的离散基准
Tick 通常指由定时器产生并由内核处理的周期性时间事件。系统可以基于 Tick 推进软件时间、检查超时条件,或执行与节拍相关的调度工作。
如果定时器每隔固定的时间间隔产生一次有效节拍,那么 Tick 周期决定了基于该节拍计数的时间管理粒度。它并不意味着所有任务都只能在每个 Tick 时刻开始运行。
Tick 周期较短
时间管理可以具有更细的节拍粒度,但定时器中断频率通常更高,也可能增加中断处理和内核维护的开销。
Tick 周期较长
周期性节拍的开销可能降低,但依赖 Tick 检查的超时或延时操作,其可观察和处理粒度可能变粗。
三、时间片、延时与超时
时间片与延时机制解决的是不同的问题。时间片用于限制特定调度模式下任务连续占用处理器的时间;延时或超时机制则用于表达任务何时重新具备运行条件,或某个等待条件何时需要被判定为超时。
- 时间片: 影响适用调度模式下的任务运行机会与切换时机。
- 任务延时: 让任务在指定时间条件满足前暂时不参与普通任务运行。
- 等待超时: 将等待条件与时间限制结合;超时后具体执行什么操作,取决于内核接口与应用逻辑。
- 硬件定时器: 可以用于产生时间事件或测量执行间隔,但实际分辨率和精度受芯片及配置限制。
对依赖周期性 Tick 的延时接口而言,调用时刻相对于 Tick 边界的位置可能影响实际等待时长。分析这类接口时,应检查其计数方式、边界条件、时间单位和超时判断实现,而不能只根据参数值推断精确到期时刻。
四、从事件发生到任务响应
实时响应通常从某个外部事件或硬件中断请求开始,到指定的软件动作真正发生为止。要评估响应时间,必须先定义测量的起点与终点。
从事件到任务开始执行的延迟,与从事件到任务完成的总响应时间不同。后者还可能包含任务自身的执行时间,以及执行过程中受到的中断、抢占和资源等待影响。
分析时还应区分中断请求产生、处理器接受中断、中断服务程序开始执行,以及任务代码真正开始运行等不同时间点。
五、延迟由哪些因素构成?
响应延迟可能受到多个阶段影响,但这些阶段并非在所有系统和所有执行路径中都能简单地作为互不重叠的固定项相加。
- 中断接受延迟: 受到中断屏蔽状态、当前指令执行、硬件优先级规则及其他中断活动影响。
- 中断处理开销: 包括入口、状态保存、服务逻辑和退出等实际执行路径。
- 调度相关开销: 包括任务状态处理、执行目标选择,以及相关内核路径的执行成本。
- 上下文切换开销: 当执行目标改变且需要切换上下文时,可能产生额外的保存与恢复成本。
- 任务执行与干扰: 目标任务开始运行后,仍可能受到后续中断、较高优先级任务或其他系统约束影响。
六、平均时间、实测时间与 WCET
时间性能评估至少需要区分三个层次:平均表现、已经观察到的执行时间,以及在明确假设和路径范围内分析得到的最坏情况执行时间。
平均执行时间
可以反映常见工作负载下的性能表现,但平均值无法说明极端执行路径是否满足期限。
实测执行时间
通过 GPIO、定时器或逻辑分析仪测得的结果,可以验证特定硬件、编译版本与测试条件下的实际行为。但测试未覆盖的路径仍可能具有不同的执行时间。
最坏情况执行时间(WCET)
WCET 分析研究指定代码路径和执行条件下的执行时间上界。它需要结合控制流、循环边界、分支条件、指令周期和目标硬件特性,并清楚说明分析范围与假设。
对 HRTOS 而言,基于 8051 机器代码开展指令级时间分析,可以把内核执行路径与具体硬件联系起来。但单条路径的指令周期上界,不等于整个系统的最坏响应时间;系统级分析还需要考虑中断干扰、调度行为和任务竞争。
七、时间确定性与实时期限
实时系统的关键不是每次执行都耗费完全相同的时间,而是系统能否在规定的条件下,对执行时间与响应行为给出足够可靠的约束。
任务的实时需求通常包含触发条件、完成期限、允许的响应时间和故障处理要求。是否满足实时要求,需要把实际或经过分析的执行行为与这些需求进行比较。
- 明确每类关键任务的响应起点与完成终点。
- 确认期限是相对于事件发生、任务释放还是其他参考时刻定义的。
- 分析中断屏蔽、任务竞争、上下文切换和资源等待等干扰因素。
- 针对关键执行路径建立可验证的时间预算与测试场景。
对具有硬实时要求的任务,超过规定期限可能意味着功能正确性失败,而不仅仅是性能下降。但这一判断应来自系统需求,不应脱离具体应用,把所有延迟或超时都一概视为整个操作系统失效。
八、时间系统与内核其他部分的关系
时间系统并不独立工作。它与调度器、中断管理和内存布局共同影响实际运行行为。
- 与调度周期的关系: 时间事件可能改变任务的运行条件,并影响调度与时间片处理路径。
- 与中断管理的关系: 中断屏蔽、响应和嵌套会影响事件处理时机与任务可获得的执行时间。
- 与内存布局的关系: 上下文保存、堆栈操作和不同存储空间的访问指令会影响实际执行开销。
- 与 WCET 分析的关系: 时间系统提供实际时序背景,而指令与控制流分析用于研究指定执行路径的时间上界。
九、时间系统模型的语义总结
时间系统将计时基准、执行行为和实时期限联系起来,使系统能够表达、观察并分析时间相关的运行约束。
Tick 用于提供软件时间基准,调度与中断机制影响事件的处理时机,执行时间分析则研究具体路径需要多少处理器时间。它们共同服务于实时需求,但任何一个单独指标都不足以证明整个系统满足硬实时要求。
对 HRTOS 而言,进一步结合目标芯片、实际编译产物、反汇编、测试结果与明确的时间预算,才能逐步建立从内核运行机制到实时性证据的完整链路。