RTOS(实时系统)调度算法学习日记(一)

因楼主毕设选题为RTOS相关的调度算法,趁着这几天查找资料和论文,将常见的RTOS调度算法进行整理:

一、RTOS(实时系统)简单介绍

RTOS与通用系统(windows、linux、macos)对比,一个很明显的特征是任务具有实时性,比如一个任务交给RTOS,其对应的有截止时间,若在截止时间内未完成则被看作超时,对于任务超时的容忍度不同,RTOS可以分为软实时系统硬实时系统,硬实时系统多用于航空、医疗、汽车(ABS防抱死)等,这类场景对任务超时的容忍度极低,单个任务的超时都会产生及其糟糕的后果。与之对应的是软实时系统,这类主要应用于多媒体、卫星通讯、导航系统,软实时系统允许一定的任务超时。

二、RTOS调度算法分类

RTOS通常是抢占式调度,主要是按照优先级进行任务调度,优先级高的任务会被更早调度到CPU,相同优先级采用时间片轮转法确保多个任务都能使用到CPU。

可以看出,RTOS的调度算法其实就是优先级的分配策略,怎么给不同截止时间的任务设置合理的优先级就是算法要考虑的事情。

调度算法可以分为静态调度算法动态调度算法,其中的静态和动态就是指优先级是否会伴随程序执行而改变。

另外对于RTOS的任务也可以分为周期任务与非周期任务,周期任务就是在给定周期每次都执行一次(可以看作该类任务具有截止时间)。

三、RTOS常见的调度算法

  • 适用于周期任务静态调度算法:单调速率算法(Rate Monotonic Scheduling , RMS) RMS算法介绍
  • 适用于周期任务动态调度算法:最低松弛度优先算法(Lowest Slack Time First , LLF) LLF算法介绍
  • 适用于非周期任务动态调度算法:最早截止时限优先算法( Earliest Deadline First , EDF) EDF算法介绍

下边介绍各自算法的优缺点以及应用场景[1]:

RMA LLF EDF
优点 系统开销小、是最优静态优先级调度算法、适用于高安全性周期性任务 在系统重负载的情况下工作较好 动态优先级策略中的最优算法、实现很高的 CPU 利用率、效率高、容易计算和推断
缺点 CPU 利用率低、不灵活、缺少对突发事件实时处理能力 颠簸现象较为严重、增大了系统开销 系统开销大、很难诊断出即将过载的可能性、比较适用于软实时系统
使用场景

[1]王铮,孙萍.基于嵌入式RTOS的闭环反馈调度算法的研究[J].计算机技术与发展,2007,(11):26-29.

posted @ 2024-12-28 17:07  彧未  阅读(16)  评论(0编辑  收藏  举报