Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->嵌入式系统 ->正文

Linux2.6内核在嵌入式应用上的突破

来源: 作者: 时间:2007-04-11 点击: [收藏] [投稿]

众所周知,Linux在嵌入式系统中的应用已经非常普遍。为了进一步促进这方面的应用,在Linux 2.6中,引入了很多非常有利于嵌入式应用的功能。这些新功能包括实时性能的增强、更方便的移植性、对大容量内存的支持、支持微控制器和I/O系统的改进等。

嵌入式计算通常涉及到各种尺寸的计算机,其中包括从小型手持设备(比如手表、照相机)到包含成千上万个节点的分布式系统(比如通信交换机)。嵌入式系统可能简单得只需要一个小的微控制器,也可能使用的是大量的并行处理器和海量的内存。Linux 2.6的改进,则对这一系列需求提供了支持。

响应时间的改进

嵌入式系统通常需要稳定的时间限制。虽然Linux 2.6还不是一个真正的实时操作系统,但说到其改进后的响应能力更加适合于这一领域的需求。

在2.6内核以前,要想让Linux获得更好的响应能力,就需要一些特殊的补丁。通常情况下,需要用户从厂商处购买补丁来改进中断性能和调度反应时间。如今,2.6内核把这些改进加入到了主流的内核当中,因此无需再对其进行特殊的配置。

Linux 2.6提供了一些功能,可以改进整体响应能力。其中两个改变更值得注意,首先现在使用的是抢占式内核,其次使用的调度算法也更加高效。

抢占式内核

和其它大多数通用操作系统一样,当一个进程被系统调用并处于运行状态时,以前版本的Linux是不允许进程进行调度的。这就意味着一旦系统调用中有某个任务正在执行,那么该任务就会控制处理器,直到系统调用结束,而不管其使用处理器时间的长短。这种设计显然要简单得多,但是在很多时候这会导致一些更重要的任务在等待系统调用完成的过程中被耽搁。

现在,内核在一定程度上使用了可抢占的模式。因此,在一些时效性比较强的事件中,Linux 2.6要比2.4具有更好的响应能力。当然了,它实际上并不是一个真正的RTOS,但是与以前的内核相比较,“停顿”的感觉要少得多。在Linux 2.6内核中,代码被设置了抢占点,这就意味着调度程序会中止现在正在运行的进程而来执行优先级更高的进程。在系统调用过程中,Linux 2.6会定时地检查抢占点,以避免不合理的延迟发生。而在检查过程中,调度进程很可能就会中止当前的进程来让另外一个进程运行。

有执行时间限制的软件和虚拟内存请求页面调度是不兼容的,因为这种方法处理页面慢的缺点会破坏程序的响应能力。而2.6内核可以被编译成没有虚拟内存的系统来消除这个问题。当然,这就要求软件设计人员必须考虑要有足够的实内存来运行应用程序。

图1和图2显示了2.4.1内核和2.6内核在平均情况下和最坏情况下任务的响应时间。数据来自通过一台PⅢ 1.0GHz处理器采集的310万个样本。测试使用的是带有超过5个中断的LynuxWorks的实时测试设备。系统处在由持续地磁盘数据传送、网络通信、控制台输入、图像处理和一个定时卡组成的高负载下运行。

图1 平均响应时间

图2 最差响应时间


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:必看:嵌入式系统及系统级可编程产品   下一篇:中国嵌入式产业关键环节是标准和协作

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号