c语言编程实现rm调度算法,浅析rm与edf实时调度算法.docx

41528d3028836879cd698677c3999917.gif浅析rm与edf实时调度算法.docx

1浅析RM与EDF实时调度算法1引言与非实时系统相比,嵌入式实时系统因其所控制物理过程的动态性,要求运行于其中的单个任务必须满足其时限要求,以确保整个系统的正确性和安全性1。在航空航天、电信、制造、国防等领域,对实时系统有着强烈的应用需求。实时处理和实时系统的研究和应用工作已经有了相当长的历史,在实时任务调度理论、实时操作系统、实时通信等方面取得了大量成果。实时任务调度理论是实时处理技术的核心和关键2。这是因为,实时任务具有时限要求,在一个或多个处理器之间调度实时任务,需要判断是否每个任务的执行都能在其截止期限内完成。如果每个任务的执行都能在其截止期限内完成,则称该调度是可行。可调度性判定就是判定给定的个实时任务在应用N某种调度算法的前提下能否产生一个可行的调度。调度算法的设计要尽可能满足任务可调度性的要求3。2实时调度分类由于实时系统的侧重点不同,实时调度亦有多种分类方式。常见的分类有,根据任务实时性要求的重要程度,分为硬实时调度和软实时调度在硬实时调度中任务必须在其截止期限内执行完毕,否则将产生严重后果。而对于软实时任务,当系统负载过重的时候,允许发生错过截止期限的情况,根据任务是在一个或多个处理器上运行,分为单处理器实时调度和多处理器实时调度,多处理器实时调度又可分为集中式调度和分布式调度;根据调度算法和可调度性判定是在任务运行之前还是运行期间进行的,分为静态调度、动态调度和混合调度;根据被调度的任务是否可以互相抢占,分为抢占式调度和非抢占式调度;根据任务请求到达的情况不同。分为周期性任务调度和非周期性任务调度。不同调度方式具有各自的优缺点,适用于不同类型的实时系统。3RM与EDF调度算法简介21973年,LIU和LAYLAND提出了一种适用于可抢占的硬实时周期性任务调度的静态优先级调度算法速率单调(RATEMONOTONIC,简称RM)调度算法,并对其可调度性判定问题进行了研究。RM算法是一种静态分配优先级算法,它根据任务的周期来分配优先级,周期越小,任务的优先级越高。LIU和LAYLAND在文献4中证明了RM算法是最优的,即对于在任何其他静态优先级算法下可调度的任务集合,在RM算法下也是可调度的。RM算法基于建立在一系列理想假设基础上的理想调度模型,而在应用中,考虑到各种因素的影响,需要对这些假设进行修正5,目前已有大量关于RM算法及其各种扩展情况下的调度算法以及实时任务在这些下的可调度性判定研究的文献。最早截止期优先(EARLIESTDEADLINEFIRST,简称EDF)调度算法是一种动态优先级任务调度算法,它按照当前作业的绝对截止期为其分配优先级,作业的绝对截止期越短,其优先级别越高,相反,作业的绝对截止期越长,其优先级别越低。在EDF调度算法中,具有最高优先级别的作业总是最先得到执行。如果当前有其他较低优先级作业正在执行,则该较低优先级作业被抢占,让位给具有最高优先级的作业执行那个,直至就绪队列中没有高于该作业优先级的作业时,该作业恢复执行。LIU和LAYLAND已经证明,EDF调度算法的可调度利用率等于1,EDF调度算法也是一种最优的调度算法。尽管EDF调度算法在处理器利用率小于等于1的情况下能够实现最优调度,但是,当系统超载时,任务调度成功率降低,切换次数增多,系统的调度性能下降。4相关工作首先对于一些符号、概念、术语进行如下定义第个实时任务;ITI任务集合中任务的数量;N任务的执行时间;IEI任务的周期;IPIT系统运行的时间,;T0T3任务的释放时间;IRIT任务的相对时间限(相对于释放时间);IDI任务的绝对时间限。IDI任务的释放时间是指所有用来开始执行任务的资源都可用的时间,即任务开始执行的时间。任务的绝对时间限是指任务必须完成的时间。任务的相对时间限是指绝对时间限减去释放时间。RM、EDF调度算法基于如下假设条件1高优先级的任务可以抢占低优先级的任务;2没有任务有非抢先的部分,并且抢先的成本可以忽略;3只有处理器资源是竞争的,内存、I/O和其他资源是足够的,即无需竞争;4所有任务都是无关的,不存在先后次序的约束;5任务集合中的所有任务都是周期性的;6任务的相对时间限等于它的周期。这些假设是RM和EDF算法的基础,是对理想情况的研究,在实际实时系统项目中会考虑各种因素的影响。本文提到的混合算法也是基于以上假设。5RM、EDF及混合调度算法分析在RM调度算法中,任务的优先级与它的周期反向相关,如果任务比ITJ的周期小,则比的优先级高。处理器总是优先执行当前处于就绪状态的优ITJ先级最大的任务,并且任务的优先级固定。RM调度算法对于给定周期性任务集可调度性的充分条件是11/12NNIEP在EDF调度算法中,任务的优先级与它的绝对时间限相关,处理器总是优先执行当前处于就绪状态的绝对时间限最早的任务,任务优先级并不固定,随着它们的绝对时间限的接近程度而变化。4EDF调度算法对于给定周期性任务集可调度性的充分必要条件是21NIEP式1和2中是指任务集的工作负载。由于随着值的增加1/NIE1/2N单调递减,所以当时,。这说明RM调度算法比EDF调度算1/2N法能承受的工作负载要低。RM算法虽然承受的工作负载要低,但性能稳定。EDF算法可以承受较高的工作负载,但是一旦过载,其性能急剧下降。另外,RM属于静态调度算法,适合于问题要求比较明确的系统,额外开销小,可预测性好。但是,由于静态调度算法一旦做出调度决定后,在整个运行期间就无法再进行更改,因此,它的灵活性不如动态调度算法,不适合不可预测环境的调度。EDF是一种动态调度算法,需要在变化的环境中做出反应,这类算法应用比较灵活,适合于任务不断生成的动态实时系统中。但是动态调度算法的可预测性差并且运行开销较大。关于混合调度算法的研究,LIU和LAYLAND在文献4中提出了一种方案。对于一个任务集而言,其中任务,这个任务是具有最短周期的任务,采1,2K用固定分配优先级的RM算法调度执行,而余下的任务则采用1,2,KMEDF调度算法执行。这种调度算法只是简单的将任务分为两组,每组分别采用不同的调度算法,并没有很好的将RM与EDF调度算法相结合。5RM和EDF算法的理论发展与实际应用对RM及其扩展可调度性的研究,一方面要从理论上研究更好的最小上界算法,找更优化的确切和构造性算法。另一方面也要对这些算法的性能进行测试、分析和比较。但迄今为止,对这些算法的性能分析都是基于理论上的定性分析或者只是少数几种算法之间的简单比较,这不利于实时系统的开发5。此外,由于RM算法作为代表固定优先级调度的经典实时调度算法,可被应用于实时操作系统RTOS的嵌入式实时系统,而任务的上下文切换开销对此类应用的性能有很大的负面影响。目前所建立的理想化调度理论基本上都忽略5了在非理想资源上调度一个任务集所产生的实现开销,因此实时调度理论与其在特定硬件平台上操作系统内核中的实现存在着很大的差距。EDF调度算法是一种抢占式调度算法,为了适应不可抢占任务的需要,JEFFAY等人在1991年提出了非抢占式EDF调度算法NONPREEMPTIVEEARLIESTDEADLINEFIRST,NPEDF。NPEDF中一个任务一旦执行就要执行完

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值