丁潔
(陜西工業(yè)職業(yè)技術(shù)學院 陜西 咸陽 712000)
隨著高新技術(shù)的發(fā)展,航空電子系統(tǒng)必將面臨更加嚴峻的挑戰(zhàn)。未來對航空電子系統(tǒng)功能的要求愈來愈多,未來的航空電子必須具有更多的功能、更好的適應性、更高的可靠性和更強的生存能力。航空電子要達到這種要求,唯一的途徑就是系統(tǒng)綜合化技術(shù)的應用,本文討論的重點就是航空電子系統(tǒng)的綜合化發(fā)展過程以及實現(xiàn)綜合化需重點關注的關鍵技術(shù)原理。
電子技術(shù)的快速發(fā)展為航空電子向低成本、低能耗、小型化以及綜合化發(fā)展提供了支撐平臺。綜合模塊化航空電子體系架構(gòu)(Integrated Modular Avionics,IMA)是繼聯(lián)合體系架構(gòu)后航空領域內(nèi)提出的新一代航空電子體系,它將傳統(tǒng)聯(lián)合體系的各子系統(tǒng)進行綜合,并滿足確保各子系統(tǒng)之間相互獨立以及故障隔離的要求。要實現(xiàn)這樣的系統(tǒng)必然要求操作系統(tǒng)能夠支持各應用子系統(tǒng)在時間和空間上的獨立,各子系統(tǒng)之間、子系統(tǒng)與內(nèi)核之間具有不同的權(quán)限管理能力,以及不同安全級別應用系統(tǒng)的保護和故障分級與隔離。
傳統(tǒng)的實時操作系統(tǒng)調(diào)度的對象為任務或進程,如圖1所示。開發(fā)人員需要將應用分為不同的任務,操作系統(tǒng)根據(jù)自己的調(diào)度算法調(diào)度各任務。不同的操作系統(tǒng)一般會采用不同的調(diào)度策略。
圖1 傳統(tǒng)操作系統(tǒng)模型Fig.1 The traditional operating system model
圖2 強分區(qū)操作系統(tǒng)模型Fig.2 Strong partition operating system model
為了滿足綜合模塊化航空電子體系結(jié)構(gòu)的新要求,操作系統(tǒng)需要提供如圖2所示的調(diào)度模型。該模型的調(diào)度對象由分區(qū)和任務構(gòu)成,分區(qū)代表一個在空間和時間獨立的域,在該域?qū)C合模塊化航空電子架構(gòu)的一個應用子系統(tǒng)[1]進行調(diào)度和管理。一個分區(qū)內(nèi)由多個任務構(gòu)成,這些任務可以是周期任務、非周期任務或偶發(fā)任務。每個分區(qū)內(nèi)可以采用不同調(diào)度策略,甚至不同的操作系統(tǒng)內(nèi)核。
任務模型將任務的工作分為計算C和通信M兩部分,任務在計算完后輸出消息。 由此任務 τi可以由四元組(Ci,Mi,Di,Ti)表示,其中Ci表示任務的最壞執(zhí)行時間(Worst Case Execute Time,WCET),Di表示任務的時限,Ti表示任務的周期,Mi表示任務發(fā)送的消息大小。
綜合模塊化操作系統(tǒng)分區(qū)間通信[2]采用端口(Port)的通信方式。每個端口要么位發(fā)送端口,要么位接收端口。綜合考慮分區(qū)通信與分區(qū)調(diào)度后,分區(qū)的通信會隨著分區(qū)調(diào)度帶來固有的分區(qū)延遲,如圖3所示。分區(qū)A有兩個任務t1和t2。分區(qū)B有兩個任務t3和t4。t1需要向t3發(fā)送數(shù)據(jù),t4需要向t2發(fā)送數(shù)據(jù)。
圖3 分區(qū)間通信模型Fig.3 Inter partition communication model
為了保證分區(qū)間數(shù)據(jù)通信的完整性和及時性,同時便于分區(qū)端到端延遲分析,本系統(tǒng)模型將分區(qū)間通信數(shù)據(jù)進行歸一化處理。引入Periodic I/O模型[100]進行消息通信,在圖4中,P1分區(qū)中有4個任務T1,T2,T3,T5,其最壞執(zhí)行時間和周期分別為(5,50),(8,100),(20,200)和(80,500),需要設定Periodic I/O任務的執(zhí)行周期為50。
分區(qū)是航空電子應用中的一種功能劃分。每個分區(qū)都具有獨立的數(shù)據(jù)、上下文和運行環(huán)境,分區(qū)的優(yōu)點包括:能夠防止錯誤在分區(qū)間傳播,引起系統(tǒng)故障蔓延。能夠?qū)⒑娇諔密浖凑贞P鍵級別分解成不同的構(gòu)件,使系統(tǒng)的升級和維護更加容易,大大降低未來航電系統(tǒng)中軟件的開發(fā)成本。分區(qū)間通信分區(qū)間通信是兩個或多個分區(qū)之間的通信,是由操作系統(tǒng)來實現(xiàn)的。
分區(qū)的調(diào)度保證各應用分區(qū)在時間上完全獨立運行,互不影響,一個分區(qū)內(nèi)出現(xiàn)任務錯失時限或死鎖不會影響其它分區(qū)及其它分區(qū)內(nèi)任務的時間特性,保證系統(tǒng)在高系統(tǒng)利用率下的可調(diào)度性。從民機適航的角度,還需要支持分區(qū)的動態(tài)加入和刪除。
FCOS中分區(qū)具有四種工作狀態(tài):空閑態(tài)(IDLE)、冷啟動態(tài) (COLD_START)、 熱啟動態(tài) (WARM_START) 和正常態(tài)(NORMAL)。任一時刻分區(qū)只能處于其中一種工作狀態(tài)。
·空閑態(tài)(IDLE):在這個狀態(tài)下,分區(qū)沒有初始化,分區(qū)在自己的時間窗口內(nèi)不執(zhí)行任何進程,并且沒有資源消耗,但是分配給分區(qū)的時間窗口并沒有改變。
·正常態(tài)(NORMAL):在這個狀態(tài)下,分區(qū)內(nèi)的進程調(diào)度是處于激活狀態(tài)的,分區(qū)內(nèi)所有的進程都已經(jīng)創(chuàng)建完畢,并且那些處于就緒態(tài)的進程可以立即得到運行,系統(tǒng)處于一個可操作的狀態(tài)。冷啟動態(tài)(COLD START):在這個狀態(tài)下,分區(qū)處于初始化階段,進程調(diào)度是被禁止的,分區(qū)忙于執(zhí)行各自的初始化代碼。
·熱啟動態(tài)(WARM START):在這個狀態(tài)下,分區(qū)同樣處于初始化階段,進程調(diào)度是被禁止的,分區(qū)忙于執(zhí)行各自的初始化代碼。這個狀態(tài)類似于冷啟動態(tài),不同的是初始環(huán)境是不一樣的,例如不需要復制FLASH中的內(nèi)容到隨機訪問存儲器(RAM)中。
在分區(qū)內(nèi)的執(zhí)行體由一個或多個任務組成,每個任務隸屬于特定的分區(qū),分區(qū)內(nèi)的各任務之間并發(fā)執(zhí)行。任務管理主要負責分區(qū)內(nèi)任務的創(chuàng)建、調(diào)度和刪除等工作。
FCOS中任務分為按固定頻率執(zhí)行的周期任務和由事件觸發(fā)的非周期任務兩類,操作系統(tǒng)具備對這兩類任務的調(diào)度能力。基本調(diào)度算法采用優(yōu)先級搶占調(diào)度算法[4],周期任務與非周期任務主要體現(xiàn)在調(diào)度算法的調(diào)度時機上。目前,關于優(yōu)先級搶占調(diào)度的理論和實踐都比較成熟,在此不再論述。
分區(qū)內(nèi)任務調(diào)度相關數(shù)據(jù)結(jié)構(gòu):
typedef struct
{
/*分區(qū)中任務的優(yōu)先級位圖*/
Priority_Bit_map*priority;
/*域中任務的就緒鏈表*/
FCOS_TCB task_ready_table
[MAX_TASK_NUM];
}Partition_Task_schedule_control;
操作系統(tǒng)的評估除了前面提到的時間和空間分析外,還需要結(jié)合硬件平臺分析系統(tǒng)的終端相應時間,任務切換時間,分區(qū)切換時間,任務搶占時間,信號量混洗時間,死鎖解除時間,消息傳遞時間。結(jié)合軟件測試評估操作系統(tǒng)的測試覆蓋率,魯棒性測試,壓力測試,故障監(jiān)控、隔離與恢復性測試[5]。結(jié)合應用系統(tǒng)的系統(tǒng)可調(diào)度性分析,系統(tǒng)端到端延遲分析,原型系統(tǒng)評估等等。操作系統(tǒng)的評估Benchmark[6]主要有針對底層屬性的Rhealstone,Whetstone,任務屬性的Hartstone,以及針對應用的Holleywell,PapaBench。
1)Rhealstone
Rhealstone方法對操作系統(tǒng)中6個關鍵操作的時間量進行統(tǒng)計測量,并歸一化成Rhealstone指標。主要參數(shù)有任務切換時間 (Task switch time), 任務搶占時間(Preemption time),中斷延遲時間 (Interrupt Latency),信號量混洗時間(Semaphore-shuffle time), 死 鎖 解 除 時 間 (Deadlock break time),任務間消息延遲(Intertask message latency)。
2)Whetstone
該方法用來測試計算機性能,主要用來評估浮點型應用,如大部分執(zhí)行時間(約50%)進行數(shù)學計算,且大部分變量為全局變量的應用。
3)Dhrystone
該方法主要用來測試非數(shù)值性系統(tǒng)編程的性能影響(如操作系統(tǒng),編譯器、文字處理等等),該方法適用于沒有浮點操作,大量時間花費在字符串操作,且大部分變量不是全局變量的應用
4)Hartstone
該方法使用不同屬性的任務組來評估操作系統(tǒng)的性能。該方法由以下測試序列組成
*PH序列: 周期任務,和諧頻率(頻率之間成倍關系)
*PN序列: 周期任務,非和諧頻率
*AH序列:非周期任務
*SH序列:帶同步的周期任務
*SA序列:帶非周期處理和同步的周期任務
該項目由一個嵌入式機載系統(tǒng)和地面站構(gòu)成。機載系統(tǒng)由一個控制卡,一個GPS接收器,一個雙軸差分紅外傳感器,一個無線傳輸器和諸多伺服控制器組成。
控制卡[7]由雙處理器構(gòu)成,一個處理器MCU0負責導航功能,MCU1負責飛行控制功能。處理器之間使用SPI連接。
地面站由一個無線命令接收發(fā)送器和一個通用計算機組成。通用計算機記錄并且控制飛行參數(shù),飛行路線等。PowerPC存儲管理單元提供三種存儲管理機制,一種為Real模式,該模式類似于X86體系中的Flat模式,不具備存儲權(quán)限和保護能力;一種為BAT模式,該模式利用處理器提供的8組IBAT指令和DBAT數(shù)據(jù)寄存器對存儲空間進行管理;一種為段頁模式,該模式利用存儲于存儲器中的頁表進行管理存儲空間。我們分別在BAT模式和段頁模式下,測試存儲空間10 000次讀寫操作耗時,可以看出在BAT模式下,平均花費時間為102.7 μs,而在段頁模式下為 258.3 μs,相差兩倍以上。
近年來,隨著硬件的快速發(fā)展,特別是處理器速度的快速提升,為通過綜合各傳統(tǒng)子系統(tǒng)而降低航空電子系統(tǒng)的成本,能耗,重量以及空間等等提供了可能。這種綜合的模塊化航空電子體系結(jié)構(gòu)要求將傳統(tǒng)的的子系統(tǒng)綜合到單一的硬件平臺中,并要求其基礎軟件平臺能夠提供各子系統(tǒng)在時間,空間上的隔離,保證各子系統(tǒng)能夠獨立的運行,且可靠及時的通信。
[1]John regehr,Alastair Reid,Kirk webb.Eliminating stack overflow by abstract interpretation[J].ACM Transactions on Embedded Computing Systems (TECS),2005(4):751-778.
[2]Justin Littlefield-Lawwill,Ramanathan Viswanathan.Advancing Open Standards in Integrated Modular Avionics[J].An Industry Analysis.26th Digital Avionics Systems Conference (DASC),2007:214-225.
[3]HQ AFMC/ENPI.Air Force Open Systems Implementation Guide(DRAFT) [N].1997.
[4]Logan G T.Integrated Avionics:Past,Present and Future[J].Aerospace and Electronic Systems Magazine,2007(22):39-40.
[5]FAA Technical Standard Oder TSO-C153. Integrated Modular Avionics Hardware Elements[N].2002.
[6]Muhammad M.Latif,Ravi Ramaseshan,F(xiàn)rank Mueller.Soft Error Protection via Fault-Resilient Data Representations.In Proc.3rd IEEE Workshop on Silicon Errors[N].2009.
[7]Federal Aviation Adinistration.Guidance for Integrated ModularAvionics (IMA) ThatImplementTSO-C153 Authorized Hardware Elements.FAA Advisory Circular AC 20-145[N].2003.