H HRTOS 示例
Kernel Behavior Core

真实系统运行

本实验展示 HRTOS 在实际运行中的完整链路:任务创建 → 调度触发 → 中断响应 → 任务切换 → 任务执行。 真实系统运行体现 RTOS 内核的完整协作机制,是理解调度器行为的基础模型。

示例目标

展示 HRTOS 从启动到任务运行的完整过程,说明系统初始化、任务创建、调度运行之间的关系, 展示真实运行环境中的内核行为,帮助用户理解操作系统如何管理实际应用。

运行链路 任务创建 → 调度触发 → 中断响应 → 任务切换
核心机制 就绪队列 + 调度器 + 中断临界区

核心机制

  • 任务创建与就绪队列管理
  • 调度请求触发机制
  • 中断临界区保护
  • 任务切换与恢复
Principle

原理说明

真实系统运行是理解 RTOS 内核行为的基础

真实系统运行(Real System Run)是指 HRTOS 在实际硬件环境中的完整执行过程, 从系统启动、任务创建、调度触发到任务切换和执行的完整链路。 通过观察真实系统运行,可以深入理解 RTOS 内核各组件之间的协作机制。

什么是真实系统运行

真实系统运行是指 HRTOS 在实际硬件上的完整执行过程, 包括任务创建、调度触发、中断响应、任务切换等所有内核行为的真实体现。

为什么需要理解真实运行

理解真实系统运行有助于掌握 RTOS 内核的完整协作机制, 是理解调度器行为、中断处理、任务切换等核心概念的基础模型。

运行链路的核心环节

真实系统运行包含任务创建、就绪队列管理、调度请求触发、中断临界区保护、 调度器执行和任务切换等核心环节,每个环节都至关重要。

系统初始化的作用

系统初始化为任务运行提供基础环境,包括硬件初始化、内核数据结构初始化、 中断向量表配置等,是系统正常运行的前提。

核心判断: 真实系统运行体现 RTOS 内核的完整协作机制,是理解调度器行为的基础模型, 通过观察完整运行链路可以深入理解操作系统如何管理实际应用。
HRTOS Implementation

HRTOS 实现机制

HRTOS 如何实现真实系统运行

在 HRTOS 中,真实系统运行的实现围绕任务创建与就绪队列管理、调度请求触发、 中断临界区保护和任务切换四个核心环节展开。每个环节都经过精心设计,确保系统运行的高效性和可靠性。

任务创建与就绪队列管理

创建方式:通过 os_task_create 创建任务并加入就绪队列

队列管理:维护所有就绪任务的状态和优先级

数据结构:使用链表或数组管理就绪队列

状态转换:任务从 Created 状态进入 Ready 状态

调度请求触发

触发条件:时间片到期、任务主动让出、中断事件

请求方式:通过 os_schedule_request 发起调度请求

中断响应:通过系统 Tick 中断触发调度

调度算法:基于优先级的轮询调度

中断临界区保护

进入临界区:通过 os_enter_critical 禁用中断

保护内容:调度过程、内核数据结构访问

退出临界区:通过 os_exit_critical 恢复中断

设计考虑:最小化临界区时间,提高系统响应性

任务切换与恢复

切换方式:通过 os_task_yield 主动让出 CPU

上下文保存:保存当前任务寄存器和栈指针

上下文恢复:恢复目标任务执行状态

状态转换:任务从 Running 状态进入 Ready 状态

Workflow

工作流程

真实系统运行的完整执行路径

1任务创建阶段:os_task_create 将任务加入 Ready Queue
2调度触发:通过 os_schedule_request 或 Tick 中断触发调度
3中断进入:系统进入 ISR,执行 os_enter_critical 保护调度过程
4调度执行:调度器选择最高优先级任务
5任务切换:通过 yield 或系统调度完成任务切换
os_task_create → Ready Queue → os_schedule_request → interrupt → os_enter_critical → scheduler → os_exit_critical
Core APIs

核心 API

真实系统运行涉及的核心 API

任务创建 os_task_create - 创建任务并加入就绪队列
调度请求触发 os_schedule_request - 触发调度请求
进入中断临界区 os_enter_critical - 进入临界区保护
退出临界区 os_exit_critical - 退出临界区
任务切换请求 os_task_yield - 主动让出 CPU
Expected Result

运行结果

示例执行后的预期行为

任务状态 任务从 Created 状态进入 Ready 状态,最终进入 Running 状态
调度行为 调度器根据优先级选择任务,实现公平调度
中断响应 系统能够正确响应中断,进入临界区保护调度过程
任务切换 任务能够正确切换,上下文得到保存和恢复
系统本质: 本示例的核心是展示 HRTOS 在实际运行中的完整链路,体现 RTOS 内核的完整协作机制, 是理解调度器行为的基础模型。
Important Notes

注意事项

使用本示例时需要关注的关键点

就绪队列管理

就绪队列是调度器选择任务的基础,需要正确维护队列状态。 任务创建后必须正确加入就绪队列,否则调度器无法选择该任务。

调度请求触发时机

调度请求可以通过时间片到期、任务主动让出或中断事件触发。 不同触发方式对应不同的调度策略,需要根据应用场景选择合适的触发方式。

临界区保护

临界区保护是确保调度过程原子性的关键,需要正确使用 os_enter_critical 和 os_exit_critical。 临界区时间过长会影响系统响应性,需要最小化临界区时间。

任务切换开销

任务切换需要保存和恢复上下文,存在一定的性能开销。 在实时性要求高的场景中,需要合理设置调度策略,平衡切换频率和系统响应性。