淺談嵌入式實時操作系統設計
在傳統的嵌入式實時操作系統中,內核和應用都運行在同一特權級,應用程序可以無限制的訪問整個系統地址空間。因此在某些情況下,應用的潛在危險動作會影響其他應用和內核的正常運行,甚至導致系統崩潰或者誤操作。
本文引用地址:http://www.j9360.com/article/256147.htm為了滿足航空電子對高可靠性、高可用性以及高服務性的要求, 1997年1月ARINC發布了ARINC653(航空電子應用軟件標準接口),并于2003年7月發布ARINC653 Supplement 1,對區間管理、區間通信及健康監測部分進行了補充說明,用以規范航空電子設備和系統的開發。
隨即,國外各大嵌入式開發商相繼推出此類支持ARINC653,具有內核和應用保護機制的操作系統。但在國內的嵌入式領域,這樣的研究還有一定差距。基于此,本文提出了一種航空電子嵌入式實時操作系統(A-RTOS,Avionics RTOS)的一種設計思路,并在具有MMU和支持高級保護模式的目標板上完成了實現。
航空電子標準ARINC653
ARINC653主要闡述了模塊化綜合航空電子設備IMA(Integrated Modular Avionics)使用的應用軟件的基線操作環境。它定義了航空應用與下層操作環境之間的接口和數據交換的模式以及服務的行為,并描述了嵌入式航空電子軟件的運行時環境。
ARINC653 Supplement 1對ARINC653的補充主要包括以下幾點:在系統結構上,提出了System Partition的概念,明確區間上的應用調度應該是區間級別的,這些應用共享區間資源;區間管理方面,闡述區間調度中主時間框架的定義原則,并補充了區間模式的變遷過程;對區間間通信的原則進行更為詳盡的說明;增加關于健康監測的錯誤級別和錯誤處理的解釋。
軟件構成
航空電子中的核心模塊軟件包括兩類:應用軟件和核心軟件。位于應用軟件和操作系統OS之間的APEX(APplication EXecutive)接口,定義了系統為應用軟件提供的一個功能集合。利用這個功能集合,應用軟件可以控制系統的調度,通信和內部狀態信息。APEX接口相當于為應用提供的一種高層語言。而對于OS來說,是關于參數和入口機制的定義。

?
圖1給出了ARINC653中各部分之間的關系。
分區和區間管理
分區(Partitioning)是ARINC653中一個核心概念。在IMA(Integrated Modular Avionics)系統中,一個核心模塊會包含一個或多個航空電子應用,并且這些應用要能夠獨立運行。分區就是航空電子應用中的一個功能劃分。分區的單位稱為區間,區間內的每一個執行單元稱為進程。每一個區間具有自己獨立的數據、上下文和運行環境,這樣做的好處是能夠防止一個區間的錯誤影響到其他區間。另外,它能使得整個系統容易驗證、確認和認證。
區間化以及區間的管理和調度是由OS來實現的。ARINC653為區間的調度規定了一種基于時間窗的循環調度算法。這種調度算法的原理如圖2所示。

?
圖2 基于時間窗的循環調度算法原理
為了完成各區間的周期性調度,由OS維護一個固定時間長度的主時間框架,該時間框架在模塊的運行期內周期性的重復。每個時間框架可以劃分為若干個時間窗口。系統利用一個事先確定的配置表,在規定的時間窗口內激活對應區間的運行。這樣就能夠保證每個應用在分配給它的時間周期內訪問公共資源不被打斷。
ARINC supplement 1對主時間框架的時間定義原則進行了補充。它規定主時間框架的大小應該是核心模塊中所有區間周期的最小公倍數的正整數倍,并應考慮到每個區間每次執行的時間長度和執行頻率。
在ARINC653 Supplement 1發布時又增加了系統區間屬性和啟動條件屬性。區間的工作模式包括空閑,冷啟動,熱啟動和正常四種,如圖3所示。每個區間所需資源在系統構建時指定,在區間初始化完成時區間對象創建。OS在進入運行模式時啟動應用區間,然后區間進入正常運行模式。監測管理功能在響應致命錯誤時將重啟區間或者停止區間的運行。

?
圖3 區間狀態轉化模型
A-RTOS系統設計與實現
A-RTOS的系統結構如圖4所示。在此系統中,各個應用工作在所屬區間的環境中,并且應用和內核及各個應用之間都被保護墻隔離,無法相互破壞,從而保證了核心模塊的可靠性。

?
圖4 A-RTOS的系統結構
隔離和保護機制
隔離和保護是ARINC653首要強調的特性,也是必須解決的重點之一。A-RTOS主要采用兩種方式來實現應用與內核以及應用之間的隔離和保護。
第一種方式是使用內存管理單元MMU。通過MMU能夠實現邏輯地址到物理地址的轉化,并且對訪問權限進行控制。這樣可以保護操作系統內核不受應用軟件有意或無意的破壞,也有效的防止了各應用軟件之間的相互破壞。圖5給出了MMU的頁目錄/頁表方式的地址轉換流程。

?
圖5 頁目錄/頁表方式的地址轉換流程
第二種方式就是系統調用。A-RTOS為了實現對內核及應用之間的保護,提供了兩種運行形態:用戶態和系統態。其中操作系統內核是運行在系統態的。因此用戶態的應用是不能夠直接調用系統內核提供的功能接口的,必須通過TRAP系統調用方式來進行。
此種方式下,當用戶態的應用需要調用內核提供的系統調用時,首先要執行一組特殊的指令使系統進入系統態以便執行需要的系統調用,當調用完成后,內核將執行另一組特征指令將系統返回到用戶態。
每種支持保護模式的系統都提供了專門的軟中斷命令來完成從用戶態進入系統態的功能。系統掛接一個軟中斷處理函數,所有的系統調用都通過這個軟中斷進入并以不同的參數值(即系統調用號)來加以區分。
評論