摘 要:嵌入式系統硬件資源是相對固定且有限,為了適應環境,就需要系統從軟/硬件上可重構。基于此,提出了一種基于可配置構件面向環境的嵌入式系統模型。它能適應不同環境下,面向任務地對系統進行重構來完成使命。通過可重構縮小了系統成品體積,節省了硬件資源,提高了系統可重用性。該模型在某航空機載設備中得到實際應用,解決了由來已久的問題,提高了系統的靈活性和自適應性。
關鍵詞:復雜多變環境; 可重構; 面向任務
中圖分類號:TP311 文獻標志碼:A 文章編號:1001-3695(2008)08-2369-02
Research of reconfigured embedded systems for environment
DU Cheng-lie, TAN Feng
(College of Computer Science Engineering, Northwestern Polytechnical University, Xi’an 710072, China)
Abstract:In order to adapt variable environment, the system needs a dynamic mechanism to deal with it. For embedded systems, hardware is usually limited and fixed; for adapting environment, the system needs to be reconfigured from software to hardware. On the basis of reconfigured component, this paper proposed an embedded system model facing environment. The techniques could make the system adapt different environment and achieve mission through reconfiguration. By reconfiguration, it reduced finished product bulk, saved hardware. The model applied in some avionic device; it solved the long-standing problem and improved the system flexibility and adaption.
Key words:changeful environment; reconfigure; face to mission
嵌入式系統廣泛應用于民用工業和軍工領域。這類系統有一共同特點:硬件資源有限且相對固定,從而導致系統的靈活性差,不能適應環境的變化。不能因環境變化,系統就需要額外增加資源。更糟糕的是,有時候環境變化復雜,且對設備自身的體積以及成本有一定要求,就無法單靠增加資源來解決問題。如果嵌入式系統的軟/硬件本身能夠根據環境,動態地改變自身屬性就能夠解決這類問題。這就是典型系統可重構可配置問題。通過可重構,不僅可以提高系統的QoS, 使得面對不同的環境,因地制宜地啟用相應的應用程序,甚至在某些特殊情況下,可以使系統功能發生更大變化來執行另一個完全不同的任務。此項技術在國外已經有成功運用的典范。目前美軍的新一代戰機F-22可以根據任務的不同隨時改變航電的作戰模式,以適應環境的變化,極大地提高了戰機的性能。
目前,國外關于面向環境的可重構技術的研究主要有兩類:實現可重構技術的機制問題和可重構的算法問題。前者主要集中于軟件的體系結構模型、實現方法;后者主要研究系統采用何種策略來重構。對于實時性要求較高的嵌入式系統進行重構,必須考慮有限的資源和對時間的緊迫要求,保證系統在有限的資源和可以接受的時間內完成系統的重構。
1 可配置的構件技術
1.1 模型元素
隨著軟件規模和復雜度的不斷提高,構件技術應運而生。相比以往的技術,構件技術具有很好的可重用性、可移植性、可維護性,縮短了開發周期。采用構件技術來設計系統為人們提供了前沿的軟件設計思想。構件是一個封裝的、規范的、可重用的軟件模塊,是組織系統的基本單位。通常嵌入式系統軟件具有多樣化、與硬件相關,但面向特定領域的嵌入式軟件擁有共同的特點,所以可以使用構件技術來支持嵌入式應用系統的開發。嵌入式系統軟件具有硬件相關性和領域性的特點,設計和實現較復雜。通過對嵌入式系統構件的研究,筆者得出嵌入式構件的結論:
a)與平臺密切相關性。嵌入式構件可與平臺硬件和軟件具有依賴性,要實現構件的可移植性,就必須做到可配置。當平臺發生改變時,通過修改配置即可使用。
b)與領域密切相關性。不同領域,構件屬性千差萬別;但同一領域,構建卻是相通的。面向某個領域的構件模型是可行的,基于這樣的構件去建立嵌入式系統是可行的。
c)嵌入式構件必須具有高可靠性和安全性。嵌入式系統對資源和時間有著嚴格的要求,必須在系統所允許的范圍內實現構件的運行。同時在運行中,構件必須是高可靠性的。構件的任何一行代碼出錯都可能導致系統的崩潰。
構件作為一種新興的思想,可從不同側面進行分類和理解:
a) 按開發過程構件可以分為分析件、設計件、程序件和數據件。
b) 按功能可以分為三層:基礎層為基本數據類構件和系統支撐構件;中間層為各種通用的中間件;頂層為針對各種領域的專用構件或子系統構件。從粒度上看通常底層的粒度為較小,而頂層的粒度為較大。
c) 按使用方式分為動態和靜態兩種。
d) 按構件的結構分為原(葉)子構件及由多個構件聚集的組合構件。
在面向構件開發的領域中,ABB公司的PECOS構件模型和 Coco構件組裝語言是其中的佼佼者。如圖1所示,在PECOS模型中,一個嵌入式構件最基本單位,也叫葉子構件,它擁有屬性、操作、端口和連接器。它可以分為擁有控制自己線程的活動構件、不擁有線程控制權被別人調用的被動構件和等待特定事件觸發的構件。構件本身就像一個黑盒,里面封裝有屬性和操作,對外提供端口。端口是構件和外界交互的窗口,向外部提供服務。連接器是用來耦合構件的,它本身就是一個端口。構件與構件的耦合將組成更大的構件。如圖2所示,葉子構件A和B通過connect1連接器連接。
為了讓構件可以達到可配置的程度,對模型進行擴展。接口是構件與外部系統進行通信的窗口。將構件的接口分為調用接口和配置接口。調用接口是構件的功能集合,配置接口僅含環境的參數。調用接口和配置接口應該松耦合。配置接口和調用接口都含關于環境的參數。調用接口可分為向外提供服務的接口和要求得到服務的接口。對外提供服務的接口已經實現了構件的功能,從而對外部構件進行服務;要求得到服務的接口需要向其他構件請求服務,它沒有實現此接口的功能。構件接口設計實現了良好的封裝性和重用性,不受實現語言的限制。
1.2 構件運行時的模型
構件運行模型如圖3所示。通過配置構件的配置接口,運行在有中間件平臺上,可以達到即插即用效果。中間件屏蔽了底層上的差異,形成了構件與底層松耦合的關系,它對上提供統一的接口,構件只要符合標準均可使用。Runtime manager負責對構件的管理。它可以負責構件的加載、通信、調度等。另外,構件之間的關系應該是松耦合的,運行起來構件相對獨立,體現了很好的重用性。
2 面向環境可重構嵌入系統軟件模型
2.1 面向環境的可配置嵌入式系統模型
面向環境的可配置的嵌入式系統,要求系統能夠面對不同的環境作出相應的反應。從配置的策略說可以是靜態的、動態的、自適應的。這樣的嵌入式系統應該具有以下特點:
a)系統具有可配置可重構的特點。系統必須根據環境的變化,適時采取恰當的策略來實現對外部環境的響應。環境是一個寬泛的概念,包括使命、應用對象發生變化以及功能的異構等?;诖?,系統在體系結構上就必須支持這種機制。
b)系統具有實時性和資源有限性。作為一個面向環境的嵌入式系統,必須考慮嵌入式系統本身的特點,系統對資源和響應時間都有較高的要求。面向環境的可配置可重構系統,必須考慮系統的安全性;在配置重構的過程中,必須保證系統的安全性。同時,也應該考慮保證系統的QoS。
c)系統具有面向領域性。嵌入式系統的軟件與平臺有著密切聯系,但面向不同領域的是有很大共性的。采用面向特定領域的構件開發是可行的。
采用構件技術開發嵌入式系統具有大大提高開發效率、縮短開發周期、節約成本等諸多優點。基于此,本文提出了一種可配置的嵌入式系統軟件模型,如圖4所示。
該系統由實時操作系統(RTOS)、領域中間件(domain middleware)和以構件為單位的應用程序組成。RTOS負責與硬件以及領域中間件進行通信。領域中間件是面向某個行業的,具有成熟性和針對性,提供了面向某個行業的標準接口。中間件屏蔽掉不同硬件上的差異,向上提供了統一的API。領域中間件的功能很多,最基本的有調度管理、資源管理、配置管理、QoS管理等。上層的應用程序所調用的接口,只要符合標準的API接口,均可以使用。應用程序是基于可配置構件開發的,節約了成本,縮短了開發周期,體現了良好的可移植性,同時它也是實現系統可配置可重構的基礎。對于一個應用程序,可以采用類似于搭積木的方式構建,其構建的單位就是可配置構件。從微觀來說,構件具有接收環境參數的配置接口;經過連接器耦合而成的應用程序,從宏觀上看,應用程序也就變得可以配置。應用程序對外提供調用接口和配置接口。配置接口可以接收環境的參數,來引發應用程序功能上的重構。
在領域中間件中,存放著環境的配置表,里面放著環境的參數。對于由可配置構件組成的應用程序來說,它本身可以看做由幾個相對獨立功能模塊構件構成。每一個功能構建都有調用接口和配置接口。配置接口是用來接收環境參數。當環境發生變化時,可以通過改變領域中間件中的配置信息來告訴應用程序作出反應。作為中間件,它具有配置管理環境參數的功能。應用程序會實時接收來自中間件中的環境配置信息來更新自身配置接口的屬性,不同的配置信息就會引發應用程序調用接口的改變,接口的改變就會產生構件功能的變化,從而實現相同的硬件實現不同的功能。環境信息可以通過傳感器獲得交給中間件??紤]到嵌入式系統的特點,配置過程應該是安全可靠的。當配置發生時,中間件就會為應用程序預留資源,以備重構的完成。當發現無法完成時,中間件會發出警告停止重構,通過終端告知用戶無法實現的原因。
2.2 動態可配置算法
采用何種策略來實現面向環境系統重配置是非常重要的。當外界環境發生變化,就需要領域中間件采取措施來執行系統的重新配置以改變應用程序來適應環境。不同的環境變化就會產生不同的重新配置命令。這就產生了環境參數和命令的匹配問題。基于上述模型,本文提出了以下幾種算法:
a)面向任務的。對于一些嵌入式系統,其功能是相對固定的。例如飛機的航電系統,飛機在飛行中有很多不同的模式,無論是巡航模式還是作戰模式,在每一種模式下,它的功能是確定不變的。對于這類系統,可以采用面向任務的算法。將每一種模式的環境參數和命令一一對應。當出現某類情況時,通過傳感器傳來的環境參數就會觸發相應的配置命令。
b)基于統計的。對于一些外界環境不太確定的嵌入式系統,可以采取基于統計的策略來實現配置算法?;诮y計的可以分為靜態的統計方法和動態的統計方法?;陟o態的方法等同于第一種方法,通過事先對于環境的實驗得出統計數據,尋找最佳的匹配。動態的統計就是,當環境發生變化使得系統性能下降或時間片到時,中間件會將所有的命令都嘗試一次,并統計所有配置命令下的系統性能,并選擇最高的作為當前的環境參數。
3 結束語
隨著應用系統對于計算環境條件的提高,出現了面向環境的計算?;谇度胧綐嫾能浖O計是一種前沿的方法。體積和資源受限的嵌入式系統面對多變的環境時要適應外部,就必須可配置可重構。本文研究了嵌入式構件,并提出了可配置嵌入式構件模型,并以此為基礎提出了面向環境和特定領域的嵌入式軟件系統模型,探討了重配置的機制,同時研究了配置算法。此模型成功應用于某機載設備中,提高了系統的靈活性和適應性,滿足了面向環境的嵌入式系統應用。
參考文獻:
[1]CHRISTOPH A, CHRISTOPH M. Components for embedded software: the PECOS approach[C]// Proc of International Conference on Compilers, Architecture, and Synthesis for Embedded Systems Grenoble:[s.n.], 2000:19-26.
[2]KON F, CAMBELL R H. Supporting automatic configuration of component-based distributed systems[C]// Proc of the 5th Conference on USENIX Conference on Object-Oriented Technologies Systems. San Diego, California:[s.n.],1999.
[3]KHAN J, VEMURI R. Battery-efficient task execution on reconfigrable computing platforms with multiple processing units[C]// Proc of the 19th IEEE International Parallel and Distributed Processing Symposium. 2005.
[4]欒鑫穎,孫曉民.車用嵌入式開放系統的軟構件研究[J]. 計算機應用研究,2006,23(4):57-59.
[5]FOLCARELLI L, SUSU A, KLUTER T. An opportunistic reconfiguration strategy for environmentally powered devices[C] // Proc of the 3rd Conference on Computing Frontiers. Ischia, Italy: [s.n.], 2006:171-174.
[6]李濤,董云衛.一種嵌入式軟件構件模型和構件庫[J]. 計算機科學, 2006, 33(11):259-262,271.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文