车载操作系统的调度算法分析与改进
发布时间:2008/5/27 0:00:00 访问次数:343
摘要 当前没有专门为车栽设备设计的实时操作系统,一般都是对通用嵌入式实时操作系统进行裁剪来完成的,需要很大的工作量。本文介绍一种在嵌入式实时系统中调度所面临的限制以及克服这些限制的调度技术;根据uc/os-ii实时嵌入式系统内核的特殊性,在原有优先级调度算法的基础和某车载设备设计的基础上,提出一种车栽实时操作系统内核的改进方法,其特点是实时性强、稳定性高、面向车栽设备应用。
关键词 实时操作系统调度算法 内核 车载设备
引 言
随着现场总线技术、嵌入式微控制技术的发展,现代列车的过程控制已从集中型的直接数字控制系统发展成为基于网络的分布式控制系统。高速列车以保汪旅客乘车安全与舒适为基础,必须对车辆的制动、防滑、车门、供电及空调等设备分别进行控制、检测和诊断;各设备分别由相应的车载微机进行控制,构成各个子系统;子系统之间通过现场总线互联,形成全列车的网络控制系统。实际情况下,车载微机需要对多点的压力、温度以及许多其他的状态参量进行采集与监测.单一编程较为复杂,应选用嵌入式实时操作系统来完成这些任务。任务中有些需要按时间片进行调度,分时完成各个任务;而现有的源码开放的嵌入式实时操作系统一般都是抢占式多任务内核,因此需要对现有实时操作系统的任务调度机制进行改造,从而满足车载操作系统的实际需求。
1 调度算法分析
调度算法是指在有限的处理单元上对具有某些已知特征的任务集执行顺序的设计。在嵌入式实时系统中,任务的执行要面对两种限制:时间限制和资源限制。实时任务要求系统有良好的响应时间以满足截止时间,在嵌入式系统中只有有限的ram和cpu等资源,所以调度的好坏在很大程度上决定了系统的性能。
1.1 rms调度算法
s算法足在1973年由c.l.liu和j.layland提出的。该算法是基于统计任务执行频率的一种任务调度方法。rms算法将最高优先级赋予最高执行频率的任务,以单调的顺序对余下的任务分配优先级。分析中,rms算法作了以下假设:
◇所有任务都是周期性的;
◇任务间不需要同步,没有共亨资源,没有任务间数据交换等问题;
◇cpu必须总是执行优先级最高且处于就绪态的任务,即须用可剥夺型内核调度法。
由于采用抢占式的凋度方式,高优先级的任务就绪后立即抢占正在运行的较低优先级的任务。设系统中有n项不同的任务,由于rms算法要求调度的独立的周期性任务总能满足其截止时间,即要求系统中的所有任务必须满足硬实时条件,于是有下列不等式成立:
式中:uk为任务k最长执行时间,tk是任务k的执行周期,vk/tk即任务k所需的cpu时间利用率。当系统中的任务数n趋于无穷大时,s(n)的值为ln2,即0.693。于是,若要使所有的任务都满足硬实时要求,则有:
亦即所有有时间限制的任务的总cpu时间利用率应低于70%。其实,系统设计中,使cpu的时间利用率达到100%并不好。如果那样,程序就没有修改的余地了,也无法增加新的功能。实际情况下,cpu的时间利用率应在60%~70%以下。rms算法的优点是灵活性强、开销小、可调度件测试简单。但在某些情况下.执行频率最高的任务并非最重要的任务。
1.2 edf调度算法
抢占式edf调度算法是一种动态优先级驱动的调度算法,其中分配给每个任务的优先级根据它们当前对最终截止时问的要求而定。当前请求的截止时间最近的任务具有最高的优先级,而请求截止时间最远的任务被分配最低优先级。这个算法能够保证在出现某个任务的截止时问不能满足之前,不存在处理器的空闲时间。
c.l.liu和j.layland证明了对于一个具有n个任务的集合,截止时间驱动的调度算法的可行条件为:
任务的最长响应时间tr是可测的,须满足tr小于截止时间,任务才能被调度。对于tr可用下式表达:
式中;trun_i为任务i的执行时间;tlok_i为任务i的闭锁时间;tspd_i为任务i的调度开销时间;trdy_j为任务j再次就绪的时间;max{tr/trdy_j}·trun_j为低优先级任务i被高优先级任务j剥夺后,高优先级任务占用的总时间。
抢占式edf调度算法最大的优势在于,当系统的负载相对较低时非常有效,对于任何给定的任务集,只要处理器的利用率不超过100%,就能够保证它的可调度性。edf的劣势在于不能解决过载问题,当系统负载较重时,可能引起大量任务错过截止时间,导致cpu的时间大量花费在调度上,这时系统的性能很低。
1.3 改进调度算法
在嵌入式实时系统中资源非
摘要 当前没有专门为车栽设备设计的实时操作系统,一般都是对通用嵌入式实时操作系统进行裁剪来完成的,需要很大的工作量。本文介绍一种在嵌入式实时系统中调度所面临的限制以及克服这些限制的调度技术;根据uc/os-ii实时嵌入式系统内核的特殊性,在原有优先级调度算法的基础和某车载设备设计的基础上,提出一种车栽实时操作系统内核的改进方法,其特点是实时性强、稳定性高、面向车栽设备应用。
关键词 实时操作系统调度算法 内核 车载设备
引 言
随着现场总线技术、嵌入式微控制技术的发展,现代列车的过程控制已从集中型的直接数字控制系统发展成为基于网络的分布式控制系统。高速列车以保汪旅客乘车安全与舒适为基础,必须对车辆的制动、防滑、车门、供电及空调等设备分别进行控制、检测和诊断;各设备分别由相应的车载微机进行控制,构成各个子系统;子系统之间通过现场总线互联,形成全列车的网络控制系统。实际情况下,车载微机需要对多点的压力、温度以及许多其他的状态参量进行采集与监测.单一编程较为复杂,应选用嵌入式实时操作系统来完成这些任务。任务中有些需要按时间片进行调度,分时完成各个任务;而现有的源码开放的嵌入式实时操作系统一般都是抢占式多任务内核,因此需要对现有实时操作系统的任务调度机制进行改造,从而满足车载操作系统的实际需求。
1 调度算法分析
调度算法是指在有限的处理单元上对具有某些已知特征的任务集执行顺序的设计。在嵌入式实时系统中,任务的执行要面对两种限制:时间限制和资源限制。实时任务要求系统有良好的响应时间以满足截止时间,在嵌入式系统中只有有限的ram和cpu等资源,所以调度的好坏在很大程度上决定了系统的性能。
1.1 rms调度算法
s算法足在1973年由c.l.liu和j.layland提出的。该算法是基于统计任务执行频率的一种任务调度方法。rms算法将最高优先级赋予最高执行频率的任务,以单调的顺序对余下的任务分配优先级。分析中,rms算法作了以下假设:
◇所有任务都是周期性的;
◇任务间不需要同步,没有共亨资源,没有任务间数据交换等问题;
◇cpu必须总是执行优先级最高且处于就绪态的任务,即须用可剥夺型内核调度法。
由于采用抢占式的凋度方式,高优先级的任务就绪后立即抢占正在运行的较低优先级的任务。设系统中有n项不同的任务,由于rms算法要求调度的独立的周期性任务总能满足其截止时间,即要求系统中的所有任务必须满足硬实时条件,于是有下列不等式成立:
式中:uk为任务k最长执行时间,tk是任务k的执行周期,vk/tk即任务k所需的cpu时间利用率。当系统中的任务数n趋于无穷大时,s(n)的值为ln2,即0.693。于是,若要使所有的任务都满足硬实时要求,则有:
亦即所有有时间限制的任务的总cpu时间利用率应低于70%。其实,系统设计中,使cpu的时间利用率达到100%并不好。如果那样,程序就没有修改的余地了,也无法增加新的功能。实际情况下,cpu的时间利用率应在60%~70%以下。rms算法的优点是灵活性强、开销小、可调度件测试简单。但在某些情况下.执行频率最高的任务并非最重要的任务。
1.2 edf调度算法
抢占式edf调度算法是一种动态优先级驱动的调度算法,其中分配给每个任务的优先级根据它们当前对最终截止时问的要求而定。当前请求的截止时间最近的任务具有最高的优先级,而请求截止时间最远的任务被分配最低优先级。这个算法能够保证在出现某个任务的截止时问不能满足之前,不存在处理器的空闲时间。
c.l.liu和j.layland证明了对于一个具有n个任务的集合,截止时间驱动的调度算法的可行条件为:
任务的最长响应时间tr是可测的,须满足tr小于截止时间,任务才能被调度。对于tr可用下式表达:
式中;trun_i为任务i的执行时间;tlok_i为任务i的闭锁时间;tspd_i为任务i的调度开销时间;trdy_j为任务j再次就绪的时间;max{tr/trdy_j}·trun_j为低优先级任务i被高优先级任务j剥夺后,高优先级任务占用的总时间。
抢占式edf调度算法最大的优势在于,当系统的负载相对较低时非常有效,对于任何给定的任务集,只要处理器的利用率不超过100%,就能够保证它的可调度性。edf的劣势在于不能解决过载问题,当系统负载较重时,可能引起大量任务错过截止时间,导致cpu的时间大量花费在调度上,这时系统的性能很低。
1.3 改进调度算法
在嵌入式实时系统中资源非