體系結構異同
對實時操作系統(RTOS)特性進行比較和分析。對于我們剛接觸這個操作系統時一定要對他們要有一定的了解,我們先對實時操作系統來了解下,它就是指當外界事件或數據產生時,能夠接受并以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統作出快速響應,并控制所有實時任務協調一致運行的操作系統。因而,提供及時響應和高可靠性是其主要特點。實時操作系統有硬實時和軟實時之分,硬實時要求在規定的時間內必須完成操作,這是在操作系統設計時保證的;軟實時則只要按照任務的優先級,盡可能快地完成操作即可。我們通常使用的操作系統在經過一定改變之后就可以變成實時操作系統。
基本特征概述
QNX是一個分布式、嵌入式、可規模擴展的實時操作系統。它遵循POSIX.1 (程序接口)和POSIX.2 (Shell和工具)、部分遵循POSIX.1b(實時擴展)。
LynxOS是一個分布式、嵌入式、可規模擴展的實時操作系統,它遵循POSIX.1a、POSIX.1b和POSIX.1c標準。
RT-Linux是一個嵌入式硬實時操作系統,它部分支持POSIX.1b標準。
KURT-Linux不是為嵌入式應用設計的,不同于硬實時/軟實時應用,他們提出“嚴格(firm)”實時應用的概念,非常適合一些多媒體應用和ATM網絡應用,KURT也同樣為這些應用設計的“嚴格的”實時系統。
體系結構異同
實時系統實現多為微內核體系結構,這核心變的小巧而可靠,容易被ROM固化,可以模塊化擴展。微內核結構系統中,地址空間可以在OS服務模塊在獨立運行,所以,不同模塊的內存錯誤便被隔離開來被指使我們修改。但它也有弱點,進程間通信和上下文切換的開銷大大增加。
QNX是實時操作系統,其核心可以提供4種服務:進程調度、進程間通信、底層網絡通信和中斷處理,在其地址空間中單獨的運行。所有其它OS服務,都實現為協作的用戶進程,因此QNX核心非常小巧而且運行速度快。
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核心。
KURT-Linux 可運行在兩種狀態之下:通常狀態和實時狀態。在通常狀態下,所有進程都可以運行,但某些核心服務將帶來中斷屏蔽的不可預期性。
支持FIFO調度策略、輪轉調度策略和UNIX分時調度策略;
增加了SCHED-KURT調度策略,這是一種靜態調度策略,使用一個特殊的調度文件記錄預先定義好的待調度進程的參數。
從以上簡略描述可以看出,前三種調度策略實現較規范,特別是兩種商業RTOS,遵循或部分遵循POSIX.1b實時調度標準。
QNX的系統服務:
RT-Linux 在操作系統之下實現了一個簡單的實時核心,Linux本身作為一個可搶占的任務在核內運行,優先級最低,隨時會被高優先級任務搶占。
用戶可自行編寫調度程序,它們可實現為可加載的核心模塊;
已實現的調度程序有:基于優先級的搶占式調度和EDF調度;
基于優先級的調度使用“單調率算法”,它直接支持周期任務。
多種資源管理器,包括各種文件系統和設備管理,支持多個文件系統同時運行,包括提供完全POSIX.1及UNIX語法的POSIX文件系統,支持多種閃存設備的嵌入式文件系統,支持對多種文件服務器(如Windows NT/95、LAN Manager等)的透明訪問的SMB文件系統、DOS文件系統、CD-ROM文件系統等。
設備管理,在進程和終端設備間提供大吞吐量、低開銷接口服務。
高性能、高速度容錯型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、電話通信協議等。
文件系統。實時的類UNIX層次結構文件系統:連續結構文件、帶緩沖/不帶緩沖、原始分區和原始設備訪問。
分布式計算資源。SCMP與VME總線上的多處理結合,PCI橋服務、CompactPCI Hot-swap Services、Lynx/HA-DDS分布式數據系統。
Linux系統服務:
很多基于Linux的實時應用被開發出來,它具有成熟和豐富的資源。
UNIX用戶的開發工具和應用軟件都被移植到Linux上。
TCP/IP網絡協議。
各種Internet客戶/服務端軟件。
C/C++、Java等語言編譯器。
系統開放性對比
對于很多大、中型系統來說,大多數軟件都是為UNIX平臺編寫的,因此RTOS是否提供POSIX/UNIX API就顯得很重要。
LynxOS的開放性:
POSIX.1a、1b、1c及BSD4.4等兼容性,使得遵循POSIX 1003或用于UNIX的程序很容易移植到LynxOS上。
各種外設適配器:10/100BaseT Ethernet、SCSI接口、單通道串行控制器 、多通道串行控制器、單工并行口、雙工并行口、時鐘、計時器、IDE接口、高分辨率顯示適配器等。
QNX的開放性:
QNX的POSIX兼容性和其提供的UNIX特色的編譯器、調試器、X Window和TCP/IP都是UNIX程序員所熟悉的。
支持多種CPU:Pentium系列、Am386 DE/SE、Cyrix MediaGX、x86處理器(386以上)、STMicroelectronics 的STPC。
多種總線:CompactPCI、EISA、ISA 、MPE (RadiSys)、STD、STD 32、AMD ElanSC300/310/400/410、PC/104、PC/104-Plus、PCI、PCMCIA、VESA、VME。
各種外設:多種SCSI設備、Token Ring網卡、FDDI接口卡、10M/100M以太網卡、多種PCMCIA設備、閃存、IDE/EIDE驅動器、聲卡等等。
-
內核
+關注
關注
3文章
1372瀏覽量
40281 -
Linux
+關注
關注
87文章
11294瀏覽量
209341 -
操作系統
+關注
關注
37文章
6804瀏覽量
123285
發布評論請先 登錄
相關推薦
評論