在这个上下两部分的系列里,我将描述能够改善嵌入式Linux系统实时性能的主要方法。在本周,我将讨论有助于改善系统性能和响应能力的外部组件。
导致性能不佳的主要原因
导致实时性能不佳的主要因素有两个:过长的中断反应时间和任务切换反应时间。
让硬件来解决问题
通过使用更快的处理器,你可以获得性能上巨大的提高。Monta Vista的报告表明:运行在800-MHz Pentium III这一级别处理器上的 Linux 2.4内核在最差的情况下都能够获得大约60毫秒的中断响应时间。
对于很多嵌入式系统来说,选择(更快的)处理器不太现实,它们只能使用与特定型号的ARM或者PowerPC兼容的嵌入式处理器。一个60毫秒的中断响应时间(或者大约60毫秒)不算很快,但是这对于很多实时的嵌入式应用程序来说已经是很不错的性能了。
其他的系统要对专门的硬件、协处理器,或者数字信号处理器(DSP)使用时间关键函数。这对于多媒体嵌入式Linux系统来说是一个很常用的方式,这也会给予Linux操作系统进行非关键控制、监控、用户界面,以及通信任务的自由。
RTLinux将Linux内核作为简单实时操作系统(RTOS)或者子内核里优先权最低的线程来运行,从而避开了Linux内核性能的问题。RTLinux仿真了Linux内核所看到的中断控制器,这样关键的实时中断就能够保持激活,即使在被CPU中断的核心Linux内核请求被取消了的情况下。研究报告显示:这种方法在高速的处理器上能够获得低于10毫秒的中断反应时间。
这种方式的优势在于:实时和非实时的线程被分离的,而关键的实时函数会在固定的RTOS环境下运行,从而不受普通Linux内核的时间影响。
拥有两个内核就意味着有两组单独的API:一个用于Linux环境,另一个用于实时环境。此外,你将需要特殊的机制来实现实时和非实时环境之间的通信。
RTLinux的开发人员拥有底层虚拟化技术的美国专利(U.S. Patent 5,995,745),所以如果你想在非GPL的条款下使用RTLinux就必须支付专利使用费。换句话说,一定要先读读这份专利声明。
RTAI (实时应用程序接口)采取了硬件虚拟化的方式,这和RTLinux很类似。它是遵照GPL条款发布的,因为此就不需要支付同RTLinux专利相关联的专利使用费了。
我不是个代理律师,所以在你准备将这两个环境应用到商业项目里之前,请寻求法律建议,并仔细阅读授权条款。
在下部里,我将描述你可以用在普通Linux内核里用以提高其性能的内核补丁。
|
|
|
|
|
|
|
|
|