admin 管理员组

文章数量: 887021


2024年1月14日发(作者:java super)

基于嵌入式Linux操作系统的实时性优化研究研究与探讨·太原铁道科技基于嵌入式Linux操作系统的实时性优化研究刘忠:科学技术研究所摘但要:Linux因其开源特性被广泛应用于工业控制等领域,实时系统必须在设计之初就要充分考虑到系统的实时性需求,并且设计出的系统要符合POSIX标准。Linux程序在采用这种方式改造的实时操作系统上可以不用任何修改就能够正常运行。LynuxWorks公司的Lynx这种方式是设计一个完全独立的实时内核,原有的由于OS内核就是采用这种方式改造内核的一个代表。Linux的内核被抛弃,所以无法继承一些Linux系统的双内核法。这种方法通过在Linux操作系统的最其实时性能的不佳,限制了其在实时领域的应用。通过对目前存在的多种实时性优化方案进行调研,并分别进行分析研究,对响应时间这一重要实时指标进行测试,在不同情况下可采用不同的优化方案。关键词:嵌入式Linux;实时性;响应时间;优化研究0概述在嵌入式操作系统的应用开发中,Linux系统因通信开源、稳定、易移植、低成本等特性在工业领域、领域、数控领域、运输领域等诸多行业得到了广泛的应用。近年来随着嵌入式技术的快速发展,对嵌入式任务间的通讯与同步、系统本身在多任务、抢占调度、任务与中断之间的通信等方面就提出了实时性处理的要求。嵌入式系统需要对不同状态做出及时响应,在任因此实时性是嵌入式操作系统的重要性能指标,务执行过程中,执行结果必须在合理的时间内正确完提高系统可靠性,优化成。为了降低软件开发复杂性,Linux的实时性以满足行业需求是必然趋势。1Linux实时性优化Linux系统在最初设计的时候优先关注的并不是比如Linux系统对大量硬件的支持等。优势,1.2底层增加一个硬实时的微内核来实现。实时内核负责对硬件的管理以及调度硬实时任务,而Linux内核本身则作为系统中最低优先级的任务来运行,只有当没有实时任务可以运行,才会调度Linux内核。因此,并Linux系统本身的应用程序不用改变就可以运行,且硬实时任务的调度也能体现出很好的性能,调度也具有可预测性。这种改造方案为实时内核和Linux内核进行数据交换提供了通信方式,即共享内存和FI原为保证FO设备接口,在实时内核调度Linux内核时,非实时任务必须能够支持可抢占式调度。这种方法的缺点是在实时任务和Linux内核之间没有进行内存保护,因此任何实时任务的失败可能会导致整个系统的崩溃。RTLinux是采用这种方式改造Linux系统实时性的一个例子。1.3内核,使其具有实时性,作为实时操作系统来运行。修改内核基于已有Linux操作系统对实时软件开发的支对Linux源代码进行部分修改,使其变成一个真正持,2018·3賮跅直接修改内核法。这种方式是直接修改非实时的实时内核能提供精确的实时性,Linux内核上的所有系统的实时性,而是公平调度、吞吐率的最大化以及资源共享,本质上为分时操作系统。Linux的实时性问(1)(2)题主要体现在:内核不可抢占;时间粒度粗糙;(4)(3)关中断问题;任务调度不合理等几个方面。提高实时性方面主要采用以下几种方法。1.1兼容内核法。这种方法是在Linux标准内核之外这个内核的API要与设计一个完全独立的实时内核,标准Linux内核兼容。采用这种方法设计一款优秀的

太原铁道科技·研究与探讨基于嵌入式Linux操作系统的实时性优化研究的实时操作系统。这种方法也和Linux本身源代码开放的特性相契合。采用这种方式改造Linux实时性的一个例子是TimeSysLinux。1.4优先级的可抢占式调度方法没有提供任务间的临时资源内核法将内核扩展,提保护,存在一定的局限性,供了对资源保护的支持。在采用固定优先级的可抢占性调度策略时,可预见的任务的响应时间取决于对更高优先级任务的执行时间的预测。若较高优先级任务则其他任务的在其预期的执行时间内没有运行完毕,调度会被影响,甚至会陷入无限循环中。资源内核法将资源作为中心,实时核心在此指导下以可抢占的方式精确的有保证的获取系统资源,并且能够保证一个糟糕的任务不会直接影响其他任务的执行时间。CMU公司的Linux/RK的改造方式就是采用的资源内核法。2典型实施方案通过上述四种优化方案的简述和比较我们可以看出,兼容内核法对API的要求较多,且对硬件支持度有限,无法凸显Linux的优势。资源内核法使用和研双内核法和直接修改内核究资料都很少,相比之下,法在实际应用中具有更强的可操作性。目前对提高实时性方面主要采用的方法是直接修改内核和双内核法,对标准Linux内核修改的主要产品有:RED-Linux、准Linux进行双内核改造的产物有:RTLinux、RTAI(Real-TimeApplicationInterface)和Xenomai等。综合丁和双内核法Xenomai补丁为改造方式。2.1PreemptRT补丁实时抢占补丁(RealtimePreemptionPatch,铁路系统实际应用需求,直接修改法PreemptRT补Hard-hatLinux、Kurt-Linux和RT-Preempt等。对标资源内核法。由于实时操作系统传统的基于固定比于双内核机制方案最大的优势在于它遵循POSIX标准,使用该补丁的实时系统应用程序和驱动程序与非实时系统的应用和驱动程序差异很小,因此,在使用该补丁的平台上做相应的开发比双内核机制的方案更容易。通常情况下Linux内核仅仅在以下三种情况下允许进程间的抢占:(1)当CPU运行在用户态时;(2)当内核代码从系统调用或者中断返回到用户空间时;(3)当内核代码块阻塞在互斥量或者明确地将控制权交给另外一个进程时。核转变成一个完全可抢占的实时内核:核锁原语的可抢占操作;为内核中的自旋(2)为了解决优先级反转问题,锁和信号量实现优先级继承策略;(3)中断线程化,将中断处理程序转换成可抢占的内核线程;(4)提高了用户空间POSIX定时器的精度。可抢占内核的实现对Linux具有非比寻常的意义。首先,这是将Linux应用于实时系统所必需的。严苛的响应时间限制是实时系统的特性之一,设备发生中断后会唤醒实时进程,该进程需要在规定时间内调无法实现该要求,度执行。但现有内核是不可抢占的,且在内核中的响应时间是不可控的。在实际运行过程实时进程只有在当前中,当较长的系统调用被执行时,内核运行进程完全退出时才能执行,在现在的环境条件下带来的延迟时间会达到100ms的数量级。因此可抢占内核不仅对Linux实现实时性意义非凡,同时改善了Linux对某些低延迟应用不能有效支持的问题。2.2Xenomai是2001年发起的一个基于实时操作系Xenomai补丁Linux实时补丁通过以下方法将纯净的Linux内(1)通过使用rtmutex重新实现自旋锁来实现内PreemptRT)是由IngoMolnar和ThomasGleixner更新维护,最新版的实时补丁随Linux内核一同发布,实时抢占补丁的内容越来越多的被官方Linux项目接收,融入到发行版的Linux内核中。Linux实时补丁相·3跇2018賮完全遵守GNU/Linux自由软统框架的自由软件项目,

基于嵌入式Linux操作系统的实时性优化研究研究与探讨·太原铁道科技可以提供工业级的件协议,主要面向工业控制领域,RTOS性能。Xenomai的目的是制作可用于基于Linux平台的各种实时操作系统的API。Xenomai实时内核主要包括实时为开发强实时应用提供了丰富的功能,中断服务、线程调度与管理、用户空间实时任务支持、线程同步服务、实时对象注册服务和动态内存申请相等。和典型的Linux实时方案(RTLinux和RTAI)比,Xenomai拥有自己的两个特色:一是支持完全的、性能优异的用户态下的实时;二是它兼容常见的vx原这为各类传统实时操作系统的实时程序快速移植到同时还提供了原生API和实新的平台上提供了便利,时驱动模型(RTDM)。非实的存在,实时任务由Xenomai实时微内核处理,又时任务交由Linux去处理,这样保证实时性的同时,能保证非实时任务得到及时的处理援克服了传统实时操作系统无法处理功能复杂的困难,只能保证硬实时任务能得到及时的处理,这样功能就显得相对比较单一。Xenomai充分发挥Adeos的优势并架构其上,Adeos的体系结构如图1所示。Adeos的主要作用是用于接管中断,由于Adeosworks、pSOS+、VRTX等成熟的实时操作系统的API,本文中。任务响应时间越少,系统的实时性能就越好。通过对这一性能指标测试对比PreemptRT和Xenomai两种补丁他对Linux实时性的优化结果。表1两种补丁打入标准内核测试结果任务响应时间MinPreemptRTXenomai5.532.67Avg6.234.48Max15.699.76STDEVP1.230.67分别将两种补丁打入标准内核并在相同的测试测试结果如表1所示:环境下进行测试,通过测试结果可知:Xenomai补丁的优化结果更好。但Xenomai是基于双核实时版Linux系统模拟传会导致实统RTOS(实时操作系统)的一个附加组件,时任务无法使用标准Linux内核的资源,任何实时任务的失败可能会导致整个系统的崩溃。而preemptRT在任何情况下均不会出现系统崩溃。4结束语通过对多种优化方案进行研究比较和重点分析,直接修改内核法和双内核法更适合现阶段使用,两种方法分别以preempRT补丁和Xenomai补丁最为成熟。通过进一步测试结果可知,preempRT补丁更适用于对稳定性、可靠性要求较高但实时性相对低的系统平台,Xenomai补丁更适用于对实时性要求严格但可靠性要求相对低的平台,可根据需求进行不同选择。参考文献[1]刘慧双.Linux实时操作系统定制及设备驱动开发[D].华中科技大学,2013.[2]董艳雪.基于多核ARM的实时Linux在数控系统中的应用研究[D].中国科学院大学,2016.图1Adeos的体系结构[3]沈涛.Linux内核实时性以及网络实时性的研究[D].南京邮电大学,2013.[4]吴章金.Linux实时抢占补丁的研究与实践[D].兰州大学,2010.3实时性测试任务响应时间测试是反映系统实时性的重要指标之一,尤其是在很多对实时性要求严苛的控制系统2018·3賮跈


本文标签: 内核 实时性 系统 任务 时间