实时任务调度最小裕度算法.ppt
上传人:天马****23 上传时间:2024-09-11 格式:PPT 页数:20 大小:433KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

实时任务调度最小裕度算法.ppt

实时任务调度最小裕度算法.ppt

预览

免费试读已结束,剩余 10 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

3.1实时任务的概念3.1.1用顺序执行的程序实现实际应用系统程序执行的结果与它的执行过程无关,不管它是连续不断地执行,还是曾经被事件中断处理程序所中断过,都不影响它的执行结果。如果程序执行时的初始条件相同,则最终结果也相同。以上特点说明了顺序程序的封闭性,所谓封闭性,是指程序一旦运行,其结果不受外界因素的影响。3.1.2用并发执行的任务实现实时应用系统在这里可以看到,任务的运行具有如下几种基本特征:动态特征:任务是某种类型的一个活动,它由创建而产生,由调度而执行,得不到资源而暂停,最后由运行结束或撤消而消亡,因此,任务具有生命期,是动态产生和消亡的。并发特征:若干个任务并发执行,互相竞争CPU的控制权,必须用某种调度算法来决定何时停止一个任务的工作,转而为另一个任务提供服务。独立特征:任务是一个独立的运行单位,有自己必须执行的程序、自己的程序计数器、加工自己的数据、有自己的输入输出。它是系统进行资源分配和调度的独立单位。异步特征:各个任务按照自己独立的速度向前推进,它们的执行是异步的,有多个任务经常需要同步地协调处理某个控制目标或工作对象。系统需要为它们提供一套通信及同步互斥机制。结构特征:任务有其运行状态,必须为每一个任务配置一个任务控制块TCB、任务所要执行的程序代码及任务所要加工处理的数据集组成。3.1.3实时任务的分解3.1.4实时任务的状态3.2实时任务调度3.2.1速率单调算法3.2.2截止期最早优先算法3.2.3可达截止期最早优先算法3.2.4最小裕度算法3.2.5其他的实时调度算法3.2.6实时任务的可调度性对于速率单调算法,任务集的可调度条件,则为:(3.6)当n=2时,ρ应小于0.828。例如,有两个周期任务T1和T2同时开始执行,其执行时间C1、C2和周期P1、P2分别为:C1=30ms,P1=50ms,P2=80ms。如果采用截止期优先算法或最小裕度算法,则ρ=0.975,满足(3.5)式,这两个任务是可调度的,其调度执行情况如图3.6所示:对于(3.6)式,甚至有时ρ=0.88的一组任务,采用速率单调算法时,仍然是可调度的。例如,在上面的例子中,如果把C2和P2分别改为20ms和70ms,而C1和P1不变,这时,ρ=0.886。采用速率单调算法,这两个任务是可以调度的。在不满足(3.6)式情况下,采用速率单调算法,有些任务集仍有可能是可调度的,对于有n个任务的系统,为了检查其可调度性,必须检查其在P1×P2……×Pn时间里,任务的调度执行情况,而这是相当麻烦的。JieWu提出了一个检查可调度性方法。他指出:对一组任务,如果所有任务同时开始,每一个任务都能满足它的第一个截止期,那么,对任意时间开始的组合里,所有任务都能满足其截止期。于是,提出了任务的调度点这一概念。对任务集的可调度性检查便归结为:在周期最长的任务的第一个调度点之前,如果存在其他某个任务的某个调度点,所有任务都可在这个调度点之前得到调度和执行,则该任务集是可调度的,否则,不可调度。例如,有三个任务T1、T2、T3,其执行时间和周期分别为:C1=40ms、C2=50ms、C3=80ms;P1=100ms,P2=150ms,P3=350ms,则ρ=0.962ms。周期最长的任务T3,其第一个调度点是在350ms处,在此之前的调度点有100ms(对T1)、150ms(对T2)、200ms(对T1)、300ms(对T1和T2)。在100ms处的调度点:C1+C2=90<100T1、T2可调度C1+C2+C3=170>100T3有10ms的运行时间在150ms处的调度点:2C1+C2=130<150T1、T2可调度2C1+C2+C3=210>150T3有20ms的运行时间在200ms处的调度点:2C1+2C2=180<200T1、T2可调度2C1+2C2+C3=260>200T3有20ms的运行时间在300ms处的调度点:3C1+2C2+C3=300T1、T2、T3可调度,T3全部运行结束任务集在调度点300ms处可调度,由此可知,该任务集是可调度的,其调度顺序如下图所示: