返回内核架构
HRTOS / EXECUTION FLOW

内核执行流程 Kernel Execution Flow

从事件发生到执行权转移,理解 HRTOS 内核如何协调中断处理、调度判定与任务上下文。 本页面重点说明执行路径之间的关系,并区分普通事件处理、发生任务切换以及任务恢复等不同阶段。

Execution Path Scheduling Decision Context Switching 8051 Architecture
01

流程概述

OVERVIEW

内核执行流程不是每次都完整经历一次任务切换,而是根据事件类型、当前执行环境和调度结果,选择相应的处理路径。

对实时操作系统而言,事件处理与任务切换是两个相关但不同的过程。 中断可以完成必要的事件处理后返回原执行路径;当系统条件要求改变运行任务时, 内核才需要通过相应的上下文管理路径完成执行权转移。

事件处理 识别事件来源,执行对应的处理逻辑。
调度判定 根据当前状态和调度规则确定后续执行安排。
上下文切换 在需要改变执行主体时保存和恢复必要的处理器状态。
02

事件入口与内核处理

EVENT ENTRY & KERNEL PROCESSING

内核相关处理可以由多种事件引起,但不同入口并不必然采用完全相同的执行路径。 理解入口差异,是分析调度行为和上下文切换成本的前提。

INTERRUPT

硬件中断入口

处理器响应中断后进入相应的中断处理路径。中断服务程序执行必要操作, 并按照内核的中断管理规则处理退出及可能涉及的调度。

SYSTEM API

系统 API 调用

任务通过内核 API 请求延时、同步、通信或其他服务。 如果调用改变了任务状态或影响了可运行任务集合,系统后续执行可能受到调度规则影响。

TIME / STATE

时间与任务状态变化

系统时钟、等待条件满足或任务状态更新,可能使任务进入就绪状态, 但任务变为就绪并不意味着处理器必然立即切换到该任务。

关键区别: 事件发生、任务变为就绪、调度器决定更换任务,以及真正完成上下文切换,是不同的逻辑阶段。 实际实现中,它们可能在同一执行路径内衔接,也可能由不同入口分别完成。
03

执行路径与分支

EXECUTION PATH & DECISION BRANCHES

以下流程用于表达内核控制逻辑的概念关系。 具体入口、状态保存时机和调度实现,应结合对应版本的源码及处理器执行机制理解。

CONTROL FLOW MODEL CONCEPTUAL VIEW
01

事件或内核请求发生

例如硬件中断、系统 API 调用、时间事件或任务状态变化。

EVENT / REQUEST
02

进入相应处理路径

根据事件来源和当前执行环境,进入中断处理、内核服务或相关控制逻辑。

ENTRY / PROCESSING
03

更新状态并进行必要的调度判定

检查任务状态及相关调度条件,确定是否需要改变后续执行安排。

STATE UPDATE / SCHEDULING
04

是否需要更换运行任务?

根据实际调度结果选择继续原执行路径,或进入任务上下文切换路径。

EXECUTION DECISION
路径 A / 不切换

继续原执行路径

如果无需更换运行任务,则按照对应的返回路径继续当前任务或完成中断处理。

返回原执行环境或继续处理
路径 B / 发生切换

保存与恢复上下文

按照内核实现保存必要的当前执行状态,选定目标任务,并恢复目标任务所需的上下文。

转移执行权并恢复目标执行路径
注意: 图中展示的是逻辑分支,不代表 HRTOS 在所有入口中都执行相同的统一调度函数。 某些内核路径可能具有专门的入口、返回约定或切换机制。
04

上下文保存与恢复

CONTEXT SAVE & RESTORE

上下文切换的核心,是让处理器能够从一个任务的执行状态转移到另一个任务, 并在适当的时候继续原任务此前尚未完成的执行过程。

SAVE

保存当前执行状态

根据具体切换入口和处理器约定,保存恢复原任务所需的寄存器、栈指针或其他上下文信息。 具体保存集合由实现决定。

SELECT

确定目标执行主体

根据调度结果选择后续运行的任务或相应执行路径。 调度决策与底层寄存器恢复属于相互关联但职责不同的环节。

RESTORE

恢复目标上下文

恢复目标执行主体继续运行所需的状态,并通过相应返回或切换机制继续执行。 恢复过程必须符合具体处理器和编译器的约定。

8051 平台的特殊性: 寄存器组、堆栈、内部 RAM 布局、中断返回机制和编译器调用约定都会影响上下文设计。 因此,不能仅依据通用 RTOS 的流程图推断 HRTOS 的实际保存顺序或切换开销。
05

执行时延与路径分析

LATENCY & PATH ANALYSIS

分析内核实时性能时,应区分中断响应、调度判定、上下文切换和任务开始执行等不同时间区间。 不同指标对应不同的起止事件,不能直接视为同一个延迟值。

INTERRUPT

中断响应时间

从约定的中断请求或触发时刻,到系统开始执行相应中断处理代码之间的时间。 测量时需要明确中断屏蔽、当前指令和优先级等条件。

SCHEDULER

调度判定开销

内核完成必要状态处理、检查调度条件并形成调度结果所消耗的时间。 其范围应由实际测试方法明确界定。

SWITCH

上下文切换开销

完成必要的上下文保存、目标状态恢复及相关切换操作的时间。 测量结果取决于所采用的入口、路径和测试边界。

对具体实时性结论,应结合测量方法、目标芯片、编译配置及最坏情况分析结果, 而不是仅根据架构图估算。

06

进一步阅读

RELATED ARCHITECTURE DOCUMENTATION

如果需要从不同层次理解执行流程,可以继续查看调度决策、中断控制与任务管理的相关文档。

SCHEDULING

调度器架构

理解任务选择、调度策略与运行状态之间的关系。

INTERRUPT

中断架构

理解中断入口、嵌套处理与中断返回对执行路径的影响。

TASK

任务管理

理解任务状态、上下文组织及任务生命周期。

下一步:理解调度决策

从执行流程继续深入,了解内核如何确定后续执行主体。

查看调度器 →