在嵌入式实时操作系统中,RMA 和 RMS 经常一起出现,但含义略有区别:
RMS(Rate Monotonic Scheduling):速率单调调度算法
RMA(Rate Monotonic Analysis):速率单调分析方法
可以简单理解为:
RMS 是一种调度算法,RMA 是对这种调度算法是否可行进行分析的方法。
1. RMS:速率单调调度算法
RMS 是一种静态优先级实时调度算法,主要用于周期性实时任务。
它的核心规则是:
任务周期越短,优先级越高;任务周期越长,优先级越低。
也可以说:
任务执行频率越高,优先级越高。
例如有 3 个周期任务:
| 任务 | 周期 T | 执行时间 C | 优先级 |
|---|---|---|---|
| Task A | 10 ms | 1 ms | 最高 |
| Task B | 20 ms | 3 ms | 中 |
| Task C | 50 ms | 5 ms | 最低 |
因为 Task A 周期最短,所以优先级最高;Task C 周期最长,所以优先级最低。
2. RMS 的基本假设
经典 RMS 通常基于以下假设:
| 假设 | 说明 |
|---|---|
| 任务是周期任务 | 每隔固定周期释放一次 |
| 任务截止时间等于周期 | Deadline = Period |
| 任务之间相互独立 | 无共享资源阻塞 |
| 任务可抢占 | 高优先级任务可打断低优先级任务 |
| 执行时间已知 | 每个任务有最坏执行时间 WCET |
| 单处理器系统 | 一个 CPU 核心 |
实际 RTOS 中可以放宽部分假设,但分析会更复杂。
3. RMA:速率单调可调度性分析
RMA 用来判断一组周期任务在 RMS 调度下是否一定能满足实时性要求。
常用分析方法有两类:
4. 方法一:CPU 利用率判据
对每个任务计算:
其中:
| 符号 | 含义 |
|---|---|
| C | 任务最坏执行时间 WCET |
| T | 任务周期 |
| U | CPU 利用率 |
系统总利用率为:
对于 n 个周期任务,经典 RMS 可调度充分条件为:
当任务数量 n 很大时,上界趋近于:
也就是说:
在经典 RMS 条件下,如果总 CPU 利用率不超过约 69.3%,则任务集一定可调度。
常见 n 值如下:
| 任务数 n | 利用率上界 |
|---|---|
| 1 | 100% |
| 2 | 82.8% |
| 3 | 78.0% |
| 4 | 75.7% |
| 5 | 74.3% |
| ∞ | 69.3% |
注意:
这个判据是充分条件,不是必要条件。
也就是说:
如果利用率低于该上界,一定可调度;
如果高于该上界,不代表一定不可调度,还需要进一步分析。
5. 方法二:响应时间分析 RTA
响应时间分析比利用率判据更精确。
对于任务 τᵢ,其最坏响应时间 Rᵢ 可迭代计算:
其中:
| 符号 | 含义 |
|---|---|
| Rᵢ | 任务 i 的最坏响应时间 |
| Cᵢ | 任务 i 的执行时间 |
| hp(i) | 比任务 i 优先级更高的任务集合 |
| Tⱼ | 高优先级任务 j 的周期 |
| Cⱼ | 高优先级任务 j 的执行时间 |
判断条件:
如果任务截止时间等于周期,则:
只要所有任务都满足该条件,任务集就是可调度的。
6. 举例说明
有如下任务:
| 任务 | 周期 T | 执行时间 C | 利用率 |
|---|---|---|---|
| τ1 | 10 ms | 1 ms | 0.10 |
| τ2 | 20 ms | 3 ms | 0.15 |
| τ3 | 50 ms | 5 ms | 0.10 |
总利用率:
3 个任务的 RMS 利用率上界为:
因为:
所以该任务集在 RMS 下一定可调度。
7. RMS 在 RTOS 中如何体现
在实际嵌入式 RTOS 中,例如 FreeRTOS、RT-Thread、μC/OS 等,通常是固定优先级抢占式调度。
RMS 的落地方式就是:
根据任务周期分配静态优先级,周期越短,优先级越高。
例如:
| RTOS 任务 | 周期 | RMS 优先级分配 |
|---|---|---|
| 采样任务 | 1 ms | 最高 |
| 控制任务 | 5 ms | 较高 |
| 通信任务 | 20 ms | 中 |
| 显示任务 | 100 ms | 低 |
| 日志任务 | 500 ms | 最低 |
这种分配方式适合:
| 场景 | 说明 |
|---|---|
| 周期采样 | ADC、传感器采集 |
| 电机控制 | PWM 控制环 |
| 通信协议 | 周期轮询、状态上报 |
| 医疗设备 | 周期测量、报警检测 |
| 工业控制 | 实时控制任务 |
8. RMS 的优点
| 优点 | 说明 |
|---|---|
| 实现简单 | 静态优先级,不需要运行时动态计算 |
| 适合 RTOS | 和固定优先级抢占调度天然匹配 |
| 可预测性强 | 便于做实时性分析 |
| 开销小 | 调度器复杂度低 |
| 工程可落地 | 适合 MCU、嵌入式控制系统 |
9. RMS 的缺点
| 缺点 | 说明 |
|---|---|
| 只适合周期任务 | 对非周期任务支持不如 EDF 灵活 |
| CPU 利用率不是最高 | 理论保证上界约 69.3% |
| 优先级固定 | 无法根据截止时间动态调整 |
| 共享资源会引入阻塞 | 需要优先级继承、优先级天花板等机制 |
| 任务周期变化时需重新分析 | 不适合频繁动态变化任务集 |
10. RMS 与 EDF 对比
| 项目 | RMS | EDF |
|---|---|---|
| 全称 | Rate Monotonic Scheduling | Earliest Deadline First |
| 优先级 | 静态优先级 | 动态优先级 |
| 规则 | 周期越短优先级越高 | 截止时间越近优先级越高 |
| 理论利用率 | 约 69.3% 保证上界 | 可达 100% |
| 实现复杂度 | 低 | 较高 |
| RTOS 适配性 | 很好 | 需要动态调度支持 |
| 工程应用 | 非常常见 | 理论优势强,工程实现较复杂 |
909



被折叠的 条评论
为什么被折叠?



