RSS

操作系统读书报告浅谈Real-Time Linux

来源:网络 作者:匿名 时间:2007-01-06 Tag: 点击:

3.通用实时操作系统

在各种专用RTOS中,一些多任务的机制如基于优先级的调度、实时时钟管理、任务间的通信、同步互斥机构等基本上是相同的,不同的只是面向各自的硬件环境与应用目标。实际上,相同的多任务机制是能够共享的,因而可以把这部分很好地组织起来,形成一个通用的实时操作内核。这类实时操作系统大多采用软组件结构,以一个个软件“标准组件”构成通用的实时操作系统,一方面,在RTOS内核的最底层将不同的硬件特性屏蔽掉;另一方面,对不同的应用环境提供了标准的、可剪裁的系统服务软组件。这使得用户可根据不同的实时应用要求及硬件环境选择不同的软组件,也使得实时操作系统开发商在开发过程中减少了重复性工作。

这类通用实时操作系统,有Integrated System公司的Psos+、Intel公司的iRMX386、Ready System公司(后与Microtec Research合并)的VRTX32等。它们一般都提供了实时性较好的内核、多种任务通信机制、基于TCP/IP的网络组件、文件管理及I/O服务, 提供了集编辑、编译、调试、仿真为一体的集成开发环境,支持用户使用C/C++进行应用程序的开发。

实时操作系统经过多年的发展,先后从实模式进化到保护模式,从微内核技术进化到到超微内核技术,在系统规模上也从单处理器的RTOS发展到支持多处理器的RTOS和网络RTOS,在操作系统研究领域中形成了一个重要分支。

 

三.Real-Time Linux

    本文所要讨论的Real-Time Linux为一种通用实时操作系统,但它与上述各类实时操作系统又是有所区别的。由于Real-Time Linux是在基于通用操作系统Linux的基础上构建的,而Linux为了满足分时系统的作业调度,在效率、对作业的处理方式等方面都不适合于实时任务的处理。而且,由于Linux是一个多平台、通用、交互型分时操作系统,且对Real-Time Linux的应用很大一部分是基于PC平台而非专用硬件平台的,因而可以想象,其在实时性、高效性等方面均会略逊于专业的实时操作系统(甚至包括其它的通用实时操作系统)。但是,由于PC机相较于那些专用的硬件平台具有价格低、功能强、使用方便、鲁棒性等特点,以及通用操作系统下存在大量成熟工具,如图形用户界面GUI、网络通讯接口等在目前的很多复杂实时系统中需要用到,因而Real-Time Linux自从出现还是受到很多的欢迎的。

    Real-Time Linux一般是在PC的架构下,将Linux的内核进行重新改造,并对系统进行重编译,使其更适合于实时的要求。这里我们可以看到开放源码(Open Source)的巨大优势。显然若使用Linux本来的内核进行实时操作是不现实的(Linux的系统响应时间相对于实时系统是太慢的,比如一个Linux中断,可能会花上超过 10ms 的时间。对有些像工业控制的应用而言,它们对时间的要求通常在 1ms 的等级上,Linux 根本无法满足这种需求。),毕竟在设计Linux时并没打算把它做成一个实时系统,所以通常的处理都是对Linux内核进行重编译,或者为Linux加上一个Shell,使得实时任务以不同于分时任务的方式来运行。

这里需要提一下POSIX与实时Linux的关系。POSIX表示“基于Unix的可移植操作系统界面”,其目的是为了促进为Unix编写的软件的可移植性,使Unix程序员的工作更方便。有些实时性的扩展,在POSIX.1b或IEEE 1003.1b已经得到体现。这些扩展中包括一些工具,如信号灯、内存锁定、时钟和计数器、消息队列以及优先级抢先调度等。

以POSIX为基础来标准化实时操作系统并未得到大家认可。这个标准显得过于庞大,包含了许多适合于Unix工作站但无助于嵌入式系统的特征,因而显得很臃肿。还有,由于这些工具都是以Unix为前提的,因而使得POSIX系统调用如同Unix的系统调用一样复杂而笨重,在VxWorks或pSOS+中仅需一两个调用即可完成的操作可能需要十几个POSIX调用,嵌入式系统程序员对这些是无法忍受的。

许多Linux开发者正在为Linux实现POSIX.1b的标准化工作,这个活动已初见成效并仍在继续。POSIX内存锁定工具和决定调度算法已经实现。但是,计数器函数和POSIX.1b信号灯机制仍未完成。尤其是,对任何实时操作系统至关重要的信号灯和消息队列均尚未得到实现。

虽然POSIX对实现一个实时Linux做了保证,但是当前和可预见的将来也只有“软”实时的应用能用POSIX.1b函数来实现。移植POSIX.1b函数到Linux上要面对的根本问题是Linux的内核是不可抢先的,因此,要想不大动干戈地修改内核而实现“硬”实时特性恐怕是不可能的。

而另一条非POSIX的路线却可能在目前更有价值,那就是新墨西哥科技大学的实时Linux(NMT RT-Linux)项目。注意到Linux是一个主要为PC用户设计的操作系统,开发者们断定,要想把实时功能移植到为分时设计的OS上是不可能有好结果的。取而代之的是,他们在操作系统下面实现了一个简单的实时内核,而Linux本身也仅作为那个内核上的一个任务来运行。下文对该系统会有详细介绍。

 

四.已经实现的Real-Time Linux简介

Real-Time Linux主要有二个大类:

第一类以NMT RT-Linux为代表,它们的实时进程实际上是一个核心模块。所以它们事实上是一种Real-Time驱动程序,RTAI及网络系统与之有很相似的结构,差别只是在于其驱动的硬件类别不同而已。

第二类如KURT,Linux/RK及RED-Linux等,这些系统的系统响应时间受限于PC能达到的时间分辨率。虽然RED-Linux已经把这个极限推到1ms左右,但可以预期在PC的架构下要达到100us以下是很困难的。也就是说,对于要求10K
以上频率的应用是不可能使用这种架构来达成。


1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
教程下载