Linux在嵌入式实时系统的研究与改进

Linux在嵌入式实时系统的研究与改进


2024年4月17日发(作者:)

务l 匐 化 

Linux在嵌入式实时系统的研究与改进 

A research on Linux in real-time embedded system and iIs optimization 

张帆’,求伟’,韩大鹏 

ZHANG Fan 。QlU We_1.HAN Da—peng 

(1.武警杭州指挥学院信息技术教研室,杭州310023;2.浙江省女子监狱信息技术科,杭州310012) 

摘要:本文主要介绍了嵌入式实时系统的主要特点和实时系统实时性的主要指标,并结合Linux技术 

分析了标准Linux系统的应用于嵌入式系统的局限性,在此基础上进一步提出了嵌入式Linux实 

时化改进措施。 

关键词:Linux;嵌入式实B寸系统;实时性;实日寸化改进 

中图分类号:TP31 1 文献标识码:A 文章编号:1 009—01 34(201 1)2(上)-0087—02 

Doi:1 0.3969/j.issn.1 009-01 34.2011.2(Jz).28 

0引言 

实时系统是指系统能够在限定的响应时间内 

提供所需水平的服务。一般的说,实时系统是能 

及时响应外部发生的随机事件,并以足够快的 

速度完成对事件处理的计算机应用系统。一个实 

2标准Linux ̄lJ约实时性的因素 

由于Linux系统本身是一个面向桌面的系统, 

其主要设计标准的是方便用户管理计算机资源, 

追求系统资源最大利用率,而不是有确定可预测 

的实时性能。所以将它应用于实时应用中时存在 

响应时间不可预测、时钟粒度粗糙等问题。 时系统计算的正确性不仅取决于程序的逻辑正确 

性,也取决于结果产生的时间,如果系统的时间 

2.1响应时间 

响应时间是指从系统接到即时处理程序的中 

断(interrupt)请求,到开始执行该处理程序间的 

时间差,如图1所示。 

约束条件得不至Ⅱ满足,将会发生系统出错。实时 

系统有反应式和嵌入式两种类型。反应式实时系 

统会与环境发生连续的互作用,而嵌入式实时系 

统主要用于控制大型系统中安装的特殊硬件。 

1衡量实时性的指标 

般来讲,性能是一个软件系统或组件对时 

间要求满足程度的一种指示。这里的时间指标可 

以用响应时间和吞吐量来衡量,该时间值是指 

响应某种要求所需的时间,而吞吐量用以指示系 

统在特定时间间隔内能够处理的请求数量。实时 

图1响应时间 

操作系统与一般商用多任务操作系统 ̄/HUnix、 

Windows有共同的特点,也有不同的特点。对于商 

用多任务操作系统,其目的是方便用户管理计算 

影响系统响应时间的因素包括:中断延 

迟(interrupt Latency)、中断服务例程运行 

时间(Interrupt handler duration)、调度延迟 

机资源,追求吞吐量;而实时操作系统要求在限 

定的响应时间内提供所需水平的服务,追求实时 

性、可确定性、可靠性。 

评价一个实时操作系统一般可以从任务调 

(Scheduler Latency)和调度程序运行时间 

(Scheduling duration)。 

2.1.1中断延迟 

中断延迟即中断响应时间,是指从产生中断 

请求到相应中断服务程序的第一条指令被执行之 

间的这段时间。由于中断具备有优先级而且可以 

度、内存管理、任务通讯、内存开销、任务切换 

时间、最大中断禁止时间等几个方面来衡量。其 

中最大中断禁止时间和任务切换时问是评价一个 

嵌套产生,因此可以测知优先级最高的中断在执 

行时的延迟时问。然而产生中断延迟的原因除了 

实时操作系统实时性的最重要的两个技术指标。 

收稿日期:2010-06-17 

作者简介:张帆(1981一)女,讲师,硕士,研究方向为数字图像处理。 

第33卷第2期2011-2(上) 【87】 

、I 

处理器响应时间外,更重要的是操作系统往往会 

訇 化 

般内核的不可抢占性使实时任务无法提供 

大大增加中断被延迟的时间。在操作系统运行过 

程中,存在着一些关键的操作,这些操作在执行 

时,操作系统会禁止在其问插入任何中断。因此 

如果一个中断请求在操作系统禁止中断的这段时 

间里产生,那么对它的处理就会始终保持在挂起 

状态,直到操作系统重新允许中断插入。最终, 

中断延迟在最坏情况下的数值是和操作系统关键 

操作中的指令序列在中断请求产生后继续执行的 

时间紧密相关,实时系统就是要确保系统中的关 

键事件能够在限定的时间段内被处理。 

2.1.2调度延迟 

较长时间的调度延迟有许多原因。其一是驱 

动在入口处或中断服务例程进行了许多操作;其 

二是由于缺乏调度点,内核长时间执行一部分 

代码,这些都导致了内核长时间内没有得到机会 

去进行调度运算。简单的解决方法是使调度程序 

运行得更加频繁。但实际上这个问题并不那么简 

单。首先,如果调度程序运行过于频繁,将引发 

频繁的进程切换,导致过多的CPU和内存资源的 

浪费;其次会影响中断服务时机的选择和服务的质 

量,再次影响进程IPC。引发过多的资源协调问 

题,从而导致系统性能的降低。因此让调度器保 

持一个有规律的运行节拍,但是又不能过于频繁 

的运行很重要。正确的解决方法是,让调度器在 

需要的时候尽快运行,例如:中断发生以后,需 

要重新调度,从就绪队列中选择下一个进程。 

2.2时钟问题 

操作系统环境建立之后,任务的执行和中止 

在很多情况下都是由时钟直接或间接唤起的,时 

钟也是操作系统活动的基准。为了提高系统的平 

均吞吐率,Linux 2.6将时钟中断的最小间隔设置 

为1毫秒,虽然相比2.4内核的10毫秒有了很大的 

提高,但是实时应用一般都需要微秒级的响应精 

度,lms的时钟粒度显然不能满足实时应用的需 

求。如果要把时钟的间隔缩小以满足周期性的实 

时任务的需要,但是Linux的进程切换比较费时, 

时钟中断越频繁,而花在中断处理上的时间就越 

多,系统的大部分时间是调用进程调度程序进行进 

程调度而不能进行正常的处理。 

3嵌入式Linux实时化改进措施 

3.1增JJIlkernel可抢占性。 

[881 第33卷第2期2011—2(上) 

任务的调度权,可以通过修改源码,将系统调用 

的过程细分,缩小禁止中断、内核加锁的范围。 

增加调度器运行的时机。 

3.2对中断进行软件模拟 

采用软件对中断模拟,在Linux内核下增加一 

个软件层,来控制中断和处理器关键操作。对cli 

(关中断)和sti(开中断)命令进行封装,在调 

用c1i或者sti时,只是更改中断的标记位,并不真正的 

去开、关中断。例如:RT.Linux,由两个子内核 

构成,一个用于Linux环境,一个用于实时环境, 

可以有效改善系统中断延迟时间的问题。 

3.3采用高精度定时器 

般内核无法提供高精度时钟,也即无法高 

精度分辨实时任务的到来。采用高精度定时器, 

为系统提供更多的剥夺点。通过系统硬件提供的 

高精度时钟,可以解决时钟粒度过大的问题。 

3.4改进调度算法 

虽然Linux进程调度也支持实时优先级,但缺 

乏有效的实时任务的调度机制和调度算法,无法 

满足HRT、QoS等的任务需求,可以通过向调度器 

增/JIlhook或改造调度器来改善。目前有很多新颖 

的操作系统调度框架和调度算法都有Linux实现, 

比 ̄/HRED—Linux所定义的一个通用的实时调度框 

架;QLinux所采用的分层式的CPU调度框架,及 

新颖的调度算法如H—SFQ,以及Cello磁盘调度算 

法等;SILK所使用的将对一个包的网络处理抽象成 

PATH,然后在PATH之间进行调度。 

3.5采用微内核结构 

微内核结构的设计有很大的好处。调试用户 

进程要比调试内核进程要容易许多,用户进程在 

独立的地址空间运行,不同模块间的内存管理错 

误不会互相影响,驱动程序可以充分利用内核提 

供的多线程机制。另一好处是系统的可扩展性, 

既可以小到100K,可以放入ROM,也可以大到足 

以适应多机系统的需要。移植及维护微内核结构 

的系统都很方便。切换上下文速度快,由于内核 

很小,可以方便的计算出最差的时间参数,如中 

断响应时间。微内核的一个弱点是性能不好,因 

为内核需要大量的进程通信和上下文切换。只能 

提供简单的服务,相同的任务微内核系统要调用 

较多的系统调用。 

、l 

4结论 

随着应用的复杂化和硬件的发展,一个嵌入 

式控制器系统可能要同时控制和监视很多外设, 

要求有实时响应,有很多处理任务,各个任务之 

匐 

其实时性能等方面的改造,必将在嵌入式领域发 

挥巨大的作用。 

参考文献: 

【1l邹思轶.嵌入式Linux设计与应用.清华大学出版社,2002. 

间有多种信息传递,因此嵌入式操作系统在嵌入 

【2]Daniel P.Bovet,Marco Cesati.深入理解LINUX内核.第二 

式系统中将会发挥更大的作用,实时性是绝大多 

版[M].中国电力出版社,2004. 

数嵌入式系统的需求,研究嵌入式操作系统内核 

[3】李小群,赵慧斌.Linux实时调度方案的设计与实现【J】.计 

算机研究与发展,2003,5. 

的实时化技术及其在典型嵌入式实时系统中的应 

【4】赵慧斌,李小群.改善Linux核心可抢占性方法的研究与 

用技术具有重要的意义。Linux以其诸多的优势不 

实现【JJ.计算机学报,2004,2. 

但在桌面操作系统中获得了巨大的成功,通过对 

专毒‘{ . {赢‘{ 毒岛‘ {壶‘{ { { { {蛊‘{曲 {缸 是‘ {是‘{ 

【上接第46页】 

开 始 

调用电机速度调整子程序、接触轮位置调整子程 

序、接触力补偿调整子程序。根据系统的工艺过 

’ 

初始化 

程与系统的控制要求,可得PLC控制系统流程图如 

子程序 

图4所示。 

4.2触摸屏软件设计 

根据二维磨削力控制砂带磨削机床的控制和 

面板操作 

机器人通1

子程序 

信子程序I

 

 [子程序 

人机交互 

操作要求,设计了主界面、参数设置界面、信号 

监控界面、参数显示界面等。 

5结论 

参数调整 

本文详细讨论了三菱FX系 ̄I]PLC用于一维磨 

削力控制与二维磨削力控制相结合的砂带磨削机 

床的组成、工作原理、控制系统的硬件组成和软 

N 

完成? 

电机速度调 

整子程序员 

件设计。系统将机器人重复定位精度高的特点和 

PLC出色的逻辑控制功能融合为一体,提高了磨削 

l Y 

加工精度。实践证明,该系统操作方便,运行稳 

!—一 

小接触轮停 大接触轮停 

接触轮位置 

定可靠,自动化程度高。 

止子程序 

止子程序 

调整子程序 

参考文献: 

f1】张照华,负超,李成群.基于PLC的一维力控制系统研究 

接触力补偿 

[J】.机电产品开发与创新,2007,20(2):1 16一u7. 

调整子程序 

[2]李成群,负超,张习加,等.机器人柔性磨削机床的恒磨削 

力补偿机构及其动力学分析[J】.机械科学与技 

图4 PLC控制软件系统逻辑流程图 

术,2008,27(2):70 1. 

软件系统总体可分为响应面板操作子程序、 

[3】王万丽,等.三菱系 ̄I]PLC原理及应用[MI.北京:人民邮电 

出版社,2009. 

机器人通信子程序、HM1人机交互子程序三大模 

【4】郁汉琪.电气控制与可编程控制器应用技术[M】.南京东南 

块。响应面板操作子程序包括大轮工作子程序、 

大学出版社,2003. 

大轮停止子程序、小轮工作子程序与小轮停止子 

【5】王开夏.PLC控制系统的抗干扰技术【JI_机床电器,2005, 

(4):44—46. 

程序。机器人通信子程序、HM1人机交互子程序 

【6]洪云飞,李成群,负超.用于复杂空间曲面加工的机器人 

主要应用于系统参数的调整,如电机速度、接触 

磨削系统Ⅲ.中国机械工程(增刊),2006,(8):150—153. 

轮位置、接触力气缸压力值等。在软件设计时需 

第33卷第2期2011-2(上) I891 


发布者:admin,转转请注明出处:http://www.yc00.com/web/1713286024a2218964.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信