完整调度流程(Full Schedule Flow)
本页面描述HRTOS内核从中断触发到任务切换的完整调度链路, 覆盖中断入口、调度决策、上下文切换与任务恢复全过程。
机制定义
Full Schedule Flow = 中断触发 → 调度判断 → 任务选择 → 上下文切换 → 任务恢复
内核决策模型
Kernel Decision = Interrupt Context + Ready Queue + Priority Evaluation + Switch Condition
执行流程
1. 中断触发
系统Tick或外部中断进入内核态。
2. 保存上下文
当前任务寄存器与栈状态被保存。
3. 调度判断
调度器评估Ready队列优先级。
4. 任务切换
选择最高优先级任务执行。
5. 恢复执行
恢复目标任务上下文并跳转执行。
内核API执行链
os_save_context()
保存当前任务寄存器与栈状态。
os_scheduler_run()
调度器执行优先级计算与任务选择。
os_context_switch()
执行任务切换。
os_restore_context()
恢复目标任务执行状态。
演示代码
#include "HRTOS.h"
void schedule_flow_demo(void)
{
os_tick_disable();
os_save_context();
if(os_scheduler_run() == SWITCH)
{
os_context_switch();
}
os_restore_context();
os_tick_enable();
}
系统意义
内核调度流程是RTOS实时性的最终执行路径, 它决定系统在中断、调度与任务切换之间的整体响应效率与确定性。