- 外部中断:响应外设或外部信号,并执行相应的中断处理程序。
- 系统 Tick:推进系统时间,并根据内核实现处理超时与时间相关事件。
- 内核操作:例如任务延时、消息传递或资源释放,可能改变任务状态。
System Model
系统运行模型
HRTOS 的运行过程涉及中断响应、任务状态变化、调度决策、上下文切换与时间约束。 系统模型用于描述这些机制之间的关系,并为执行路径分析、实时性评估和工程验证建立统一的分析框架。
从事件到执行,再到时间验证
系统运行不是所有模块依次执行的固定流水线,而是由事件触发、 内核状态变化、调度决策和实际执行共同构成的动态过程。
说明:以上是用于理解系统机制的概念模型,不代表每次事件都会触发任务切换, 也不构成对所有执行路径均已获得形式化时间上界的声明。
事件与中断处理
事件是系统运行过程中的触发因素。外部中断、系统 Tick 和内核通信操作, 可能引起任务状态变化或调度需求,但它们的执行路径并不完全相同。
任务状态与调度决策
任务状态描述任务是否具备执行条件;调度器则根据可运行任务、 优先级及调度策略决定后续执行对象。两者相关,但不是同一个概念。
Ready:任务已具备运行条件,等待获得处理器。
Running:任务当前正在执行。
Blocked:任务正在等待时间、消息或其他事件。
具体状态定义、状态转换和边界条件,以 HRTOS 对应版本的实际实现为准。
调度器根据当前任务状态和调度规则,确定接下来应执行的任务或内核路径。
优先级、时间片、任务就绪情况和中断返回路径,都可能影响最终执行结果。
调度决策不等于任务切换:若选中的执行对象未发生变化,可能不需要切换任务上下文。
执行路径与上下文切换
执行流描述处理器在任务代码、中断处理程序和内核路径之间的转移。 它是连接调度机制与时间分析的关键部分。
- 任务持续执行,直到发生调度点、中断或其他控制流转移。
- 中断处理可能改变系统状态,并影响当前任务的后续执行。
- 当调度结果要求更换执行任务时,内核需要按照实现规则保存和恢复相应上下文。
- 中断返回、任务恢复和嵌套中断的具体顺序取决于目标处理器及内核实现。
Tpath = Tinterrupt + Tkernel + Tschedule + Tcontext + Ttask 这是用于拆分执行路径中时间开销的分析框架。 各项是否发生、是否重叠及如何计入,应根据具体路径定义; 不能直接将该表达式视为适用于所有路径的固定计算式。
详细机制参见 Execution Flow、 Interrupt Flow 和 Scheduler Cycle。
时间约束与实时性分析
实时系统不仅关注功能是否正确,还需要关注结果是否在规定时间内产生。 时间约束必须结合具体任务、事件路径与系统负载进行分析。
- 中断响应时间:从规定的中断事件发生,到指定响应点之间的时间。
- 调度与切换开销:内核完成调度决策及必要上下文切换所消耗的时间。
- 执行时间:指定代码路径在目标硬件和明确环境条件下所需的处理器时间。
- 截止时间:任务或响应必须满足的时间约束。
R ≤ D R:按明确边界定义的响应时间
D:对应事件或任务的截止时间
WCET(最坏执行时间)分析、响应时间分析和压力测试可以提供不同层面的证据, 但它们回答的问题并不相同。只有明确目标硬件、编译结果、执行路径、 中断条件和分析边界,才能解释时间结论的适用范围。
相关内容参见 Time System 与 Deterministic Chain。
资源与干扰因素
处理器时间并非只由任务代码长度决定。中断活动、临界区、资源竞争、 存储器访问以及上下文管理开销,都可能影响实际响应时间。
内存布局与资源约束参见 Memory View。
系统模型如何用于工程验证
将抽象的系统运行关系转化为可检查的工程对象:先固定目标环境, 再界定执行路径,建立时间证据,最后评价约束是否满足。
系统模型的边界
系统模型帮助组织运行机制和时间约束,但模型本身不等于完整的实时性证明。
系统模型提供的是一种组织运行机制和时间约束的分析框架, 并不自动证明系统具有确定的最坏响应时间,也不意味着所有路径 都已完成形式化验证。
对 HRTOS 的实时性进行评价时,应区分架构设计、实现机制、 静态时间分析、目标硬件测量与长期压力测试等不同证据。 这些证据相互补充,但不能彼此替代。
目标是让系统行为更容易理解、分析和验证,并逐步提高关键执行路径的可预测性。
系统模型关系
System View 从不同角度描述同一套系统:执行路径、任务状态、中断行为、 调度规则、内存资源与时间约束共同构成完整的运行视图。
执行流 → 任务生命周期 → 中断流 → 调度周期 → 内存视图 → 时间系统 → 确定性因果链