您的位置 首页 报告

关于嵌入式体系的特色和Linux内核的实时使用剖析

关于嵌入式系统的特点和Linux内核的实时应用分析-Linux本身为分时操作系统,其系统目标为较好的平均响应时间和较高的吞吐量,而实时系统则主要考虑任务的按时完成、尽量减少进程运行的不可预测性等。但与商业嵌入式操作系统相比Linux遵循GPL,具有源代码开放、定制方便、支持广泛的计算机硬件等优点,所以,近年来嵌入式Linux成为嵌入式系统方向上的一个研究热点。

一、导言

Linux自身为分时操作体系,其体系方针为较好的均匀呼应时刻和较高的吞吐量,而实时体系则首要考虑使命的准时完结、尽量削减进程运转的不行猜测性等。但与商业嵌入式操作体系比较Linux遵从GPL,具有源代码敞开、定制便利、支撑广泛的核算机硬件等长处,所以,近年来嵌入式Linux成为嵌入式体系方向上的一个研讨热门。

本文首要剖析了实时体系的特色和Linux内核在实时运用方面的缺乏,然后针对影响操作体系实时功用的若干方面进行研讨,提出处理计划,最终总结全文。

二、实时体系的分类

实时体系最重要的特色便是实时性,即体系的正确性不仅仅依赖于核算的逻辑成果的正确性,还取决于输出成果时刻的及时性。从这个视点看,实时体系是“一个能够在指定或许确认的时刻内完结体系功用和对外部环境做出呼应的体系”。按对实时功用要求的程度,实时体系可分为两类:

(1) 硬实时体系:要求可确认性强,具有清晰的实时束缚,在某个约束的时刻之前不能完结使命将形成灾难性的结果。

(2) 软实时体系:也对时刻灵敏,但偶然发生不能满意严厉实时要求的状况也是答应的。

三、Linux在实时方面存在的缺乏

Linux尽管契合POSIX1003.1b关于实时扩展部分的规范,例如:支撑SCHED_FIFO和SCHED_RR实时调度战略,锁内存机制(memorylocking),实时信号等功用,可是因为其开端的规划方针为通用分时操作体系,因而作为一个实时操作体系,Linux依然存在如下缺点:

(1) Linux的内核自身对错抢占的。Linux下分用户态和核心态两种形式,当进程运转在用户态时,可被优先级更高的进程抢占,但当它进入核心态时,其他用户态进程优先级再高也不能抢占它。

(2) Linux尽管给实时进程供给了较高的优先级,可是没有参加时刻约束。例如:完结的最终期限、应在多长时刻内完结、履行周期等等。一起,其他许多的非实时进程也可能对实时进程形成堵塞,无法保证实时进程的呼应时刻。

(3) 时钟粒度粗糙。时钟办理是操作体系的脉息,使命的履行和间断在许多状况下都是由时钟直接或直接引发的,它仍是进程调度的重要依据。Linux的周期形式定时器频率仅为100Hz,远不能满意实时运用的要求。

四、改进内核实时性的剖析与研讨

从中止软件模仿、可抢占式内核体系结构、实时使命的调度战略这三个方面临嵌入式Linux内核进行研讨,并给出了相应的进步实时性的办法。

1. 呼应时刻的剖析及处理办法

使命的呼应时刻被界说为一个事情的发生和使命呼应这一事情开端履行之间的距离时刻,一般有以下几个要素影响使命的呼应时刻。

(1) 中止分配时刻IDT(interruptdispatchtime):当一个中止发生时,在调用中止处理程序占用CPU曾经,操作体系用来保存一切的寄存器中的内容和体系中其他的关于这一使命状况的时刻。

(2) 中止服务时刻:IST(interruptserviceTIme):中止服务程序用来从硬件设备读取信息或从操作体系搜集信息所用的时刻。

(3) 内核抢占时刻KPT(kernelpreempTIonTIme):在操作体系意欲抢占当时进程与抢占实际上发生之间的时刻距离。

(4) 调度推迟SD(scheduledelay):调度程序用来调度另一个线程投入运转的时刻。

(5) 进程切换时刻CST(contestswitchingTIme):当时线程用来保存寄存器和体系状况的时刻与行将运转的线程康复寄存器中的内容和体系状况的时刻总和。

(6) 体系调用回来时刻RST(returnfromsystemcall):处于内核态的线程在它回来用户态之前查看一些状况所用的时刻。

以上这些时刻中,SD、CST和RST总是固定不变的,假如Linux内核规划妥当的话,IDT、IST和KPT能够有用的削减。在实时运用的环境中,若干个中止一起发生的状况是彻底可能存在的。这时使命的呼应时刻最多将包含N(IDT+IST),N为中止数。

中止软件模仿被用来处理多个中止一起发生的景象。当一个硬件中止发生时,体系仅仅简略的在时刻表中陈述这一时刻的发生,然后立行将CPU的操控权回来给操作体系,彻底略过了查中止向量表并履行相应的中止服务程序。体系在Linux内核之前截获了一切应中止信号,并依据当时实时使命的需求,由软中止模仿机制处理或挂起该中止(例如:IBMPC中的8259中止操控器)。

选用这个办法,能够削减当多个中止一起发生时使命的呼应时刻,最长的推迟时刻为N*IST’,其间N为中止数。在这里之所以是IST’,而不是IST,是因为选用软中止软件模仿的办法使得在IST时刻段内只履行一些简略的操作。

2. 抢占式内核体系结构的规划

为了处理Linux完结硬实时的最大妨碍,使Linux内核成为彻底可被抢占实时内核,典型的完结计划是双核结构。运用实时核来运转实时使命,Linux内核来运转非实时使命。例如:关于实时数据采样剖析而言,运用实时内核运转一个实时使命来完结数据收集,另一个实时使命完结数据剖析和操控输出功用;一起运用Linux内核上运转的界面来进行数据显现。如图1所示。

关于嵌入式体系的特色和Linux内核的实时运用剖析

在Linux内核和硬件之间加个小的实时核,由它办理中止,供给一些必要的功用,如底层使命创立、中止服务程序,并且为底层使命、ISR和Linux进程之间进行通讯排队;而Linux内核自身则成为优先级最低的Idletask。

对实时性要求强的运用编写成实时使命,在实时内核上直接运转。Linux内核能够被优先级更高的实时使命抢占。关于Linux内核的修正首要会集在三方面:(1) 在Linux内核中影响实时性的当地添加操控点,使内核在操控点能够被抢占,削减内核抢占推迟;(2) 将履行时刻较长的体系划分为几个乃至是十几个较小的块别离履行,使实时使命随时中止非实时使命;(3) 依据实际需求,添加部分功用。

跟着嵌入式运用的深化,特别是在数字通讯和网络中的运用,多核结构的处理器也连续上市。如:Motorola公司研制的MPC8260PowerQUICC||交融了两个CPU-嵌入式PowerPC内核和通讯处理模块(CPM);Infineon公司推出的TC10GP和增强型TC1130都是三核(TriCore)结构的微处理器,这些处理器的发生关于Linux运用中的实时性都大有协助。 3. 实时调度的算法研讨

常用的实时调度算法有:依据优先级的调度算法(priority-drivenscheduling,PD);依据时刻驱动的调度算法(time-drivenscheduling,TD);依据份额同享的调度算法(share-drivensched2uling,SD)。依据优先级的调度算法 调度器以优先级作为寻求下一个使命履行的依据。可分为如下两种类型:

(1) 静态优先级调度算法:该算法给体系中一切进程都静态的分配一个优先级。静态优先级的分配能够依据运用的特色来进行,例如使命的周期、用户优先级或许其他预先确认的战略。RM(RateMonotonic)是一种典型的静态优先级调度算法,它依据使命履行周期的长短来决议调度优先级,履行周期小的使命具有较高的优先级。

(2) 动态优先级调度算法:这种算法依据使命的资源需求来动态的分配使命的优先级。EDF(earliestdeadlinefirst)算法是一种典型的动态优先级调度算法,该算法依据组织妥当行列中各个使命的截止期限来分配优先级,具有最近截止期限的任的优先级最高。

依据时刻驱动的调度算法

该算法本质上是一种规划时就确认下来的离线的静态调度办法。在体系的规划阶段,在清晰体系中一切处理的状况下,关于各个使命的开端、切换以及完毕时刻等事前组出清晰的组织和规划。

依据份额同享的调度算法

这是一种越来越遭到重视的实时调度形式,依据GPS(generalprocessorscheduling)的算法,其基本思想便是依照必定的权重(CPU运用的份额)对一组需求调度的使命进行调度,使其履行时刻与权重彻底成正比。能够经过两种办法来完结份额同享调度算法:(1)是调理各个组织妥当进程呈现在当时调度行列队首的频率,并调度队首的进程履行;(2)是逐次调度组织妥当行列中的各个进程投入运转,但依据分配的权重调理分配给每个进程的运转时刻片。份额同享算法包含轮转法、公正同享法、公正行列法和彩票调度法等几类。

每一种调度战略都有自己的优越性和缺乏。在这里咱们提出了一种微观调度结构,经过规划和结构多特色和多调度器的挑选机制,使三种实时调度战略的运用都得到支撑,相关于只对单种调度战略供给支撑的计划,拓宽了体系的可运用规模。微观调度结构如图2所示。

关于嵌入式体系的特色和Linux内核的实时运用剖析

咱们给每一个实时使命界说了4个调度特色:priority(优先级:约束该使命比相关联的其他使命的优先权)、starttime(开端时刻:使命开端履行时刻)、finishtime(截止时刻:使命中止时刻)和budget(预设值:使命答应履行时刻),不同特色的数据对应不同的调度战略。微观调度结构分为两个模块:特色分配模块和调度器挑选模块。特色分配模块给每一个实时使命分配多个特色值,并经过其间的一两个特色值决议哪个特色优先,这样调度器挑选模块就能够依据特色的优先等级挑选不同的调度器。例如:假如优先级特色优先,则调度器就变成了一个朴实的PD调度器;假如截止时刻优先,那么调度器就作为EDF调度器来作业。

试验时选用Pentium-||400处理器,128MB内存,运转环境Linux2.0.35(以RED-Linux0.5为补丁),以RM调度战略为例,别离丈量每一次体系恳求耗费的时刻。数据收拾如下:微观调度结构下特色分配模块耗费的时刻大部分不到40Ls,均匀约35Ls,调度器挑选模块均匀耗费时刻约85Ls,耗费时刻总计为118Ls,约占0.118%的CPU时刻;单一调度战略的状况均匀耗费时刻约为25Ls,约占0.025%的CPU时刻。微观调度结构的推迟时刻为传统调度办法的5倍,关于大多数的嵌入式体系来讲内核的灵活性和可装备性比调度的延时更为重要,而微观结构和单一调度结构的CPU可用时刻别离为99.88%和99.97%,不同极小,契合嵌入式体系实时性要求。

五、定论与展望

Linux尽管为分时操作体系,但因为其功用强大、源代码敞开以及可移植性强等优势,已成为日益盛行的嵌入式实时操作体系的处理计划。本文从软中止模仿技能、可抢占式内核和实时调度战略三个方面给出了改进体系实时功用的办法,并提出了经过选用微观调度结构完结的混合调度,拓宽了实时体系的运用规模。Linux实时功用的逐步完善,必将大大促进嵌入式Linux在工业操控、后PC年代信息电器等范畴的广泛运用,运用的需求也会进一步促进许多新式操控算法的呈现。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/baogao/100256.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部