庞丽萍、田亚敏 本文对四种实时操作系统(RTOS)特性进行分析和比较。它们是:Lynx实时系统公司的LynxOS、QNX软件系统有限公司的QNX以及两种具有代表性的实时Linux——新墨西哥工学院的RT-Linux和堪萨斯大学的KURT-Linux。
近年来,实时操作系统在多媒体通信、在线事务处理、生产过程控制、交通控制等各个领域得到广泛的应用,因而越来越引起人们的重视。
基本特征概述
* QNX是一个分布式、嵌入式、可规模扩展的实时操作系统。它遵循POSIX.1
(程序接口)和POSIX.2
(Shell和工具)、部分遵循POSIX.1b(实时扩展)。它最早开发于1980年,到现在已相当成熟。
*LynxOS是一个分布式、嵌入式、可规模扩展的实时操作系统,它遵循POSIX.1a、POSIX.1b和POSIX.1c标准。它最早开发于1988年。
* RT-Linux是一个嵌入式硬实时操作系统,它部分支持POSIX.1b标准。
*KURT-Linux不是为嵌入式应用设计的,不同于硬(hard)实时/软(soft)实时应用,他们提出“严格(firm)”实时应用的概念,如一些多媒体应用和ATM网络应用,KURT是为这样一些应用设计的“严格的”实时系统。
体系结构异同
实时系统的实现多为微内核体系结构,这使得核心小巧而可靠,易于ROM固化,并可模块化扩展。微内核结构系统中,OS服务模块在独立的地址空间运行,所以,不同模块的内存错误便被隔离开来。但它也有弱点,进程间通信和上下文切换的开销大大增加。相对于大型集成化内核系统来说,它必须靠更多地进行系统调用来完成相同的任务。
*QNX是一个微内核实时操作系统,其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。
*LynxOS目前还不是一个微内核结构的操作系统,但它计划使用所谓的“Galaxy”技术将其从大型集成化内核改造成微内核,这一技术将在LynxOS
3.0中引入。新的28Kb微内核提供以下服务:核心启动和停止、底层内存管理、出错处理、中断处理、多任务、底层同步和互斥支持。
*RT-Linux实现了一个小的实时核心,仅支持底层任务创建、中断服务例程的装入、底层任务通信队列、中断服务例程(ISR)和Linux进程。原来的非实时Linux核心作为一个可抢先的任务运行于这个小核心之上,所有的任务都在核心地址空间运行。它不同于微内核和大型内核,属于实时EXE
(realtime executive)体系结构。其可靠性和可维护性对电信服务系统来说都不够理想。
*KURT-Linux核心包括两个部分:内核和实时模块。内核负责实时事件的调度,实时模块为用户进程提供特定的实时服务。它不属于微内核结构。
调度策略分析
任务调度策略是直接影响实时性能的因素。尽管调度算法多种多样,但大多由单调率算法(RM)和最早期限优先算法(EDF)变化而来。前者主要用于静态周期任务的调度,后者主要用于动态调度,在不同的系统状态下两种算法各有优劣。在商业产品中采用的实际策略常常是各种因素的折中。
QNX 提供POSIX.1b标准进程调度:
* 32个进程优先级;
* 抢占式的、基于优先级的正文切换;
* 可选调度策略:FIFO、轮转策略、适应性策略。
LynxOS 其调度策略为:
* LynxOS支持线程概念,提供256个全局用户线程优先级;
*硬实时优先级调度:在每个优先级上实现了轮转调度、定量调度和FIFO调度策略;
* 快速正文切换和阻塞时间短;
* 抢占式的RTOS核心。
RT-Linux
在操作系统之下实现了一个简单的实时核心,Linux本身作为一个可抢占的任务在核内运行,优先级最低,随时会被高优先级任务抢占。
* 用户可自行编写调度程序,它们可实现为可加载的核心模块;
* 已实现的调度程序有:基于优先级的抢占式调度和EDF调度;
* 基于优先级的调度使用“单调率算法”,它直接支持周期任务。
KURT-Linux
可运行在两种状态之下:通常状态和实时状态。在通常状态下,所有进程都可以运行,但某些核心服务将带来中断屏蔽的不可预期性。实时模式只允许实时进程运行。
* 支持FIFO调度策略、轮转调度策略和UNIX分时调度策略;
*增加了SCHED-KURT调度策略,这是一种静态调度策略,使用一个特殊的调度文件记录预先定义好的待调度进程的参数。
从以上简略描述可以看出,前三种调度策略实现较规范,特别是两种商业RTOS,遵循或部分遵循POSIX.1b实时调度标准。
操作系统服务比较
QNX的系统服务:
*多种资源管理器,包括各种文件系统和设备管理,支持多个文件系统同时运行,包括提供完全POSIX.1及UNIX语法的POSIX文件系统,支持多种闪存设备的嵌入式文件系统,支持对多种文件服务器(如Windows
NT/95、LAN Manager等)的透明访问的SMB文件系统、DOS文件系统、CD-ROM文件系统等。
* 设备管理。在进程和终端设备间提供大吞吐量、低开销接口服务。
* 图形/窗口支持。包括QNX Windows、X Window System for QNX、对MS
Windows NT/95和X Window系统的远程图形连接。
* TCP/IP for QNX。
*高性能、容错型QNX网络——FLEET,使得所有连入网络的计算机变成一个逻辑上的超级计算机。
*透明的分布式处理。FLEET网络处理与消息传递和进程管理原语的集成,将本地和网络IPC统一起来,使得网络对IPC而言是透明的。
LynxOS的系统服务:
* 网络和通信。由于使用UNIX/POSIX
API,Lynx很适合于数据通信和Internet应用。又由于系统的开放性,网络软件很容易移植到Lynx上。同样,Lynx亦提供关键的电话通信协议,使之适用于电信系统的基础架构、操作和多媒体应用。
* TCP/IP协议栈。Lynx自带优化的TCP/IP协议栈,提供高性能服务,如TCP头预测、高级路由算法、IP级多址广播和链路级高速缓冲。
* Internet工具。包括,Telnet、Ftp、tftp、PPP、SLIP、实时调度的嵌入式Java虚拟机、嵌入式HTTP
server、bootp、ARP/RARP、DNS域名服务、电子邮件、Perl、电话通信协议等。
* SVR3流。LynxOS流机制为开发和移植基于流的驱动程序和应用提供了核心支持。
*文件系统。实时的类UNIX层次结构文件系统:连续结构文件、带缓冲/不带缓冲、原始分区和原始设备访问。
* 基于Motif的图形用户接口。
* 分布式计算资源。SCMP与VME总线上的多处理结合,PCI桥服务、CompactPCI
Hot-swap Services、Lynx/HA-DDS分布式数据系统。
Linux的系统服务:
近来,很多基于Linux的实时应用被开发出来,它具有成熟和丰富的资源。
* UNIX用户的开发工具和应用软件都被移植到Linux上。
* TCP/IP网络协议。
* 各种Internet客户/服务端软件。
* X Window。
* C/C++、Java等语言编译器。
上述系统的共同点是都提供了图形界面、各种网络支持等必要工具。QNX是一个更加符合传统“分布式”概念的操作系统,目标是把整个局域网变成一个大的超级计算机,使得网络的存在对用户透明,文件系统提供的服务也很丰富。但是,分布式的程度越高也意味着系统开销的增大。LynxOS则着意于提供丰富的网络服务,而Linux的最大优势则是经济,还可以通过新闻组或mailing
list快速地解决用户碰到的任何问题。
系统开放性对比
对于很多大、中型系统来说,大多数软件都是为UNIX平台编写的,因此RTOS是否提供POSIX/UNIX
API就显得很重要。
QNX的开放性:
* QNX的POSIX兼容性和其提供的UNIX特色的编译器、调试器、X
Window和TCP/IP都是UNIX程序员所熟悉的。
* 支持多种CPU:AMD ElanSC300/310/400/410、Am386 DE/SE、Cyrix
MediaGX、x86处理器(386以上)、Pentium系列、STMicroelectronics 的STPC。
* 多种总线:CompactPCI、EISA、ISA 、MPE (RadiSys)、STD、STD
32、PC/104、PC/104-Plus、PCI、PCMCIA、VESA、VME。
* 各种外设:多种SCSI设备、IDE/EIDE驱动器、10M/100M以太网卡、Token
Ring网卡、FDDI接口卡、多种PCMCIA设备、闪存、声卡等等。
LynxOS的开放性:
* POSIX.1a、1b、1c及BSD4.4等兼容性,使得遵循POSIX
1003或用于UNIX的程序很容易移植到LynxOS上。
*支持多种CPU主板:包括CompactPCI(6U/3U)和标准PCI、VME/Eurobus、PC/104和PC/AT硬件等。
*各种外设适配器:10/100BaseT
Ethernet、SCSI接口、单/多通道串行控制器、单/双工并行口、时钟、计时器、IDE接口、高分辨率显示适配器等。
Linux的开放性:
* 用户可得到UNIX的全部开发工具。
* 可使用市场上便宜又常见的硬件。
通过分析,可以看到以上系统各有优势,因此,在平台搭造过程中,用户应根据自己的实际需要并结合性能价格比进行选择。
分享到:
相关推荐
《嵌入式实时操作系统uCOS-II》是由Michael J. Feely编写的一本经典教材,邵贝贝对此进行了深入解读和注解。这本书详尽地介绍了uCOS-II的内部工作机制、设计原理以及如何在实际项目中应用。源码的提供使得读者能够...
"操作系统信息采集与分析工具用户手册" 本手册旨在指导用户正确地使用操作系统信息采集与分析工具,了解工具的功能、作用、操作步骤,以便用户更好地理解和操作该软件。 引言 本工具是为了帮助用户采集和分析操作...
操作系统是计算机系统的核心组成部分,它是一种复杂的系统软件,负责协调硬件和软件资源,提供用户与硬件之间的接口。张琼声版的《操作系统概论》详细介绍了操作系统的基本概念、发展历程、功能以及不同类型的系统优...
另外,操作系统设计与实现中的高级主题,如虚拟化技术(如Xen、KVM)、分布式系统、实时操作系统、嵌入式操作系统等也可能出现在试题中。这部分内容要求学生具备一定的理论基础和实践经验,理解操作系统如何在不同...
【操作系统信息采集与分析工具用户手册】是一份教育资料,主要涵盖了如何使用特定的工具来收集和分析操作系统的信息。这份手册适用于所有使用该工具的人员。手册内容详细介绍了工具的功能、使用方法以及系统的工作...
操作系统依赖于特定的硬件环境来执行其复杂的管理和调度任务,其中最重要的组成部分之一就是中央处理器(CPU)。CPU是计算机的运算和控制中心,由运算器、控制器、寄存器和高速缓存构成。 运算器是CPU的核心,负责...
操作系统是计算机科学中的核心组成部分,它负责管理计算机的硬件资源,包括处理器、内存以及外部设备,同时为用户提供方便、安全的软件环境。本章节主要关注操作系统如何描述和控制进程,这是操作系统的重要职责之一...
计算机操作系统是计算机科学与技术领域中的核心课程之一,它涵盖了系统资源管理、...通过深入学习和实践,学生可以更好地理解操作系统的复杂性和重要性,为未来从事系统设计、软件开发或系统分析等工作奠定坚实的基础。
本文将对网络操作系统安全概述进行详细的分析和总结,涉及到网络操作系统的概念、常用的网络操作系统、操作系统安全与访问控制、网络操作系统的安全设置实例等方面。 一、网络操作系统概念 网络操作系统是一种特殊...
《图书管理系统分析——领域分析与需求分析》 图书管理系统是一种广泛应用的信息管理软件,它主要用于图书馆、书店或个人图书收藏的高效管理和检索。本分析将深入探讨该系统的领域分析和需求分析,旨在创建一个全面...
在线电影售票系统需求分析报告是针对构建一个便捷、高效的在线平台,使用户能够方便地购买电影票的系统进行深入探讨的文档。这份报告主要涵盖了系统的整体介绍、功能定义、模块划分以及流程设计等方面,旨在为系统...
操作系统原理是计算机科学中的核心课程,它探讨了操作系统如何管理和协调计算机硬件与软件资源,以提供高效、安全、用户友好...在实际应用中,这些概念和技术被广泛应用于操作系统设计、程序开发、系统分析等多个领域。
操作系统在计算机系统中的地位不可忽视,其发展历程包括批处理、分时、实时、网络和分布式等阶段,而分类则有单用户单任务、单用户多任务、多用户多任务等。了解这些基础知识有助于考生构建操作系统的基本框架。 第...
通过这门课程的学习,学生将能够对操作系统有深入的理解,并具备分析、开发、维护和设计操作系统的能力。 课程的目标包括理解操作系统的概念、目标、功能、结构、特征和服务。学生需要掌握多道程序设计和并发处理的...
通过对全国2000年10月高等教育自学考试网络操作系统试题的分析,我们可以总结出以下知识点: 一、网络通信软件的任务 * 网络通信软件的任务是根据通信协议来控制和管理进程间通信。 二、多道程序设计 * 多道程序...
操作系统按照服务类型可分为批处理、分时、实时、网络和分布式系统,每种类型都有其特定的应用场景和优势。 中断机制是操作系统实现硬件与软件交互的基础,中断装置检测事件并触发中断,使CPU转向执行中断处理程序...
在操作系统中,磁盘调度算法是一种重要的资源管理策略,它用于决定如何有效地安排硬盘读写头的移动,以满足多个进程的I/O请求。本实验主要探讨了五种不同的磁盘调度算法,它们分别是: 1. **FCFS(First-Come, ...
- **实时系统**: 需要操作系统支持虚拟存储器和分时系统,确保资源的公平分配及高效利用。 - **手持设备**: 需要操作系统支持虚拟存储器以优化内存使用,但通常不需要分时系统,因为此类设备通常是单用户设备。 - **...
网上书店系统的开发需要基于最新的技术和标准,包括网络技术、数据库技术、操作系统技术等等。 网上书店的系统特点是指网上书店系统的独特之处。网上书店系统的特点包括简洁美观的操作界面、科学的书店管理模式、...
在IT行业中,软件需求与系统分析是软件开发过程中的关键环节,它们构成了项目的基础,确保了最终产品的质量和适用性。本资源包含三个相关的文件:软件的需求分析PDF、软件需求课程和系统分析课程,旨在深入探讨这两...