close
四種即時作業系統的分析比較-LynxOS,QNX,RTLinux和KURT-Linux

  本文對四種即時作業系統(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的全部開發工具。

  * 可使用市場上便宜又常見的硬體。

  通過分析,可以看到以上系統各有優勢,因此,在平台搭造過程中,使用者應根據自己的實際需要並結合性能價格比進行選擇。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Bluelove1968 的頭像
    Bluelove1968

    藍色情懷

    Bluelove1968 發表在 痞客邦 留言(0) 人氣()