實時控制軟件設計第三週做業-1

 

VxWorks編程

VxWorks操做系統是美國WindRiver公司於1983年設計開發的一種嵌入式實時操做系統(RTOS),是嵌入式開發環境的關鍵組成部分。良好的持續發展能力、高性能的內核以及友好的用戶開發環境,在嵌入式實時操做系統領域佔據一席之地。它以其良好的可靠性和卓越的實時性被普遍地應用在通訊、軍事、航空、航天等高精尖技術及實時性要求極高的領域中。網絡

內核:異步

l  多任務調度(採用基於優先級搶佔方式,同時支持同優先級任務間的分時間片調度)分佈式

l  任務間的同步工具

l  進程間通訊機制性能

l  中斷處理操作系統

l  定時器和內存管理機制線程

I/O 系統:設計

VxWorks 提供了一個快速靈活的與 ANSI C 兼容的 I/O 系統,包括 UNIX 標準以及POSIX 標準的異步 I/O。VxWorks 包括如下驅動程序:網絡驅動、管道驅動、RAM盤驅動、SCSI驅動、鍵盤驅動、顯示驅動、磁盤驅動、並口驅動等 。代理

文件系統:

支持四種文件系統:dosFs,rt11Fs,rawFs 和 tapeFs;支持在一個單獨的 VxWorks 系統上同時並存幾個不一樣的文件系統。

板級支持包

板級支持包向VxWorks操做系統提供了對各類板子的硬件功能操做的統一的軟件接口,它是保證VxWorks操做系統可移植性的關鍵,它包括硬件初始化、中斷的產生和處理、硬件時鐘和計時器管理、局域和總線內存地址映射、內存分配等等。每一個板級支持包包括一個 ROM 啓動(Boot ROM)或其它啓動機制。

網絡支持:

它提供了對其它VxWorks系統和TCP/IP網絡系統的"透明"訪問,包括與BSD套接字兼容的編程接口,遠程過程調用(RPC),SNMP(可選項),遠程文件訪問(包括客戶端和服務端的NFS機制以及使用RSH,FTP 或 TFTP的非NFS機制)以及BOOTP 和代理ARP、DHCP、DNS、OSPF、RIP。不管是鬆耦合的串行線路、標準的以太網鏈接仍是緊耦合的利用共享內存的背板總線,全部的 VxWorks 網絡機制都遵循標準的 Internet 協議。

QNX

QNX是一種商用的聽從POSIX規範的類Unix實時操做系統,目標市場主要是面向嵌入式系統。它多是最成功的微內核操做系統之一。是一個分佈式、嵌入式、可規模擴展的硬實時操做系統。它遵循POSⅨ.1 (程序接口)和POSⅨ.2 (Shell和工具)、部分遵循POSⅨ.1b(實時擴展)。其核心僅提供4種服務:進程調度、進程間通訊、底層網絡通訊和中斷處理,其進程在獨立的地址空間運行。全部其它OS服務,都實現爲協做的用戶進程,所以QNX核心很是小巧(QNX4.x大約爲12Kb)並且運行速度極快

QNX 提供POSⅨ.1b標準進程調度:具備255個進程優先級;支持搶佔式的、基於優先級的正文切換;可選調度策略:FIFO、輪轉策略、適應性策略。

它具備獨一無二的微內核實時平臺,創建在微內核和徹底地址空間保護基礎之上,實時、穩定、可靠,已經完成到PowerPC、MIPS、ARM等內核的移植,成爲在國內普遍應用的嵌入式實時操做系統。雖然QNX自己並不屬於UNIX,但因爲其提供了POSIX的支持,使得多數傳統UNIX程序在微量修改(甚至不需修改)後便可在QNX上面編譯與運行。

QNX的微內核結構,內核獨立自處於一個被保護的地址空間;驅動程序、網絡協議和應用程序處於程序空間中。

微內核結構的優勢:①驅動程序、網絡協議、文件系統等操做系統模塊和內核相互獨立,任何模塊的故障都不會致使內核的崩潰;②驅動程序、網絡協議、文件系統和應用程序都處於程序空間,都調用相同的內核API,開發與調試和應用程序沒有區別;③操做系統功能模塊能夠根據須要動態地加載或卸載,不須要編譯內核。在高可靠性要求的狀況下,能夠編寫監視模塊,對可靠性要求高的模塊進行監視,必要的時候從新啓動或從新加載而無須重啓系統。高可靠性的內核結構使QNX具有了高可靠性嵌入式操做系統的本質特徵。

QNX網絡子系統由三個部分組成:網絡管理模塊(io-net)、網絡協議模塊、網絡設備驅動模塊。

QNX的網絡子系統也在內核外部空間運行。應用程序面對的是一個統一的網絡接口,硬件相關的內容被徹底包裝在網絡子系統內。

QNX網絡子系統的三個子模塊按層次分開,io-net模塊處於中心,是QNX網絡的核心和重點,其它模塊都掛接在它上面。數據和信息的流動都必須經由io-net調度與轉發,全部其它模塊所面對的就是一個單一主體。這樣的中心交換結構,屏蔽了各個模塊間相互協調的複雜細節,在很大程序上方便了模塊的編寫工做;同時,io-net仍是QNX的網絡管理中心。任何網絡協議和網絡設備驅動程序都必須向io-net註冊,由它來加載,並接受io-net的配置和管理,用戶對網絡狀態的查詢和管理也是經過io-net來實現的。

Xenomai:

Xenomai是一種採用雙內核機制的Linux 內核的強實時擴展。優先級高於Linux 內核,它負責處理系統的實時任務。Xenomai 是一種採用雙內核機制的Linux 內核的強實時擴展。因爲Linux 內核自己的實現方式和複雜度,使得Linux 自己不能使用於強實時應用。在雙內核技術下,存在一個支持強實時的微內核,它與Linux 內核共同運行於硬件平臺上,實時內核的,優先級高於Linux 內核,它負責處理系統的實時任務,而Linux 則負責處理非實時任務,只有當實時內核再也不有實時任務須要處理的時候,Linux 內核才能獲得運行的機會。

Xenomai 基於Adeos(Adaptive Domain Environment for Operating System)實現雙內核機制。

INtime

INtime是與 Windows 操做系統共享硬件平臺的實時操做系統。INtime 內核提供的標準 API 提供了適合於同步和通信的對象,以及在進程之間(包括 INtime 和 Windows 進程之間)共享內存的手段。全部對象都經過句柄引用,而且全部句柄對於實時系統都是全局的。INtime 應用程序環境被設計爲具備下列功能:

l  每一個進程都是其餘對象(包括線程和物理內存)的容器。由該進程所屬線程建立的每一個對象都由該進程全部,而且在進程終止時再也不存在。

l  每一個進程都具備一個與其餘進程的地址空間隔離的平面虛擬地址空間。進程中的代碼以用戶模式(IA 權限等級 3)執行,從而防止意外訪問系統對象和數據。

l  每一個進程均可以直接訪問處理器的輸入/輸出 (I/O) 空間,並且能夠直接訪問物在任何進程中,均可以經過系統調用以及用戶爲中斷處理程序和線程編寫的代碼來直接處理中斷。

l  錯誤是按進程分別處理的。默認狀況下會掛起出錯的線程,而且向全局郵箱中寫入一個記錄。能夠更改默認操做,以便可以在出錯地址進入靜態系統調試器或應用程序調試器。進程還能夠選擇得到有關該進程中錯誤的通知。

相關文章
相關標籤/搜索