实时操作系统学习心得

时间:2024.4.30

实时操作系统学习心得

摘要:实时操作系统在实时控制系统和实时事务处理系统中有着重要的作用。本文以实时操作系统的结构和功能为线索,介绍了实时操作系统发展过程及各阶段的特点。本文借鉴通用操作系统的功能划分,强化实时性、故障容错、标准兼容性等关键特征,从每个功能领域对常用实时操作系统进行深入的研究, 对Lynx实时系统公司的LynxOS、QNX软件系统有限公司的QNX以及两种具有代表性的实时Linux--新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux进行比较。

关键词:实时操作系统、学习心得

1

目 录

1、实时操作系统的概述 ......................................................................................... 3

1.1实时操作系统的分类 ........................................................................................................... 3

1.2实时操作系统的特点 ........................................................................................................... 3

2、实时操作系统的发展历程 ................................................................................. 4

2.1早期的实时操作系统 ........................................................................................................... 4

2.2 逐渐完善的实时操作系统 .................................................................................................. 4

2.2.1 专用实时操作系统.................................................................................................... 5

2.2.2 通用实时操作系统.................................................................................................... 5

2.3 基于微内核思想的实时操作系统 ...................................................................................... 5

3、简述实时操作系统的实现技术 ......................................................................... 6

3.1 实时性能主要实现技术 ...................................................................................................... 6

3.2 实时性能重要指标 .............................................................................................................. 7

4、常见的嵌入式实时操作系统比较 ..................................................................... 8

4.1嵌入式实时操作系统简述 ................................................................................................... 8

4.2嵌入式实时操作系统分析标准 ........................................................................................... 8

4.2.1 实时性分析................................................................................................................ 9

4.2.2 可靠性和容错能力.................................................................................................. 10

4.3 实时操作系统的比较 ........................................................................................................ 11

4.3.1基本特征概述........................................................................................................... 12

4.3.2体系结构异同........................................................................................................... 12

4.3.3调度策略分析........................................................................................................... 13

4.3.4操作系统服务比较................................................................................................... 14

4.3.5系统开放性对比....................................................................................................... 15

5、结束语 ............................................................................................................... 16

参考文献 ................................................................................................................. 17

2

1、实时操作系统的概述

所谓“实时”,对于计算机系统而言意味着不但要求逻辑结果正确,而且有时间的要求,即这个结果必须产生截止期限之前。对于实时而言,时间期限的要求是必须得到满足的,但是区分具体应用场合,这种要求的严格程度又有所不同。如果这种要求是绝对的,任何一次不满足就能造成实难性后果,那就称之为强实时;否则,偶尔的不满足并不足以造成严重后果,是可以接受的,则称为弱实时。在操作系统领域,实时操作系统属于一个很特别的“另类”,绝大多数的人们对此较为陌生。

人们常见的是所谓分时系统。最为经典的分时系统当推UNIX操作系统,已经具有近百年的历史,广泛应用于研究、教育及商业领域。UNIX系统的优点在于它的高效率及开放性,在这方面,同为分时系统的Windows是望尘莫及的。分时操作系统的设计目标在于通过对最一般情形的优化,最大限度地有效利用硬件资源,从而达到最大的处理能力,即“吞吐率”;而实时操作系统的设计思想,则与此大相径庭,对于实时系统而言,更重要的是响应时间,而且要保障最坏的情形下的响应时间。

1.1实时操作系统的分类

实时系统可分为实时事务处理系统和实时控制系统两大类,前者的大量工作是进行事务处理,对时间有一定的要求,响应时间一般不是很急,如银行业务;而后者要求对外部事件作出快速确定的反应,否则可能导致灾难性后果,如飞行器控制系统。在实时系统中起核心作用的是实时操作系统(RTOS),它象是人的中枢神经系统,控制、管理着实时系统的正常工作。

按照对外部事件响应时间不同,实时操作系统也分为弱实时操作系统和强实时操作系统,弱RTOS的系统响应时间以秒来刻化,而强RTOS的系统响应时间一般为几十微秒到几十毫秒。

1.2实时操作系统的特点

对于通用操作系统,其目的是方便用户管理计算机资源,追求系统资源最大利用率,而实时操作系统在进行资源管理的同时,还必须具备RTOS的特点:实时性与可确定性、高可靠性、灵活性及并发性。

实时性和可确定性即系统对外部事件的响应速度快,且响应时间可确定。RTOS一般用于实时性要求很高的实时控制系统,如武器系统、电子战系统、工业生产系统和调整测控系统等,这类系统外部行为虽表现出随机性,但要求其RTOS作出的反应是快速的,可预测的。只有RTOS在时间上对外部事件的响应是可确定的,才能保证实时系统设计的时限要求。同时,因其应用环境特性的需

3

要,要求有很高的可靠性。在RTOS的设计时,强调应有多级的故障检测机制和恢复方法。灵活性实时系统的应用领域很广,RTOS必须具有相当大的灵活性,以适应不同系统的需要,灵活性主要体现在RTOS的可剪裁性、可配制性等方面,以便实时操作系统能以最佳方式适应各种系统的需求。

2、实时操作系统的发展历程

实时操作系统的发展历程实时操作系统的研究是从60年代开始的,从系统结构上看,到现在已经历了三个阶段:系统监控软件、软组件结构的RTOS和基于微内核思想的可伸缩内核结构的RTOS。

2.1早期的实时操作系统

早期的实时操作系统,还不能被称为真正的RTOS,它只是小而简单的,带有一定专用性的软件,功能较弱,可以认为是一种系统监控程序,它一般为用户提供对系统的初始化管理,及简单的实时时钟管理。一些高级的复杂系统监控软件也引入了任务调度及低级的任务间协调等功能。应用程序对外部事件响应采用主循环轮询处理、前后台运行和中断处理等方法。这时期,实时应用较简单,实时性的要求也不高,因此应用程序、系统监控软件和硬件运行平台往往是紧密联系在一起的,它们相互制约,相互协作。早期实时系统的开发,包括软硬件系统,几乎都由用户自己完成。

2.2 逐渐完善的实时操作系统

随着计算机技术的不断发展,计算机在各个领域的应用也日益广泛和深入。特别是在嵌入式计算机系统应用领域,从工业控制、机器人、智能产品、电信产品到先进的军事武器装备,都需要有实时操作系统的支持。实时应用变得越来越复杂,功能需求也越来越高,这使得应用系统的设计者单独设计整个系统软件成为不可能。而且简单的监控软件也不能很好地协调各外部事件的运行,不能满足大型应用系统对多任务、实时性等功能的要求。应用呼唤有功能更强大的实时操作系统的出现。它应具有操作系统的基本功能,能对整个实时系统的运行进行控制,对系统中多任务的运行调度进行管理,具备系统级的控制能力,实时性强,可靠性高,能充分满足实时应用的需求,成为大型嵌入式计算机实时系统不可缺少的软件支撑。这时期RTOS的发展经历了两个阶段:专用实时操作系统的研制

4

和通用实时操作系统的研制。

2.2.1 专用实时操作系统

即用户为适应嵌入式实时应用的需要,自己研制与特定硬件相匹配的实时操作系统。这类专用实时操作系统在国外称为(Real-Time Operating SystemDeveloped in House),它是在初期,用户为满足自身开发需要而研制的,它一般只能适用于特定的硬件环境,且缺乏严格的评测,可靠性和移植性都不强。现在,除特殊需求外,实时应用开发者已不再自己研制专用RTOS。

2.2.2 通用实时操作系统

计算机硬件的系统化、标准化,以及对实时操作系统功能要求的增强,用户自己开发实时操作系统变得越来越困难,并且将延长开发周期,增加成本,为此,出现了专业的实时操作系统开发商,它们研制通用实时操作系统,并尽可能地适应各种应用的需求,使实时系统的系统软件与应用软件分离,用户能更多地集中精力于应用软件的开发,而由开发商提供系统软件支持。

这类通用实时操作系统,有MRI公司的VRTX32、Intel公司的iRMX和Integrated System公司的Psos等。它们都有较完善的实时操作系统的功能,在系统结构上采用软组件(Software Compo-nent Model)。以VRTX32为例,它主要由Kernel模块、SNX网络组件、IFX文件及输入输出组件和实时运行库(RTL)等构成。在内核模块实现了任务管理、任务间通信、内存管理、实时时钟等功能,可以动态生成或删除系统对象,如任务、消息队列、信号量、信箱等。实现了可抢占的、基于优先级的任务调度算法,并提供可选的时间片轮转调度。为任务间通信,提供了邮箱、消息队列、事件标志和信号量机制。

2.3 基于微内核思想的实时操作系统

微内核设计,是当今推动操作系统发展的重要因素之一,其特点是将操作系统最基本、最简单的功能置于较小的内核,称作微内核(MicroKernel),而将诸如文件管理等其它所有传统操作系统服务,都作为用户层的服务程序驻留在微内核外。微内核的特点决定了其固有的模块化特性,而模块化反过来又为微内核操作系统提供了许多优良的特性,包括维护简单、修改方便、可移植性强、操作灵活、支持多处理器等功能。借鉴微内核的设计思想,针对实时操作系统自身的特点,实时操作系统开发厂商采用一组环绕基核的类似于微内核的独立功能模块来建立可伸缩的实时操作系统,并把基核称为超微内核(NanoKernel)。采用这种基于微内核的思想,实时操作系统开发商推出了(VRTXsa、Psos+m和Vxworks等新一代体系结构的实时操作系统,它们都基于微内核或超微内核结构,以客户/服

5

务器模式完成全部或部分的系统功能。

基于微内核设计思想的可伸缩性实时操作系统,能简化在操作系统核中增加新功能的开销,并具有更好的剪裁性满足各种系统存储器资源的需求。

3、简述实时操作系统的实现技术

由于指导思想南辕北辙,因而,分时系统与实时系统是很难“整合”的。不过,由于分时系统应用广泛,被称为通用系统,在它上面有很好的开发环境、调试工具,并且这些环境与工具为开发者所熟悉,所以人们还是在进行着这种努力。这方面,几乎所有的工作都集中在依托UNIX系统对它进行改造,从而实现实时系统上面。增强UNIX系统实时性,是一个很早就有的想法,为此,90年代初人们就制定了相关标准,即POSIX1003.1b。这个标准规定了“开放系统”对实时应用提供的服务,包括较高精度的时钟,实时调度策略,进程页面驻留等。目前几乎所有UNIX类操作系统都实现了这个标准所规定的大部分内容。然而,仅仅实现了POSIX1003.1b,通用分时系统所获得的实时性是很“弱”的,弱到对很多应用而言几乎没有任何实际意义。

3.1 实时性能主要实现技术

实时操作系统的实时性是第一要求,需要调度一切可利用的资源完成实时任务。根据响应时间在微秒、毫秒和秒级的不同,可分为强实时、准实时和弱实时三种。强实时系统必须是对即时的事件作出反应,绝对不能错过事件处理时限。例如测控领域就是要求强或接近强实时系统。在机顶盒、PDA、信息家电等应用领域,系统负荷较重的时候,允许发生错过时限的情况而且不会造成太大的危害,准和弱实时系统就可满足应用。一个强实时的操作系统通常使用以下技术:

1) 占先式内核

当系统时间响应很重要时,要使用占先式内核。当前最高优先级的任务一旦就绪,总能立即得到CPU的控制权,而CPU的控制权是可知的。使用占先式内核使得任务级响应时间得以最优化。

2)调度策略分析

任务调度策略是直接影响实时性能的因素。强实时系统和准实时系统的实现区别主要在选择调度算法上。选择基于优先级调度的算法足以满足准实时系统的要求,而且可以提供高速的响应和大的系统吞吐率。当两个或两个以上任务有同样优先级,通常用时间片轮转法进行调度。对硬实时系统而言,需要使用的算法就应该是调度方式简单,反应速度快的实时调度算法了。尽管调度算法多种多样,但大多由单一比率调度算法(RMS)和最早期限优先算法(EDF)变化而来。前者主

6

要用于静态周期任务的调度,后者主要用于动态调度,在不同的系统状态下两种算法各有优劣。在商业产品中采用的实际策略常常是各种因素的折中。

3)任务优先级分配

每个任务都有其优先级。任务越重要,赋予的优先级应越高。应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的。反之,应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。

4)时间的可确定性

强实时操作系统的函数调用与服务的执行时间应具有可确定性。系统服务的执行时间不依赖于应用程序任务的多少。系统完成某个确定任务的时间是可预测的。

3.2 实时性能重要指标

衡量实时操作系统实时性能的重要指标有:

1)任务切换时间

当多任务内核决定运行另外的任务时,它把正在运行任务的当前状态(即CPU寄存器中的全部内容)保存到任务自己的栈区之中。然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。这个过程就称为任务切换。做任务切换所需要的时间取决于CPU有多少寄存器要入栈。CPU的寄存器越多,额外负荷就越重。

2)中断响应时间(可屏蔽中断)

计算机接收到中断信号到操作系统作出响应,并完成切换转入中断服务程序的时间。对于占先式内核,要先调用一个特定的函数,该函数通知内核即将进行中断服务,使得内核可以跟踪中断的嵌套。占先式内核的中断响应时间由下式给出:

中断响应时间=关中断的最长时间+保护CPU内部寄存器的时间+进入中断服务函数的执行时间+开始执行中断服务例程(ISR)的第一条指令时间

中断响应时间是系统在最坏情况下响应中断的时间,某系统100次中有99次在50ms之内响应中断,只有一次响应中断的时间是250ms,只能认为中断响应时间是250ms。

虽然当今的实时操作系统已日臻完善,但仍有一些问题存在并干扰着强实时的实现。我们应充分的重视,并通过合理的安排程序减少它们的危害。

7

4、常见的嵌入式实时操作系统比较

实时系统是对外来事件在限定时间内能作出反应的系统,这类系统总是嵌入在一个大环境中,即嵌入在所谓宿主系统中,因此实时系统一般也是嵌入式系统。

4.1嵌入式实时操作系统简述

嵌入式实时操作系统作为大多数实时系统的软件平台,它管理系统的硬件资源,为应用软件提供各种必要的服务。实时操作系统的采用,可以使应用软件开发人员避开繁琐的硬件管理与操作编程,而把主要精力放在目标应用的算法研究以及应用程序自身的构架上;同时应用实时操作系统提供的各种服务,可以更容易地构建出复杂的嵌入式实时应用系统;并且在软件重用性和开放性方面实时操作系统也起到了非常重要的作用。

可以说每一种实时操作系统都有其自身的优点,它们的体系结构以及所能够提供的服务也不尽相同。而实时系统本身的特殊性又对实时操作系统提出了许多带有共性的需求,比如实时性、确定性、并发性、故障探测及容错能力、可裁减性以及标准的应用编程接口等。现代普通操作系统在功能上一般被划分为特定的功能模块,比如调度管理、内存管理、文件系统、网络系统以及进程间通讯等,它们之间相互协调,共同满足系统功能和性能需求。

到目前为止,已经成熟并且得到广泛应用的嵌入式实时操作系统有很多种,它们不管是从体系结构上,还是从所能提供的功能模块和性能指标上都存在着较大的差异,可以说各有优缺点。这就为实际工程应用中的实时操作系统选型带问题来了困难,选择正确合适的实时操作系统,不仅可以更好地满足系统的性能指标,同时还可以大大降低开发难度,节省开发成本,增加系统的可移植性。因此,从功能和性能两个方面,对当前广泛应用的实时操作系统进行深入的分析和对比,展示它们的优缺点,为实时系统操作系统的选型提供指导就显得十分必要。

4.2嵌入式实时操作系统分析标准

从用户的角度来看,他们关心的是所采用的实时操作系统是否能够满足系统的实时性需求,实时操作系统是否足够可靠并能够长时间安全运行,开发的应用软件是否可以重用,系统是否可以按需要进行裁减,开发是否方便等问题。而在实时操作系统本身的描述上,我们通常关注的是它的体系结构、调度策略和内存管理方式等具体的技术问题。基本上,这两个方面的问题是直接相关的,实时操作系统通过精心设计它的体系结构,采用多项技术来共同达到用户对于实时性、可靠性等方面需求。

8

下面笔者从实时性、可靠性与故障容错、标准兼容性等几个实时系统所关注的主要问题来对实时操作系统进行分析,通过分析实时操作系统所采用的具体技术措施,与实时系统的实时性、可靠性等方面的需求关联起来。在后面的章节中,我们对几种被广泛应用的实时操作系统技术特征进行详细对比。

4.2.1 实时性分析

实时性是嵌入式实时操作系统的一个非常重要的特性,同时也是选择嵌入式实时操作系统时需要首先衡量的一个重要指标。为了增强嵌入式系统的实时性,嵌入式操作系统通常从多个方面着手,应用多种技术来达到这个目的。目前主要包括:

1)可抢占式内核可抢占内核设计是指高优先级任务可以抢占低优先级任务的执行,即使低优先级任务正在执行操作系统内核代码。通过这种方式,最高优先级的任务一旦就绪,总能很快得到CPU的控制权,从而增强系统响应的实时性。

2)系统调度策略任务调度策略是直接影响系统实时性的一个重要因素。强实时系统和准实时系统的实现区别主要在选择调度算法上。选择基于优先级调度的算法足以满足准实时系统的要求,而且可以提供高速的响应和大的系统吞吐率。最简单的调度算法是先来先执行调度策略(SCHED_FIFO),当两个或两个以上任务有同样优先级,通常用时间片轮转法进行调度(SCHED_RR)。对硬实时系统而言,需要使用的算法就应该是调度方式简单,反应速度快的实时调度算法了。尽管调度算法多种多样,但大多由单一比率调度算法和最早期限优先算法变化而来。前者主要用于静态周期任务的调度,后者主要用于动态调度,在不同的系统状态下两种算法各有优劣。在商业产品中采用的实际策略常常是各种因素的折中。

3)任务优先级分配和优先级逆转在基于优先级调度的实时系统中,每个任务都有其优先级。任务越重要,赋予的优先级应越高。应用程序执行过程中各任务优先级不变,则称之为静态优先级。在静态优先级系统中,各任务以及它们的时间约束在程序编译时是已知的。反之,应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。可设置的优先级范围,任务优先级是否可动态调整,不同的实时操作系统之间存在较大的差异。优先级反转是指一个任务等待比它优先级低的任务释放资源而被阻塞,如果这时有中等优先级的就绪任务,阻塞会进一步恶化,严重影响了实时任务的完成。目前解决优先级反转的措施有两种:优先级继承和优先权极限。

4)执行时间的确定性系统执行某项任务或者对外界信号的反应是否能在一个确定的时间段内完成,这个时间最大是多少,是衡量一个实时系统性能的重要

9

指标。强实时操作系统的函数调用与服务的执行时间应具有可确定性,系统服务的执行时间不依赖于应用程序任务的多少,系统完成某个确定任务的时间是可预测的。

4.2.2 可靠性和容错能力

在大多数安全关键的实时系统中,可靠性是衡量和选择实时操作系统的另一个重要因素。可靠性包含两个方面:

1)系统平均无故障时间大,也就是系统基本上不出现故障;

2)在系统一旦出现故障的情况下,操作系统提供对故障快速并智能恢复的机制,从而避免灾难性后果的发生。这就要求实时操作系统应用各种必要的技术措施来保证系统可以长时间无故障运行,同还必须提供一些故障容错方法,以使得系统即使在出现故障的情况也能快速地恢复。

目前提高系统实时操作系统可靠性的主要技术包括:

1)单内核/微内核从实时操作系统的系统构架上来看,不同的构架方式会对系统的可靠性带来巨大的影响。目前主要有两种系统构架方式:单一内核体系结构和微内核体系结构。单一内核体系结构的操作系统将大多数或所有驱动程序、文件系统和其他系统服务绑定到内核中。这样虽然系统的效率可能会有所提高,但系统中任何组件的一个错误都可能带来灾难性的内核故障,并且这种故障是系统级的,很难恢复。相反,基于微内核构架的实时操作系统在操作系统内核中只实现了一个包含了基本系统服务的小内核(如信号量、定时器、任务调度等),驱动程序、文件系统、协议栈和用户应用程序在内的所有其他的组件在内核外部分离的、保护内存的进程中运行。所有的组件能够通过消息传递进行通信,一个定义良好的通信机制保障了程序在保持彼此安全隔离的前提下进行数据交换。这样,有问题的系统服务不再作为孤立的故障点,而是在它破坏其他服务或操作系统内核之前就可以被终止并重启,从而避免产生系统级的灾难性故障,一般来说在内核外产生的软件故障是可以恢复的。

2)内存空间保护不同的操作系统可能采用不同的内存访问控制策略,这也是影响系统可靠性的一个主要因素。如果系统采用单一的内存地址空间模式,则大部分或所有软件组件都在一个单一的内存地址空间中运行,包括操作系统内核、网络协议栈、设备驱动程序和应用程序等。从可靠性的角度来看,这种架构有两个明显的缺陷: 1)如果在任何组件中产生一个指针错误,不论这个错误多么细微,都可能破坏操作系统内核或任何其他组件,导致不可预测的行为和整个系统的崩溃; 2)很难动态修复或替换任何有故障的组件。在大多数情况下,出现这些问题时系统复位是唯一的选择。如果实时操作系统提供内存空间保护措施,则系统内核、不同的应用程序任务之间将在隔离的、受保护内存地址空间中运行。如果一

10

个应用程序试图访问其地址空间之外的数据,内存管理单元(MemoryManagementUnit,MMU)将通知操作系统,操作系统可能会采取保护措施,例如终止出错进程。通过对内存空间的保护,可以隔离系统故障,并使得对它们进行恢复提供可能。

3)看门狗定时器

看门狗定时器是一种用于故障探测的特殊定时器。在正常情况下,看门狗定时器被定时复位,如果程序产生错误使得看门狗定时器没有在规定的时间内被复位,看门狗定时器服务程序将被执行,在这个定时器服务程序中可以对程序故障进行隔离和恢复。

4)分布式冗余配置

有一部分分布式操作系统支持分布式配置,也就是通常所说的分布式操作系统。一般来说,分布式操作系统提供可靠的分布通式信服务,系统的任务可以分布在不同的处理机上来运行,这些任务通过操作系统提供的可靠通信服务进行信息交互。

应用分布式操作系统自身特有的分布式系统结构特点,可构建冗余的系统配置结构来提高整个系统的可靠性与故障恢复能力。在分布式冗余系统中,相同的系统任务被布置到两或多个系统节点上来运行。在正常情况下,其中只有一个节点上的任务在正常执行,其他冗余节点处于监视状态。一旦目前正在工作的节点出现故障,则备用的冗余节点开始接替故障节点的工作,以使得系统对用户提供不间断的可靠系统服务。如果实时操作系统是可以分布式配置的,并且它提供可靠的分布式通信服务,通过构建这种分布冗余系统来提供整个系统的可靠性是一种不错的选择。

4.3 实时操作系统的比较

目前嵌入式实时操作系统数目众多,就应用比较广泛的来看也有几十种之多。在不同系统上开发的应用软件是否可以相互移植、移植的工作量有多大是用户最为关注的问题之一。为了达到方便移植,软件重用的目的,实时操作系统必须具有大致相同的系统服务,以及兼容的应用编程接口。基于这种原因,针对操作系统的标准化工作在几十年前就已经开始。在这些标准中,目前有一部分已经得到广泛应用和支持,比如POSIX标准、uITRON标准和OSEK/VDX标准等。OSEK/VDX标准是从欧洲发展而来的针对汽车工业的嵌入式实时操作系统标准。uITRON标准主要由日本几家公司提出来, POSIX标准则是从传统UNIX发展而来的一种开放系统标准。相比而言, POSIX标准应用范围更广,目前支持POSIX标准的嵌入式操作系统也比较多。

11

如果实时操作系统提供POSIX标准兼容的应用编程接口,则应用POSIX接口风格编写的应用软件可以在这些实时操作系统之间方便的进行移植。目前应用比较广泛的实时操作系统大都提供对POSIX标准的部分或全部支持,在本文后面将要讨论的实时操作系统特性对比中, POSIX标准兼容性将作为一个重要的对比分析要素。2 常用嵌入式实时操作系统性能对比分析从用户的角度来看,他们关心的是实时操作系统是否具有良好的实时性指标,是否具有高的可靠性与故障容错能力,以及它与其他系统的兼容性怎么样等问题。实时性性能指标实际上由系统的任务调度策略、优先级反转控制、并发性支持以及硬件级编程支持等特性决定;而内存空间保护、内核体系结构以及软件看门狗等则是与系统可靠性直接相关的。

下面对Lynx实时系统公司的LynxOS、QNX软件系统有限公司的QNX以及两种具有代表性的实时Linux--新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux进行比较。

4.3.1基本特征概述

1:QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1 (程序接口)和POSIX.2(Shell和工具)、部分遵循POSIX.1b(实时扩展)。它最早开发于19xx年,到现在已相当成熟。

2:LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。它最早开发于19xx年。

3:RT-Linux是一个嵌入式硬实时操作系统,它部分支持POSIX.1b标准。 4:KURT-Linux不是为嵌入式应用设计的,不同于硬(hard)实时/软(soft)实时应用,他们提出"严格(firm)"实时应用的概念,如一些多媒体应用和ATM网络应用,KURT是为这样一些应用设计的"严格的"实时系统。

4.3.2体系结构异同

实时系统的实现多为微内核体系结构,这使得核心小巧而可靠,易于ROM固化,并可模块化扩展。微内核结构系统中,OS服务模块在独立的地址空间运行,所以,不同模块的内存错误便被隔离开来。但它也有弱点,进程间通信和上下文切换的开销大大增加。相对于大型集成化内核系统来说,它必须靠更多地进行系统调用来完成相同的任务。

1:QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其

12

它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为 12Kb)而且运行速度极快。

2:LynxOS目前还不是一个微内核结构的操作系统,但它计划使用所谓的"Galaxy"技术将其从大型集成化内核改造成微内核,这一技术将在LynxOS3.0中引入。新的28Kb微内核提供以下服务:核心启动和停止、底层内存管理、出错处理、中断处理、多任务、底层同步和互斥支持。

3:RT-Linux实现了一个小的实时核心,仅支持底层任务创建、中断服务例程的装入、底层任务通信队列、中断服务例程(ISR)和Linux进程。原来的非实时Linux核心作为一个可抢先的任务运行于这个小核心之上,所有的任务都在核心地址空间运行。它不同于微内核和大型内核,属于实时EXE(realtime executive)体系结构。其可靠性和可维护性对电信服务系统来说都不够理想。

4:KURT-Linux核心包括两个部分:内核和实时模块。内核负责实时事件的调度,实时模块为用户进程提供特定的实时服务。它不属于微内核结构。

4.3.3调度策略分析

任务调度策略是直接影响实时性能的因素。尽管调度算法多种多样,但大多由单调率算法(RM)和最早期限优先算法(EDF)变化而来。前者主要用于静态周期任务的调度,后者主要用于动态调度,在不同的系统状态下两种算法各有优劣。在商业产品中采用的实际策略常常是各种因素的折中。

QNX

QNX 提供POSIX.1b标准进程调度:

1:32个进程优先级;

2:抢占式的、基于优先级的正文切换;

3:可选调度策略:FIFO、轮转策略、适应性策略。

4:LynxOS支持线程概念,提供256个全局用户线程优先级;

5:硬实时优先级调度:在每个优先级上实现了轮转调度、定量调度和FIFO调度策略;

6:快速正文切换和阻塞时间短;

7:抢占式的RTOS核心。

RT-Linux

在操作系统之下实现了一个简单的实时核心,Linux本身作为一个可抢占的任务在核内运行,优先级最低,随时会被高优先级任务抢占。

13

1:用户可自行编写调度程序,它们可实现为可加载的核心模块;

2:已实现的调度程序有:基于优先级的抢占式调度和EDF调度;

3:基于优先级的调度使用"单调率算法",它直接支持周期任务。

KURT-Linux

可运行在两种状态之下:通常状态和实时状态。在通常状态下,所有进程都可以运行,但某些核心服务将带来中断屏蔽的不可预期性。实时模式只允许实时进程运行。

1:支持FIFO调度策略、轮转调度策略和UNIX分时调度策略;

2:增加了SCHED-KURT调度策略,这是一种静态调度策略,使用一个特殊的调度文件记录预先定义好的待调度进程的参数。

3:从以上简略描述可以看出,前三种调度策略实现较规范,特别是两种商业RTOS,遵循或部分遵循POSIX.1b实时调度标准。

4.3.4操作系统服务比较

QNX的系统服务:

1:多种资源管理器,包括各种文件系统和设备管理,支持多个文件系统同时运行,包括提供完全POSIX.1及UNIX语法的POSIX文件系统,支持多种闪存设备的嵌入式文件系统,支持对多种文件服务器(如Windows NT/95、LAN Manager等)的透明访问的SMB文件系统、DOS文件系统、CD-ROM文件系统等。

2:设备管理。在进程和终端设备间提供大吞吐量、低开销接口服务。 3:图形/窗口支持。包括QNX Windows、X Window System for QNX、对MS Windows NT/95和X Window系统的远程图形连接。

4:TCP/IP for QNX。

5:高性能、容错型QNX网络--FLEET,使得所有连入网络的计算机变成一个逻辑上的超级计算机。

6:透明的分布式处理。FLEET网络处理与消息传递和进程管理原语的集成,将本地和网络IPC统一起来,使得网络对IPC而言是透明的。

LynxOS的系统服务:

1:网络和通信。由于使用UNIX/POSIXAPI,Lynx很适合于数据通信和Internet应用。又由于系统的开放性,网络软件很容易移植到Lynx上。同样,Lynx

14

亦提供关键的电话通信协议,使之适用于电信系统的基础架构、操作和多媒体应用。

2:TCP/IP协议栈。Lynx自带优化的TCP/IP协议栈,提供高性能服务,如TCP头预测、高级路由算法、IP级多址广播和链路级高速缓冲。

3:Internet工具。包括,Telnet、Ftp、tftp、PPP、SLIP、实时调度的嵌入式Java虚拟机、嵌入式HTTPserver、bootp、ARP/RARP、DNS域名服务、电子邮件、Perl、电话通信协议等。

4:SVR3流。LynxOS流机制为开发和移植基于流的驱动程序和应用提供了核心支持。

5:文件系统。实时的类UNIX层次结构文件系统:连续结构文件、带缓冲/不带缓冲、原始分区和原始设备访问。

6:基于Motif的图形用户接口。

7:分布式计算资源。SCMP与VME总线上的多处理结合,PCI桥服务、CompactPCI Hot-swap Services、Lynx/HA-DDS分布式数据系统。

Linux的系统服务:

近来,很多基于Linux的实时应用被开发出来,它具有成熟和丰富的资源。 1:UNIX用户的开发工具和应用软件都被移植到Linux上。

2:TCP/IP网络协议。

3:各种Internet客户/服务端软件。

4:X Window。

5:C/C++、Java等语言编译器。

上述系统的共同点是都提供了图形界面、各种网络支持等必要工具。QNX是一个更加符合传统"分布式"概念的操作系统,目标是把整个局域网变成一个大的超级计算机,使得网络的存在对用户透明,文件系统提供的服务也很丰富。但是,分布式的程度越高也意味着系统开销的增大。LynxOS则着意于提供丰富的网络服务,而Linux的最大优势则是经济,还可以通过新闻组或mailing list快速地解决用户碰到的任何问题。

4.3.5系统开放性对比

对于很多大、中型系统来说,大多数软件都是为UNIX平台编写的,因此RTOS是否提供POSIX/UNIX API就显得很重要。

QNX的开放性:

15

1:QNX的POSIX兼容性和其提供的UNIX特色的编译器、调试器、X Window和TCP/IP都是UNIX程序员所熟悉的。

2:支持多种CPU:AMD ElanSC300/310/400/410、Am386 DE/SE、Cyrix MediaGX、x86处理器(386以上)、Pentium系列、STMicroelectronics 的STPC。

3:多种总线:CompactPCI、EISA、ISA 、MPE (RadiSys)、STD、STD 32、PC/104、PC/104-Plus、PCI、PCMCIA、VESA、VME。

4:各种外设:多种SCSI设备、IDE/EIDE驱动器、10M/100M以太网卡、Token Ring网卡、FDDI接口卡、多种PCMCIA设备、闪存、声卡等等。

LynxOS的开放性:

1:POSIX.1a、1b、1c及BSD4.4等兼容性,使得遵循POSIX 1003或用于UNIX的程序很容易移植到LynxOS上。

2:支持多种CPU主板:包括CompactPCI(6U/3U)和标准PCI、VME/Eurobus、PC/104和PC/AT硬件等。

3:各种外设适配器:10/100BaseTEthernet、SCSI接口、单/多通道串行控制器、单/双工并行口、时钟、计时器、IDE接口、高分辨率显示适配器等。

Linux的开放性:

1:用户可得到UNIX的全部开发工具。

2:可使用市场上便宜又常见的硬件

5、结束语

实时操作系统从无到有,功能从弱到强,经过几十年的发展,形成了百花齐放的现状。实时应用的飞速发展,对RTOS的性能要求提出了更高的挑战。单处理器的计算机系统已不能很好地满足某些复杂实时应用系统的需要,开发支持多处理器结构的RTOS已成为发展方向。面对国外实时操作系统,国内的实时操作系统研究也有很大发展,“八五”期间,电子科技大学微机所成功地研制了软组件结构的强实时操作系统,取得了CR-TOS/386P和CRTOS/386R两项成果。“九五”期间,将继续开发具有超微内核结构的可伸缩实时操作系统。随着我国国民经济的发展,实时应用的需求将不断增加,这将为实时操作系统的发展提供良好的条件,促进我国RTOS研究的进一步深入。

16

参考文献

[1] 徐伦.实时操作系统及其发展过.计算机应用,1996.12

[2] 汪建新.一个嵌入式实时操作系统的设.江南大学学报(自然科学版),2005.4

[3] 叶以民.嵌入式系统中的实时操作系.测控技术,2009.12

[4] 郁发新.常用嵌入式实时操作系统.计算机应用,2009.4

[5] 舒红霞.分布式实时操作系统消息机制的设计与实现.计算机工程与设计,2008.5

17

更多相关推荐:
学习操作系统心得体会

学习操作系统心得体会摘要:操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基…

操作系统课程学习心得

操作系统课程学习心得1操作系统的功能:操作系统通常有这几方面功能:任务管理、进程管理、作业管理、设备管理等等。2操作系统的应用:操作系统是控制和管理计算机系统内各种硬件和软件资源、合理有效地组织计算机系统的工作…

操作系统实验心得

1-1:通过这次小实验,是我更加了解Linux一些常用指令的操作以及其作用,对于一个刚开始接触lniux操作系统的初学者来说非常有用,助于以后能够更进一步学习Linux操作系统。1-2:在实验过程中,使用VI编…

学习操作系统心得体会

学习操作系统心得体会计算机操作系统是铺设在计算机硬件上的多层系统软件不仅增强了系统的功能而且还隐藏了对硬件操作的细节由它实现了对计算机硬件操作的抽象操作系统是管理计算机系统的全部硬件资源包括软件资源及数据资源控...

Linux操作系统学习心得

Linux操作系统学习心得Linux操作系统这个名词记得在很早以前就听过但具体是什么样的系统却真的不知道甚至都不知道它是手机系统还是电脑系统知道的只是它好像比较不易死机对于这个学期选这门公共选修课很大一部分原因...

Linux操作系统学习心得

Linux操作系统学习心得这学期有幸学习了《嵌入式系统设计》这门课,在胡佳文老师的教导下深入了解了有关于嵌入式系统,ARM9,Linux系统等很多方面的知识,获益良多,在学习过程中自己也遇到了很多问题,同时受到…

网络操作系统心得体会

网络操作系统心得体会通过这一学期学习,才慢慢接触专业课。刚开始觉得挺难得我都有点不想学这个专业了,慢慢的我觉得有趣多了。虽然我学的不是很好,最起码我能给自己装系统了。我给自己的电脑装过window7.xp系统。…

《 操作系统》心得体会

操作系统心得体会在这个学期通过学习操作系统教程这门课我对计算机操作系统有了深刻的了解计算机操作系统是铺设在计算机硬件上的多层系统软件不仅增强了系统的功能而且还隐藏了对硬件操作的细节由它实现了对计算机硬件操作的抽...

操作系统心得

操作系统心得2进程管理顺序程序设计的特点1执行的顺序性2环境的封闭性3计算过程的可再现性顺序程序设计的顺序性封闭性和再现性给程序的编制调试带来很大方便其缺点是计算机系统效率不高并发性程序之间顺序性程序之内采用并...

孟照彬的有效教学操作系统心得体会

学习孟照彬有效教学心得体会南海路小学白秀霞孟照彬教授的有效教育深入课堂将课堂研究作为自己研究的重心其中给我印象最深的是MS教育操作系统的基本方式中谈到教学有法但教无定法贵在得法其中基本上课方式要素组合方式指的是...

孟照彬的有效教学操作系统心得体会

孟照彬的有效教学操作系统心得体会孟教授提出了孟照彬的教育模式该教育模式的核心理念是继续了陶行知的实践与教育理论把国际视野与本土视野相结合深入课堂将课堂研究作为自己研究的重心其中给我印象最深的是MS教育操作系统的...

uc-OS实时操作系统的应用和学习心得

ucOS实时操作系统的应用和学习心得这是小弟我最近的研究成果跟大家交流一下目前正在研究嵌入式实时软件系统设计方法有兴趣的高手交流一下这里给大家简单剖析一下uCOS吧希望对大家能有所帮助不足之处多多指教有问题可以...

操作系统学习心得(25篇)