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

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

3天内不再提示

满足满足车载设备要求的车载操作系统内核调度策略

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

作者:刘建伟,焦风川,牛涛

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

1 调度算法分析

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

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 改进调度算法

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

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

满足满足车载设备要求的车载操作系统内核调度策略

2 应注意的其他问题

(1)微型化

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

(2)强实时性

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

(3)高稳定性

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

(4)可裁剪

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

结语

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

责任编辑:gt

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

    关注

    4981

    文章

    18274

    浏览量

    288360
  • 操作系统
    +关注

    关注

    37

    文章

    6280

    浏览量

    121870
  • 现场总线
    +关注

    关注

    3

    文章

    509

    浏览量

    38367
收藏 人收藏

    评论

    相关推荐

    如何提高实时操作系统的可靠性

    调度策略实现实时性要求,本文介绍了抢占式调度、可抢占的内核、优先级继承和中断处理等概念。 在设计工业控制
    发表于 07-09 07:43

    实时操作系统概念

    对很多嵌入式系统来说,一个设计良好的实时操作系统可以让开发工程师把握系统执行任何任务或响应任何关键事件的时间,满足系统实时性
    发表于 07-19 06:18

    (转)HarmonyOS(鸿蒙OS)发布,聊聊操作系统调度

    内核,但不是这篇。 本文想再谈谈关于人机交互操作系统本身以及微内核调度操作系统比较核心的问题。 也许,鸿蒙
    发表于 08-20 08:00

    嵌入式操作系统中的抢占式调度策略是什么

    嵌入式操作系统中的抢占式调度策略是什么
    发表于 04-28 06:23

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

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

    如何去设计一种满足安全/带宽需求的车载网络?

    如何去设计一种满足安全/带宽需求的车载网络?
    发表于 05-13 06:11

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

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

    车载系统的电源状态迁移是什么

    地说清楚“电源状态迁移”,的确很尴尬,这里详细讲解一下。目前我们的汽车中有各种各样的用电设备,如下图:车载系统电源布局图,这里只标注了部分用电设备,实际上汽车中的用电
    发表于 10-29 09:20

    嵌入式Linux操作系统调度算法的相关资料分享

    嵌入式Linux操作系统调度算法研究嵌入式操作系统在互联网时代的今天得到广泛应用。Linux系统本身并不是严格的实时操作系统。为了提高它对实
    发表于 11-05 08:15

    STM32操作系统内核调度原理是什么?如何实现?

    STM32操作系统内核调度原理是什么?如何实现?
    发表于 11-29 06:30

    实时操作系统满足的条件是什么

    1、实时操作系统满足的条件:(1)实时操作系统必须是多任务系统;(2)任务切换的时间与系统中的任务数量无关;(3)中断延时的时间预知并尽可
    发表于 12-14 07:01

    Android车载嵌入式操作系统怎么样?

    Android系统和汽车有什么关系?Android车载嵌入式操作系统怎么样?
    发表于 12-27 07:44

    高可靠性振荡子满足车载设备的苛刻要求

    高可靠性振荡子满足车载设备的苛刻要求 现代轿车发动机大都用电子燃油喷射系统,其中有一个形似方盒子的控制元件叫“ECU(电子控制单元)”。如
    发表于 02-09 09:18 598次阅读
    高可靠性振荡子<b class='flag-5'>满足</b><b class='flag-5'>车载</b><b class='flag-5'>设备</b>的苛刻<b class='flag-5'>要求</b>

    提高实时操作系统的实时性能

    对很多嵌入式系统来说,一个设计良好的实时操作系统可以让开发工程师把握系统执行任何任务或响应任何关键事件的时间,满足系统实时性
    发表于 11-03 11:38 0次下载

    车载操作系统你都知道吗?三分钟解车载操作系统前世今生

    。传统汽车电子产品可归纳为两类:一类是车载电子设备,另一类是汽车电子控制装置。汽车操作系统是汽车电子软件的重要组成部分,但不是所有的汽车电子产品都需要操作系统
    发表于 03-11 22:12 4.3w次阅读
    <b class='flag-5'>车载</b><b class='flag-5'>操作系统</b>你都知道吗?三分钟解<b class='flag-5'>车载</b><b class='flag-5'>操作系统</b>前世今生