当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]针对嵌入式Linux实时化技术的讨论

 引言

  Linux支持PowerPC、MIPS、ARM、DSP等多种嵌入式处理器,逐渐被用于多种关键性场合。其中实时多媒体处理、工业控制、汽车电子等特定应用对Linux提出了强实时性需求。Linux提供了一些实时扩展,但需要进行实时性改造。本文针对嵌入式Linux实时化技术中的一些关键问题进行了讨论,如Linux内核时延,实时化主流技术方案及其评价等。

  Linux内核时延

  主流Linux虽然部分满足POSIX 1003.1b实时扩展标准,但还不完全是一个实时操作系统,主要表现为:

  ● 任务调度与内核抢占

  2.6版本内核添加了许多抢占点,使进程执行在内核代码时也可被抢占。为支持内核代码可抢占,在2.6版内核中通过采用禁用中断的自旋锁来保护临界区。但此时如果有低优先级进程在临界区中执行,高优先级进程即使不访问低优先级所保护的临界区,也必须等待低优先级进程退出临界区。

  ● 中断延迟

  在主流Linux内核设计中,中断可以抢占最高优先级的任务,使高优先级任务被阻塞的最长时间不确定。而且,由于内核为保护临界区需要关闭中断,更加增长了高优先级任务阻塞时间。

  ● 时钟精度

  Linux通过硬件时钟编程来产生毫秒级周期性时钟中断进行内核时间管理,无法满足实时系统较高精度的调度要求。内核定时器精度同样也受限于时钟中断,无法满足实时系统的高精度定时需求。

  ● 其他延迟

  此外,Linux内核其他子系统也存在多种延迟。比如为了增强内核性能和减少内存消耗,Linux仅在需要时装载程序地址空间相应的内存页。当被存取内容(如代码)不在RAM中则内存管理单元(MMU)将产生页表错误(Page-Fault)触发页面装载,造成实时进程响应时间不确定。

  Linux实时化技术发展

  主流Linux内核1.x、2.2.x和2.4.x版本的Linux内核无抢占支持,直到2.6版本的Linux内核才支持可抢占内核,支持临界区外的内核抢占和可抢占的大内核锁。在此基础上,Linux采用了下列两类实时化技术。

 ● 双内核方式

  Linux内核实时化双内核方式以RTLinux、RTAI和Xenomai等为典型代表。其中RTLinux实现了一个微内核实时操作系统支持底层任务管理、中断服务例程、底层任务通信队列等。普通Linux作为实时操作系统的最低优先级任务,Linux下的任务通过FIFO命名管道和实时任务进行通信,如图1所示。

  当Linux要关闭中断时,实时微内核会截取并记录这个请求,通过软件来模拟中断控制器,而没有真正关闭硬件中断,避免了由于关中断所造成的响应延迟。RT-Linux将系统实时时钟设置为单次触发模式,提供微秒级的时钟精度。RTAI类似RTLinux的实现方式,不同之处在于它修改了体系结构相关代码,形成一个实时硬件抽象层(RTHAL),使其实时任务能在任何时刻中断普通Linux任务,两者之间通过非阻塞队列进行通讯。RTAI将直接修改Linux内核的代码减至最少,具有更好的可移植性。Xenomai以RTAI为基础,也称RTAI /Fusion。采用了Adeos微内核替代RTAI的硬件抽象层。其特色还在于模仿了传统RTOS的API接口,推动传统RTOS应用在GNU/Linux下的移植。类似还有基于Fiasco微内核的L4Linux等开源项目。

  ● 内核补丁方式

  双内核实时方案下,实时任务需要按照微内核实时操作系统提供的另外一套API进行设计。而内核补丁方式则不改变Linux的API,原有应用程序可在实时化后的操作系统上运行,典型的有早期研究性的Kurt-Linux和Red-Linux,商业版本的MontaVista、TimeSys 和Wind River Linux,以及现阶段Ingo Monlnar等人开发的实时抢占补丁内核等[3]。

  Kurt-Linux是第一个基于普通Linux的实时操作系统。通过正常态、实时态和混合态进行实时和非实时任务的划分。RED-Linux通过任务多种属性和调度程序,可以实现多种调度算法。采用软件模拟中断管理,并在内核插入了许多抢占点,提高了系统调度精度。

  MontaVista Linux在低延迟补丁以及可抢占内核补丁基础上[4],通过开发内核O(1)实时调度程序并对可抢占内核进行了改进和测试,Linux 2.4内核时代,MontaVista Linux 作为商业成熟产品在实时性上有较强的优势。TimeSys Linux通过内核模块的方式也提供了高精度时钟、优先级继承mutex等支持。

  2.6版本的主流内核吸收了以上技术,支持CONFIG_PREEMPT_NONE,CONFIG_PREEMPT_VOLUNTARY和CONFIG_PREEMPT等多种配置选项。分别适合于计算型任务系统,桌面用户系统和毫秒级延迟嵌入式系统。2005年,针对2.6内核MontaVista推出了实时Linux计划,推进了Linux内核实时化进程。随后Ingo Molnar发布了新的实时抢占补丁,并逐渐成为Linux内核实时主流技术,也为包括MontaVista Linux,Wind River Linux采用和补充,本文后续内容要涉及实时抢占补丁。
[!--empirenews.page--][!--empirenews.page--]

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

阿联酋迪拜2025年8月26日 /美通社/ -- 纳斯达克上市公司Robo.ai Inc.今日正式宣布完成品牌焕新升级,并于8月26日正式启用全新纳斯达克股票代码"...

关键字: AI 人工智能 代码 智能科技

一个线程只能属于一个进程,而一个进程可以有多个线程,线程是进程的一部分,就像工人是工厂的一部分。资源是分配给进程的,同一进程的所有线程共享该进程的全部资源,就像工厂里的工人共享工厂的设备和场地。处理机(CPU)则是分给线...

关键字: 进程 线程

DXC内部新成立的Boomi卓越中心(COE),将成为跨行业客户的创新枢纽 DXC与Boomi携手助力客户整合AI智能体,为规模化应用代理式AI做好准备 弗吉尼亚州阿什伯恩2025年8月19日 /美通社/ --名列财...

关键字: 进程 AI BSP 自动化

北京2025年8月13日 /美通社/ -- 近日,北京积算科技有限公司(以下简称"积算科技")推出一站式AlphaFold3在线算力服务,现已开放免费使用。其内置优化后的AlphaFold3模型,支持...

关键字: ALPHA 代码 图形化 蛋白质

北京2025年7月21日 /美通社/ -- 浪潮信息宣布元脑企智一体机已率先完成对Kimi K2 万亿参数大模型的适配支持,并实现单用户70 tokens/s的流畅输出速度,为企业客户高效部署应用大模型提供高处...

关键字: 模型 AGENT TOKEN 代码

7月18日,一则“微信安卓安装包出现5处fxxk”的话题,迅速登上微博热搜,吸引了众多网友的热议和关注。

关键字: 代码 程序员

上海 2025年7月9日 /美通社/ -- 据Gartner最新研究显示,到2025年全球将有75%的企业将生成式AI纳入核心业务流程。这其中,人力资源领域因其天...

关键字: AI BSP 进程 CHINA

天津2025年6月25日 /美通社/ -- 2025年6月24日至26日,世界经济论坛第十六届新领军者年会(夏季达沃斯论坛)在天津举行。本届年会以"新时代企业家精神"为主题,汇聚来自全球1700余位政...

关键字: 人工智能 进程 BSP 微软

新加坡2025年6月4日 /美通社/ -- THE GROWHUB LIMITED(简称"The GrowHub"或"该公司")是一家总部位于新加坡的公司,利用区块链技术,来提升整...

关键字: 人工智能 进程 AI 供应链

南京 2025年5月30日 /美通社/ -- 日前,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(以下简称"TÜV莱茵"...

关键字: 协作机器人 进程 测试 BSP
关闭