嵌入式系统之实时系统调度算法

基本概念:

调度:将任务分给处理器,使得所有的任务都可以完成

达到时间:(arrival time or release time ri)可以开始执行的时间

计算时间:所需的CPU时间

DDL:一个任务需要在这个时间之前被做完

开始时间:真正开始执行的时间

结束时间:一个任务执行完的时间

延时:L = f(结束时间) - d(DDL)

超时时间(tardiness or exceeding time)E = max(0,L)

最迟开始时间:(laxity  or  slack  time) X = d - a - C

任务i:同一活动的无限序列称之为实例或者作业,被激活的周期是Ti。最开始的实例叫做相位


feasible:一个调度可以完成它的一系列的约束

schedulable:至少存在一个算法使得它是feasible

optimal:一个算法是最优的,它的开销函数比较小

heuristic:趋向于最优但不是最优


抢占式算法:可以抢走正在执行的任务的CPU

非抢占算法:直到任务结束才可以释放CPU

静态算法:有固定的参数,和现在的序列状态无关

动态算法:与当前执行序列的状态有关系


基本计算:




举栗子:

     


接下来介绍两种经典的周期任务调度算法:

RM和EDF

RM:任务在执行之前就已经赋好了优先级,并不会改变(静态优先级赋值)。本质就是一种抢占式,会被更高优先级抢占。Ti  =  Di

     任意给定两个周期任务,若对任意的优先级赋值都是feasible,那么对于RM的每一个都是feasible。


        RM模型可调度:

   

        CPU使用率:

  


EDF:

         动态赋予优先级

         抢占式

          Di  <=  Ti

          算法描述:当前任务会被别的实例抢占如果它的deadline更早来。如果EDF都不能调度,那么别的就更不能调度。

          判断条件:平均CPU使用率:

          


栗子如下图:



混合任务集合:

任务类型:

周期任务;非周期任务;零星任务(minimum   interrival  time)

后台调度(background  scheduling):





RM——Polling  Server

          优先级不是周期性的,是按照其任务来赋予。


          可以完成其执行·的充分条件:

         周期性任务可以在DDL之前完成的条件(充分非必要):


         非周期任务在DDL之前完成的条件:


EDF——Total  Bandwidth  Server





                      举个栗子:



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值