什么rm调度算法

如题所述

一个任务的响应时间(responsetime)是指一个任务请求,这个任务实际完成的时间跨度.在静态调度中,任务的临界时刻(criticalinstant)这个概念被首先提出来.它被定义为一个特定的时刻,如果在这个时刻有这个任务的请求,那么这个任务就会需要最大的响应时间.由此得出
定理1:一个任务的临界时间就是比这个任务优先级高的所有任务同时发出请求的时刻.
定理1的价值在于它找到了一个证明一个调度算法能否调度任一任务集充分必要条件,那就是所有任务同时请求执行的时的情况下每个任务仍能满足各自的期限,那么这个任务集就可以被这个调度算法调度.
有了这个推论,我们就可以证明RM调度的最优性了.
定理2:如果一个任务集能够被静态调度,那么RMS算法就能够调度这个任务集.从这个意义上说,RMS是最优的静态调度算法.
这个定理的证明方法就是有名的交换法.证明思路如下:
假设一个任务集S采用其他静态优先级算法可以调度,那么总有这样两个优先级相邻的任务i和j,有TiTj,而Pi≤Pj.把Ti和Tj的优先级Pi和Pj互换,明显可以看出这时S仍然可以调度,因为在所有任务同时请求的情况下,交换这两个任务不会影响其它任务的完成时间,同时这两个任务都可以在各自期限内完成.按照这样的方法,其他任何静态优先级调度最终都可以转换成RM调度.
RMS已被证明是静态最优调度算法,开销小,灵活性好,是实时调度的基础性理论。即使系统瞬时过载,也完全可预测哪些任务丢失时限。缺点是处理机利用率较低,最坏的情况下,当n→∞时,不超过ln2(≈70%)。另外,RMS是充分但非必要条件。而在一般情况下,对于随机的任务集大约只有88%.70%或者88%的处理器利用率对于许多实时应用来说是一个严重的限制,动态调度算法如最早截止期最先(earliestdeadlinefirst,EDF)或者最少空闲时间最先(leastlaxityfirst,LLF)已经被证明是最优的,并且能够实现100%的处理器利用率.
具有资源同步约束的RMS调度
当实时任务间共享资源时,可能出现低优先级任务不可预测地阻塞高优先级任务执行的情况,叫优先级倒置。这时RMS算法不能保证任务集的调度,必须使用有关协议控制优先级的倒置时间。常用的协议有优先级顶级协议和堆资源协议,使用这些协议可使优先级的倒置时间最多为一个资源临界段的执行时间,并且不会发生死锁。
基于RMS的非周期任务的调度
实时系统中的非周期任务可采用延迟服务器算法或随机服务器算法进行调度。它们的最大特点是可在周期任务的实时调度环境下处理随机请求。两者的基本思想是将非周期任务转化成周期任务,再利用RMS算法进行调度。前者用一个或几个专用的周期任务执行所有非周期任务,这种周期任务叫非周期任务服务器
。根据周期大小,服务器有固定优先级,服务器的执行时间被称为预算,它在每个服务器周期Ts的起点补充。只要服务器有充足的预算,就可在其周期内为非周期任务服务。该算法实现简单,但可调度性分析较难,有时会出现抖动,可能发生一个非周期任务在相邻两个服务器周期中连续执行2倍预算的现象,与RMS理论不符,需要适当修改RMS算法。随机服务器算法与延迟服务器算法相似,但预算不是在每个周期起点补充,而是在预算消耗Ts时间之后再补充。该算法与RMS分析算法一致,但实现复杂。
EDF最早截止时间优先算法(EDF)也称为截止时间驱动调度算法(DDS),是一种动态调度算法。EDF指在调度时,任务的优先级更具任务的截止时间动态分配。截止时间越短,优先级越高。EDF有如下定理:
定理2:如果一个任务集按EDF算法调度,当且仅当U<=1。
EDF的特点(1)任务模型:与RMS调度相同。
(2)优先级分配方法:动态分配,距要求时限所剩时间越短优先级越高。
理论上,EDF和LLF算法都是单处理器下的最优调度算法。但是由于EDF和LLF在每个调度时刻都要计算任务的deadline或者空闲时间,并根据计算结果改变任务优先级,因此开销大、不易实现,其应用受到一定限制。多处理器实时调度
温馨提示:答案为网友推荐,仅供参考
相似回答