嵌入式实时操作系统中实时调度算法综述.docVIP

  • 42
  • 0
  • 约6.54千字
  • 约 9页
  • 2021-02-16 发布于广东
  • 举报

嵌入式实时操作系统中实时调度算法综述.doc

嵌入式实时操作系统中实时调度算法综述 摘要:实时调度是指在有限的系统资源下,为i系列任务决定何吋运行,并分呢任务运 行除CPU之外的资源,以保证其时间约束、时序约束和资源约束得到满足。一?个实时系统可 以山I处理器系统來实现,也可以用多处理器系统来实现n实吋调度算法是保障实吋系统时 限性和高可靠性的最重要手段之一。 关键词:嵌入式;实时操作系统;实时调度算法;RTOS; RMS 引言 嵌入式系统在当今的生产和生活中得到了广泛的应用,鉴于嵌入式实时系统的特点,要 求任务调度等实时内核功能精简和高效。综合了EDF和RM调度策略的CSD调度策略,更加适 合嵌入式系统的特点,满足英内核的要求。任务调度策略是实时系统内核的关键部分,如何进 行任务调度,使得各个任务能在其期限之内得以完成是实时操作系统的一个重要的研究领 域。它的精简和高效,对提高低处理能力,小内存系统整体性能具有重大的意义。 RTOS概述 RTOS,即:实吋系统(Real-time operating system),实时系统能够在指定或者确定 的时间内完成系统功能和外部或内部、同步或异步吋间做出响应的系统。它的止确性不仅依 赖系统计算的逻辑结果,还依赖于产生这个结果的吋间。因此实时系统应该在事先先定义的 时间范闌内识别和处理离散事件的能力;系统能够处理和储存控制系统所需耍的大量数据。 对一般的程序来说,大多数是考虑指令执行的逻辑顺序,指令何时执行并不重要。而对实时 应用系统的程序就不一样,当外部某激励出现时,系统必须以一定的方式和在限定的时间内 响应它,如果LL超时,那怕执行结果是止确的,系统也认为是失效的。实时操作系统通常被 分为软实时操作系统和硬实时操作系统。前者意味看偶尔错过时限是可以容忍的;后者意味 着执行过程不但必须正确而且必须准吋。在实吋操作系统中,系统将程序分成许多任务(或 进程),啲每个任务的行为都预先可知,或者是有明确的功能,系统根据一定的调度原则, 决定谁可収得执行权,这就是RTOS的核心所在。 实时调度算法 实时调度算法可以分为4类:巾?处理器静态调度算法、多处理器静态调度算法、甲处理器动 态调度算法、多处理器动态调度算法。下而分别分析嵌入式操作系统屮采用的齐种调度方法, 以及这些调度方法是如何满足实时性应用的实时要求的。 1速率单调算法 速率单调算法是一个经典的算法,它是针对那些响应和处理周期性事件的实时任务的, 它事先为每个这样的实时任务分配一个与事件频率成止比的优先级。 实现时,就绪队列中的所有任务按照优先级Priority排队,优先级最高的任务排在队首, 当处于运行态的任务,山于某种原因挂起时,只要把就绪队列的首元素从就绪队列屮取下, 使运行任务指针pRunTask指向该元素即可,如果是处于其他状态的任务变为就绪状态,而挂 于就绪队列时,则必须对运行任务和就绪队列首元素的任务进行比较,优先级高的任务占有 C P Uo 2截止期最早优先算法 截止期最早的任务优先级最高,对于周期任务,其截止期即为下一周期开始的时间, 有时,把这种算法称为期限驱动算法,就绪队列中的任务,按截止期排序,截止期早的任务 排在队首,这个算法的处理,与速率巾?调算法类似,不同的是,现在是对截止期进行判断, 按截止期垠早优先策略处理。 3可达截止期最早优先算法 这个算法是对截止期瑕F优先策略的改进,就绪队列的任务,仍然按照截止期顺序排队, 但是在调度吋超过截止期的不了调度,如果记为t为系统当前时间,E为任务估算执行吋间, p为任务实际执行时间,d为截止期。则 =d-(t + E- p)0 表示该任务的截止期是当前可达到的,于是,只要在调度时,按照上式计算被调度就绪 任务的dl,若大于0,就进行调度,否则,就夭折它。 这种算法里,系统吋钟管理部分中的时钟滴答中断处理程序,必须对运行任务的运行 时间进行累计。空闲任务IDLE的截止期DeadTime应置为尢限大,而估算时间PredictedTiem 可为0,从而在进行任务调度吋,可以保证就绪队列中至少有一个就绪任务,满足调度要求。 4最小裕度算法 在上述算法中,优先性山截止期时间的早晚而定,可能使一些不可达截止期的任务,因 來不及处理而夭折,另外一种算法是:计算任务的富裕时间,称为裕度,裕度小的,优先级 高,以弥补上述情况的不足。 在这种算法里,时钟的滴答中断,不但要累计运行任务的执行时间,还要对就绪队列上 的任务的裕度进行累减,实际上(3.1)式中的dl,便是这里所谓的裕度,山于正在运行的任 务,其裕度不变,血就绪队列上的任务,其裕度随着时间的推移血减少,从血使得它们的优 先权,动态地发生变化。 5其他的实时调度算法 1、价值最高优先算法 在这种算法里,每一个任务有一个价值函数,价值报大,优先级最高。 vd=M + e_p

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档