01 / Overview

调度器负责什么?

多任务系统中,多个任务可能同时处于可运行状态。 调度器根据系统定义的调度规则,决定哪个任务获得执行机会, 并与任务状态管理、时钟或事件触发机制以及上下文切换协同工作。

调度策略决定任务选择规则;上下文切换负责保存当前执行状态并恢复目标任务状态。 两者相互配合,但承担的是不同职责。

Execution Model

从调度条件到任务运行

调度并不只是“选择最高优先级任务”这一条规则。 具体行为还取决于任务是否就绪、调度触发条件、 当前执行上下文以及系统配置。

调度条件出现 时钟、任务状态变化或内核调度请求
执行调度规则 依据当前系统策略选择目标任务
必要时切换上下文 保存当前状态并恢复目标任务状态
02

调度策略

从三个主题进入,分别理解任务选择规则与运行组织方式。

以下页面分别介绍优先级调度、实时调度相关概念和时间片轮转。 它们是本模块的学习入口;具体算法、触发条件与配置语义应以对应章节及 HRTOS 实际实现为准。

阅读说明: 优先级调度、时间片轮转和实时调度并非在所有系统中互相排斥的三种独立算法。 它们可能描述不同层面的规则。请结合 HRTOS 各章节的具体定义理解,不要仅凭名称推断实现细节。

03

调度与上下文切换

任务选择和任务切换是紧密相关、但职责不同的两个过程。

调度器确定目标任务后,系统还需要通过相应执行路径处理任务现场。 在 8051 平台上,相关工作可能涉及寄存器保存与恢复、栈指针管理、 中断返回路径以及编译器调用约定。具体步骤应以 HRTOS 的调度流程和内核实现为准。

04

理解调度行为的关键问题

阅读具体策略时,建议重点关注以下几个方面。

01
哪些任务可以参与调度? 明确任务就绪条件、阻塞状态以及任务状态变化的处理方式。
02
何时触发调度? 区分时钟触发、任务状态变化、显式调度请求和中断相关路径。
03
何时发生任务切换? 确认调度决策是否导致切换,以及切换过程的具体执行条件。
04
如何验证实时行为? 结合目标平台、编译结果、最坏执行路径分析与测试结果评估响应时间。