consulting

71-tg.jpg
嵌入式即時操作系統研究與分析
會員評比: / 6
最差最好 
知識庫文章 - 網站程式資料庫設計知識文章

嵌入式即時操作系統(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(embedded Configurable operating system),即嵌入式可配置作業系統。它是一個原始程式碼開放的可配置、可移植、面向深度嵌入式應用的即時操作系統。最大特點是配置靈活,採用模組化設計,核心部分由不同的元件構成,包括內核、C語言庫和底層運行包等。每個元件可提供大量的配置選項(即時內核也可作為可選配置),使用eCos提供的配置工具可以很方便地配置,並通過不同的配置使得eCos能夠滿足不同的嵌入式應用要求。

(此篇文章為網路轉載,如有冒犯,請來信告知,當即刻移除!)