嵌入式Linux操纵系统实时性的分析与研究.docx

上传人:安*** 文档编号:17775504 上传时间:2022-05-26 格式:DOCX 页数:10 大小:20.90KB
返回 下载 相关 举报
嵌入式Linux操纵系统实时性的分析与研究.docx_第1页
第1页 / 共10页
嵌入式Linux操纵系统实时性的分析与研究.docx_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《嵌入式Linux操纵系统实时性的分析与研究.docx》由会员分享,可在线阅读,更多相关《嵌入式Linux操纵系统实时性的分析与研究.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、嵌入式Linux操纵系统实时性的分析与研究摘要:通过分析嵌入式Linux在实时应用中的缺乏,从软中断模拟技术、可抢占式内核机制和实时调度策略等方面给出了改善系统实时性能的方法,同时提出了宏观调度构造,拓展了实时系统的应用范围。一、引言Linux本身为分时操纵系统,其系统目的为较好的平均响应时间和较高的吞吐量,而实时系统那么主要考虑任务的按时完成、尽量减少进程运行的不可预测性等。但与贸易嵌入式操纵系统相比Linux遵循GPL,具有源代码开放、定制方便、支持广泛的计算机硬件等优点,所以,近年来嵌入式Linux成为嵌入式系统方向上的一个研究热门。本文首先分析了实时系统的特点和Linux内核在实时应用

2、方面的缺乏,然后针对影响操纵系统实时性能的假设干方面进展研究,提出解决方案,最后总结全文。二、实时系统的分类实时系统最重要的特点就是实时性,即系统的正确性不仅仅依靠于计算的逻辑结果的正确性,还取决于输出结果时间的及时性。从这个角度看,实时系统是“一个可以在指定或确定的时间内完成系统功能和对外部环境做出响应的系统。按对实时性能要求的程度,实时系统可分为两类:1硬实时系统:要求可确定性强,具有明确的实时约束,在某个限定的时刻之前不能完成任务将造成灾难性的后果。2软实时系统:也对时间敏感,但偶然发生不能知足严格实时要求的情况也是允许的。三、Linux在实时方面存在的缺乏Linux固然符合POSIX1

3、003.1b关于实时扩展局部的标准,例如:支持SCHED_FIFO和SCHED_RR实时调度策略,锁内存机制memorylocking,实时信号等功能,但是由于其最初的设计目的为通用分时操纵系统,因此作为一个实时操纵系统,Linux仍然存在如下缺陷:1Linux的内核本身是非抢占的。Linux下分用户态和核心态两种形式,当进程运行在用户态时,可被优先级更高的进程抢占,但当它进入核心态时,其他用户态进程优先级再高也不能抢占它。2Linux固然给实时进程提供了较高的优先级,但是没有参加时间限制。例如:完成的最后期限、应在多长时间内完成、执行周期等等。同时,其他大量的非实时进程也可能对实时进程造成阻

4、塞,无法确保实时进程的响应时间。3时钟粒度粗糙。时钟治理是操纵系统的脉搏,任务的执行和中止在很多情况下都是由时钟直接或者间接唤起的,它还是进程调度的重要根据。Linux的周期形式定时器频率仅为100Hz,远不能知足实时应用的要求。四、改良内核实时性的分析与研究从中断软件模拟、可抢占式内核体系构造、实时任务的调度策略这三个方面对嵌入式Linux内核进展研究,并给出了相应的进步实时性的方法。1.响应时间的分析及解决方法任务的响应时间被定义为一个事件的发生和任务响应这一事件开场执行之间的间隔时间,通常有以下几个因素影响任务的响应时间。1中断分配时间IDTinterruptdispatchtime:当

5、一个中断产生时,在调用中断处理程序占用CPU以前,操纵系统用来保存所有的存放器中的内容和系统中其他的关于这一任务状态的时间。2中断效劳时间:ISTinterruptservicetime:中断效劳程序用来从硬件设备读取信息或者从操纵系统采集信息所用的时间。3内核抢占时间KPTkernelpreemptiontime:在操纵系统意欲抢占当前进程与抢占实际上发生之间的时间间隔。4调度延迟SDscheduledelay:调度程序用来调度另一个线程投入运行的时间。5进程切换时间CSTcontestswitchingtime:当前线程用来保存存放器和系统状态的时间与将要运行的线程恢复存放器中的内容和系统

6、状态的时间总和。6系统调用返回时间RSTreturnfromsystemcall:处于内核态的线程在它返回用户态之前检查一些状态所用的时间。以上这些时间中,SD、CST和RST总是固定不变的,假如Linux内核设计得当的话,IDT、IST和KPT可以有效的减少。在实时应用的环境中,假设干个中断同时发生的情况是完全可能存在的。这时任务的响应时间最多将包含NIDT+IST,N为中断数。中断软件模拟被用来解决多个中断同时发生的情形。当一个硬件中断发生时,系统只是简单的在时间表中报告这一时间的发生,然后立即将CPU的控制权返回给操纵系统,完全略过了查中断向量表并执行相应的中断效劳程序。系统在Linux

7、内核之前截获了所有应中断信号,并根据当前实时任务的需要,由软中断模拟机制处理或者挂起该中断例如:IBMPC中的8259中断控制器。采用这个方法,可以减少当多个中断同时发生时任务的响应时间,最长的延迟时间为NIST,其中N为中断数。在这里之所以是IST,而不是IST,是由于采用软中断软件模拟的方法使得在IST时间段内只执行一些简单的操纵。2.抢占式内核体系构造的设计为理解决Linux实现硬实时的最大障碍,使Linux内核成为完全可被抢占实时内核,典型的实现方案是双核构造。使用实时核来运行实时任务,Linux内核来运行非实时任务。例如:对于实时数据采样分析而言,利用实时内核运行一个实时任务来完成数

8、据收集,另一个实时任务完成数据分析和控制输出功能;同时利用Linux内核上运行的界面来进展数据显示。如图1所示。align=centerimg=307,202e-images/127886737032031250.GIF/img图1双内核构造/align在Linux内核和硬件之间加个小的实时核,由它治理中断,提供一些必要的功能,如底层任务创立、中断效劳程序,并且为底层任务、ISR和Linux进程之间进展通讯排队;而Linux内核本身那么成为优先级最低的Idletask。对实时性要求强的应用编写成实时任务,在实时内核上直接运行。Linux内核可以被优先级更高的实时任务抢占。对于Linux内核的修

9、改主要集中在三方面:1在Linux内核中影响实时性的地方增加控制点,使内核在控制点可以被抢占,减少内核抢占延迟;2将执行时间较长的系统划分为几个甚至是十几个较小的块分别执行,使实时任务随时中断非实时任务;3根据实际需要,增加局部功能。随着嵌入式应用的深化,十分是在数字通讯和网络中的应用,多核构造的处理器也陆续上市。如:Motorola公司研发的MPC8260PowerQUICC|交融了两个CPU-嵌入式PowerPC内核和通讯处理模块CPM;Infineon公司推出的TC10GP和增强型TC1130都是三核TriCore构造的微处理器,这些处理器的产生对于Linux应用中的实时性都大有帮助。3

10、.实时调度的算法研究常用的实时调度算法有:基于优先级的调度算法priority-drivenscheduling,PD;基于时间驱动的调度算法time-drivenscheduling,TD;基于比例分享的调度算法share-drivensched2uling,SD。基于优先级的调度算法调度器以优先级作为寻求下一个任务执行的根据。可分为如下两种类型:1静态优先级调度算法:该算法给系统中所有进程都静态的分配一个优先级。静态优先级的分配可以根据应用的属性来进展,例如任务的周期、用户优先级或其他预先确定的策略。RMRateMonotonic是一种典型的静态优先级调度算法,它根据任务执行周期的长短来决

11、定调度优先级,执行周期小的任务具有较高的优先级。2动态优先级调度算法:这种算法根据任务的资源需求来动态的分配任务的优先级。EDFearliestdeadlinefirst算法是一种典型的动态优先级调度算法,该算法根据停当队列中各个任务的截止期限来分配优先级,具有最近截止期限的任的优先级最高。基于时间驱动的调度算法该算法本质上是一种设计时就确定下来的离线的静态调度方法。在系统的设计阶段,在明确系统中所有处理的情况下,对于各个任务的开场、切换以及完毕时间等事先组出明确的安排和设计。基于比例分享的调度算法这是一种越来越受到关注的实时调度形式,基于GPSgeneralprocessorscheduli

12、ng的算法,其根本思想就是按照一定的权重CPU使用的比例对一组需要调度的任务进展调度,使其执行时间与权重完全成正比。可以通过两种方法来实现比例分享调度算法:1是调节各个停当进程出如今当前调度队列队首的频率,并调度队首的进程执行;2是逐次调度停当队列中的各个进程投入运行,但根据分配的权重调节分配给每个进程的运行时间片。比例分享算法包括轮转法、公平分享法、公平队列法和彩票调度法等几类。每一种调度策略都有自己的优越性和缺乏。在这里我们提出了一种宏观调度构造,通过设计和构造多属性和多调度器的选择机制,使三种实时调度策略的应用都得到支持,相对于只对单种调度策略提供支持的方案,拓展了系统的可使用范围。宏观

13、调度构造如图2所示。align=centerimg=462,389e-images/127886737202106250.GIF/img图2宏观调度构造/align我们给每一个实时任务定义了4个调度属性:priority优先级:限制该任务比相关联的其他任务的优先权、starttime起始时间:任务开场执行时间、finishtime截止时间:任务停顿时间和budget预设值:任务允许执行时间,不同属性的数据对应不同的调度策略。宏观调度构造分为两个模块:属性分配模块和调度器选择模块。属性分配模块给每一个实时任务分配多个属性值,并通过其中的一两个属性值决定哪个属性优先,这样调度器选择模块就可以根据属

14、性的优先级别选择不同的调度器。例如:假如优先级属性优先,那么调度器就变成了一个纯粹的PD调度器;假如截止时间优先,那么调度器就作为EDF调度器来工作。实验时采用Pentium-|400处理器,128MB内存,运行环境Linux2.0.35以RED-Linux0.5为补丁,以RM调度策略为例,分别测量每一次系统恳求消耗的时间。数据整理如下:宏观调度构造下属性分配模块消耗的时间大局部不到40Ls,平均约35Ls,调度器选择模块平均消耗时间约85Ls,消耗时间总计为118Ls,约占0.118%的CPU时间;单一调度策略的情况平均消耗时间约为25Ls,约占0.025%的CPU时间。宏观调度构造的延迟时

15、间为传统调度方式的5倍,对于大多数的嵌入式系统来讲内核的灵敏性和可配置性比调度的延时更为重要,而宏观构造和单一调度构造的CPU可用时间分别为99.88%和99.97%,差异极小,符合嵌入式系统实时性要求。五、结论与展望Linux固然为分时操纵系统,但由于其功能强大、源代码开放以及可移植性强等上风,已成为日益流行的嵌入式实时操纵系统的解决方案。本文从软中断模拟技术、可抢占式内核和实时调度策略三个方面给出了改善系统实时性能的方法,并提出了通过采用宏观调度构造实现的混合调度,拓展了实时系统的应用范围。Linux实时性能的逐步完善,必将大大促进嵌入式Linux在工业控制、后PC时代信息电器等领域的广泛应用,应用的需要也会进一步促进大量新型控制算法的出现。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁