嵌入式实时操作系统研究与分析

来源:岁月联盟 作者:徐阳 时间:2010-08-30
  摘要:嵌入式实时操作系统(RTOS)是嵌入式系统的基础运行平台,是嵌入式系统稳定、可靠工作的基础,其功能和性能的好坏将直接影响嵌入式系统的功能和性能。嵌入式时实操作系统目前应用的范围越来越广,逐渐成为今后操作系统开发和的主要方向。其应用领域大到控制,小到个人消费用品如数码相机,手机,PDA等无处不在,通信系统也大量的使用嵌入式实时操作系统作为操作系统平台.
  关键词:操作系统;嵌入式;实时
  
  一、嵌入式和实时系统介绍
  
  嵌入式系统在我们的生活中已经无处不在,如火星探测器,汽车上的电动装置,可视电话,PDA,嵌入式交换系统等等。嵌入式系统在我们的生活中发挥着巨大的作用,嵌入式系统是为实现特定功能,并且软硬件紧密结合在一起的机系统。
  实时嵌入式系统是嵌入式系统的一种,它能够对外部事件给予及时响应。对外部事件的响应有三个步骤:对外部事件的识别,必要的处理,以及结果的输出。实时系统又分为硬实时和软实时两种。在软实时系统中,系统的宗旨是使各个任务运行得越快越好,对响应时间的介定有一定的灵活性;在硬实时系统中,各任务不仅要执行无误而且要做到准时,一旦不能在确定的时间内完成,有可能导致灾难性后果。实时操作系统(RTOS)以及时的方式进行任务调度、系统资源的管理以及为应用开发提供一个稳固的平台。RTOS可以是一个小而简单的系统,也可以是一个大而全的系统,具体要视实际应用而定.目前流行的许多RTOS都是用户可裁剪定制的,如vxworks和pSOS等。
  
  二、嵌入式操作系统实时性的几个重要性能指标
  
  成熟度一个操作系统从研发成功到能稳定、可靠运行的过程是需要较长时间的,只有经过广泛使用才能逐步走向成熟,成熟度是综合评价操作系统稳定性和可靠性的重要指标。
  稳定性稳定性是反映嵌入式实时操作系统在长时间运行过程中不会出现异常情况,保证应用系统能够稳定、可靠地工作的指标。
  
  可靠性可靠性是反映嵌入式实时操作系统能够保持正常运行而不受外界影响的能力,通常以系统连续并且可靠运行时间来度量。
  安全性安全性是反映嵌入式实时操作系统能够抵御外部攻击和应用软件自身缺陷的能力。
  开放性开放性是反映嵌入式实时操作系统符合国际和国家标准水平以及能否得到众多第三方(主要包括:驱动程序、开发工具、其它功能软件等)广泛支持的基本条件。
  实时性实时性是反映嵌入式实时操作系统快速响应外部事件的能力。通常包括:系统调用时间、任务切换时间、中断响应和延迟时间、信号量混洗时间、数据包吞吐率等。
  
  三、嵌入式实时操作系统的体系结构
  
  操作系统发展至今,模块结构已经非常明确,即可分成处理器管理、存储器器管理、设备管理和文件管理等模块,如表1所示。只有文件系统是属于建立在存储器上的逻辑管理功能,因为可以说,现今的操作系统是一种直接的计算机硬件的逻辑映射,是硬件组合模型的软件表达形式。
  操作系统最基本的结构是模块结构和层次结构。模块结构是最一般的结构化设计。单内核就是模块结构,但内核的概念是一种层次概念。层次结构是建立在系统功能模块分类的基础之上,是一种模块集合作为“层”的结构。操作系统按模块间功能调用方式分单内核与微核两类。另外还有两种应用模型:虚拟机与客户机(服务器)模式,它们是建立在操作系统的系统应用扩展模型。
  
  四、如何提高嵌入式实时操作系统的可靠性
  
  提高RTOS的可靠性的关键取决于RTOS的架构。例如在实时执行模式架构中,大部分或所有软件组件都在一个单一的内存地址空间中运行,包括操作系统内核、网络协议栈、设备驱动程序、应用程序等。虽然这种架构的效率较高,但有两个明显的缺陷:任何组件中的一个指针错误,都可能破坏操作系统内核或任何其它组件,导致不可预测的行为和整个系统的崩溃;很难动态修复或替换任何有故障的组件,大多数情况下,出现这些问题时系统复位是唯一的选择。
  有一些RTOS试图通过使用单内核架构来解决这个问题。在这种架构中,用户的应用程序在隔离的、受保护内存地址空间中运行。如果一个应用程序试图访问其地址空间之外的数据,内存管理单元(MMU)将通知操作系统,操作系统可能会采取保护措施,例如终止出错进程。由于这样的操作系统需要将大多数或所有驱动程序、文件系统和其它系统服务绑定到内核中,因此任何组件中的一个错误都可能带来灾难性的内核故障。   采用微内核(mricokernel)架构可提供更精确的故障隔离,如QNX Neutrino等操作系统都基于微内核架构。微内核有两个明确的特征:(1)在操作系统内核中只实现了一个包含了基本OS服务的小内核(如信号量、定时器、任务调度等),包括驱动程序、文件系统、协议栈和用户应用程序在内的所有其它的组件在内核外部分离的、保护内存的进程中运行。有问题的系统服务不再作为孤立的故障点,而是在破坏其它服务或操作系统内核之前被终止并重启。(2)所有的组件能够通过消息传递进行通信,一个定义良好的通信机制保障了程序在保持彼此安全隔离的前提下进行数据交换。适当实现的消息传递也可以作为一个虚拟的“软件总线”,允许任何的软件组件,甚至是一个设备驱动程序被动态地加入或替换,对于必须提供连续服务的系统而言这是一项关键要求。
  基于消息传递的微内核RTOS通常提供了更好的容错性和动态升级能力。在实际应用中,如果实现正确,消息传递的性能可以接近底层硬件的内存带宽。例如,一个微内核RTOS可以采用多段式消息和线程到线程的消息数据直接拷贝等各种技术,来确保系统性能可以达到传统的进程间通信方法的水平。
  
  五、几种常用嵌入式实时操作系统的介绍
  
  VxWorks。VxWorks是美国WindRiver公司的产品,是目前嵌入式系统领域中应用很广泛,市场占有率比较高的嵌入式操作系统。VxWorks实时操作系统由400多个相对独立、短小精悍的目标模块组成,用户可根据需要选择适当的模块来裁剪和配置系统;提供基于优先级的任务调度、任务间同步与通信、中断处理、定时器和内存管理等功能,内建符合POSIX(可移植操作系统接口)规范的内存管理,以及多处理器控制程序;并且具有简明易懂的用户接口,在核心方面甚至可以微缩到8 KB。
  μC/OS-II。μC/OS-II是在μC/OS的基础上起来的,是美国嵌入式系统专家Jean J.Labrosse用C语言编写的一个结构小巧、抢占式的多任务实时内核。μC/OS-II能管理64个任务,并提供任务调度与管理、内存管理、任务间同步与通信、时间管理和中断服务等功能,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点。
  μClinux。μClinux是一种优秀的嵌入式Linux版本,其全称为micro-control Linux,从字面意思看是指微控制Linux。同标准的Linux相比,μClinux的内核非常小,但是它仍然继承了Linux操作系统的主要特性,包括良好的稳定性和移植性、强大的功能、出色的文件系统支持、标准丰富的API,以及TCP/IP网络协议等。因为没有MMU内存管理单元,所以其多任务的实现需要一定技巧。
  eCos。eCos(embedded Configurable operating system),即嵌入式可配置操作系统。它是一个源代码开放的可配置、可移植、面向深度嵌入式应用的实时操作系统。最大特点是配置灵活,采用模块化设计,核心部分由不同的组件构成,包括内核、C语言库和底层运行包等。每个组件可提供大量的配置选项(实时内核也可作为可选配置),使用eCos提供的配置工具可以很方便地配置,并通过不同的配置使得eCos能够满足不同的嵌入式应用要求。
  
  
  [1]罗蕾.嵌入式实时操作系统及应用开发[M].北京:北京航空航天大学出版社,2007.
  [2]何小庆.微软嵌入式操作系统的分析和比对(下)[J].产品世界,2007(11):128 130.
  [3]胡继阳.嵌入式系统导论[M].北京:铁道出版社,2005.
  [4]季志均,马文丽,陈虎,等.四种嵌入式实时操作系统关键技术分析[J].机应用研究,2005(9):4-8.

图片内容