0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

车载调度算法的改进设计及应用分析

电子设计 来源:单片机与嵌入式系统应用 作者:刘建伟;焦风川;牛 2021-04-02 14:23 次阅读

作者:刘建伟;焦风川;牛涛;申建德;王蕾

1 引 言

随着现场总线技术嵌入式微控制技术的发展,现代列车的过程控制已从集中型的直接数字控制系统发展成为基于网络的分布式控制系统。高速列车以保汪旅客乘车安全与舒适为基础,必须对车辆的制动、防滑、车门、供电及空调等设备分别进行控制、检测和诊断;各设备分别由相应的车载微机进行控制,构成各个子系统;子系统之间通过现场总线互联,形成全列车的网络控制系统。实际情况下,车载微机需要对多点的压力、温度以及许多其他的状态参量进行采集与监测.单一编程较为复杂,应选用嵌入式实时操作系统来完成这些任务。任务中有些需要按时间片进行调度,分时完成各个任务;而现有的源码开放的嵌入式实时操作系统一般都是抢占式多任务内核,因此需要对现有实时操作系统的任务调度机制进行改造,从而满足车载操作系统的实际需求。

2 调度算法分析

调度算法是指在有限的处理单元上对具有某些已知特征的任务集执行顺序的设计。在嵌入式实时系统中,任务的执行要面对两种限制:时间限制和资源限制。实时任务要求系统有良好的响应时间以满足截止时间,在嵌入式系统中只有有限的RAMCPU等资源,所以调度的好坏在很大程度上决定了系统的性能。

2.1 RMS调度算法

RMS算法足在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算法的优点是灵活性强、开销小、可调度件测试简单。但在某些情况下.执行频率最高的任务并非最重要的任务。

2.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的时间大量花费在调度上,这时系统的性能很低。

2.3 改进调度算法

在嵌入式实时系统中资源非常有限,所以开销要尽可能减小;而RMS和EDF调度算法的问题就在于它们的开销——运行开销和调度开销。本文以uC/OS-II为例,结合Linux的调度算法,对uC/OS-II内核的任务调度算法进行改进.使其成为抢占式与时间片轮转调度相结合的调度算法,而系统的开销并无多大改变。

以车载系统中常用的数据采集任务为例,可将uC/OS-II就绪表中的8个进程设为数据采集专用的进程。对于这8个进程,采用时间片轮转的任务调度算法,在TCB控制块中增加一项变量counter作为任务调度的权值。如果就绪队列中有优先级比这8个进程高的任务,则无条件让出CPU使用权,系统执行任务切换程序。如果当前就绪队列中优先级最高的进程属于数据采集专用的8个进程之一,则顺序遍历所有就绪的数据采集专用进程,计算其时间片counter的值,取出时间片最大的进程运行。若遇到时间片大小相同的进程,则取出优先级高的进程运行。改进后的任务调度算法如下:

3 应注意的其他问题

(1)微型化

车载设备所能提供的资源有限,所以车载操作系统必须做到小巧以满足系统硬件的限制。微内核是一种机制与策略分离的开放式设计思路,已经逐步取代了原来的单核概念,成为操作系统结构设计的主流。微内核思想带来的模块性及可配置性,适合于嵌入式应用环境的需求。

(2)强实时性

车载操作系统工作在实时性要求很高的环境中,这就要求其必须将实时性作为一个重要的方面来考虑。在实时系统中,基于任务结束期限的调度是最理想化的调度算法,但是难以实现。现在实时性的保证主要依靠基于优先级的抢占式调度。在车载应用环境中,不同任务、不同优先级的可抢先调度基本能够满足实时性的要求,但局限性很大;如果根据实际情况对原有的调度策略进行改进,则会给系统的开发带来了很大的方便。

(3)高稳定性

车载设备一旦开始运行就不需要人过多地干预。在此条件下,负责系统管理的车载操作系统要具有较高的稳定性。

(4)可裁剪

由于车载设备应用目的不同,所以车载操作系统必须能够根据应用的要求进行裁剪,去掉多余的部分,或者简化相应的模块。

4 结语

车载操作系统内核调度策略是针对车载系统应用环境而设计的,满足其任务抢占调度与时间片轮转调度相结合的设计要求,同时该操作系统又具有微型化、实时性强、可裁剪等特点。目前,该系统已进入详细改造设计阶段,下一步将对该操作系统进一步实行移植测试,使其更好地满足车载设备的要求。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18274

    浏览量

    288362
  • 控制系统
    +关注

    关注

    41

    文章

    5962

    浏览量

    108698
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10437

    浏览量

    206527
收藏 人收藏

    评论

    相关推荐

    一种改进的SEDF调度算法

    【摘要】:Xen由于其很低的性能损失,而逐渐成为最受欢迎的虚拟化管理工具之一.但是,它的SEDF调度算法存在在SMP下不能支持全局负载平衡的问题.本文针对此问题提出一种名为IEDF的改进算法
    发表于 04-24 10:03

    调度算法是什么?车载操作系统内核调度策略应注意哪些问题?

    调度算法是什么?车载操作系统内核调度策略应注意哪些问题?
    发表于 05-13 07:02

    车载操作系统的调度算法分析改进,不看肯定后悔

    车载操作系统的调度算法分析改进,不看肯定后悔
    发表于 05-14 06:42

    基于QoS改进的Min-Min网格调度算法

    在对现有网格调度算法的研究基础上,仔细分析了传统的 Min-Min 调度算法,指出了该算法所存在
    发表于 01-27 14:59 8次下载

    基于分段思想的改进的Min-Min网格调度算法

    基于分段思想的改进的Min-Min网格调度算法 摘要:以传统、经典的Min-min调度算法为基础,提出了一种基于“分段”思想的
    发表于 10-13 14:35 861次阅读
    基于分段思想的<b class='flag-5'>改进</b>的Min-Min网格<b class='flag-5'>调度</b><b class='flag-5'>算法</b>

    一种改进公交调度算法的研究

    智能公交调度是一个复杂的非线性问题,利用遗传算法,可以很大程度上减少检索次数,同时引入了一种改进的遗传算法,它在已有的算法诸优点的基础之上,
    发表于 11-16 14:10 0次下载
    一种<b class='flag-5'>改进</b>公交<b class='flag-5'>调度</b><b class='flag-5'>算法</b>的研究

    Hadoop中任务调度算法改进

    针对Hadoop0.20.0中任务调度算法存在的不足,提出一种基于改进遗传算法(IGA)的任务调度算法
    发表于 12-17 10:57 0次下载
    Hadoop中任务<b class='flag-5'>调度</b><b class='flag-5'>算法</b>的<b class='flag-5'>改进</b>

    云工作流任务调度的模拟退火遗传改进算法

    云工作流任务调度的模拟退火遗传改进算法_黄婷婷
    发表于 01-03 17:41 1次下载

    基于改进蚁群算法的服务器集群资源调度研究

    基于改进蚁群算法的服务器集群资源调度研究_刘万军
    发表于 01-03 17:41 0次下载

    基于改进粒子群算法的云计算任务调度算法

    基于改进粒子群算法的云计算任务调度算法_娄建峰
    发表于 01-07 19:08 0次下载

    基于改进蚁群算法的云计算任务调度研究

    基于改进蚁群算法的云计算任务调度研究_张海玉
    发表于 01-08 14:47 4次下载

    Hadoop平台下改进的推测任务调度算法_陈明丽

    Hadoop平台下改进的推测任务调度算法_陈明丽
    发表于 03-19 11:41 0次下载

    基于改进蜂群算法的多维QoS云计算任务调度算法

    针对云计算环境下用户日益多样化的QoS需求和高效的资源调度要求,提出了基于改进蜂群算法的多维QoS云计算任务调度算法,其中包括构建任务模型、
    发表于 12-01 16:11 0次下载

    基于改进GEP的局部云任务调度算法

    针对云计算中一些现有的基于批量调度模式和进化算法的动态云任务调度算法计算量较大,计算时间成本较高的现象,提出了一种基于改进基因表达式编程(G
    发表于 01-18 13:50 0次下载
    基于<b class='flag-5'>改进</b>GEP的局部云任务<b class='flag-5'>调度</b><b class='flag-5'>算法</b>

    基于改进迭代贪婪算法的流水车间预制生产调度

    基于改进迭代贪婪算法的流水车间预制生产调度
    发表于 06-30 17:17 12次下载