新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PBO技術及實時嵌入式軟件開發

        PBO技術及實時嵌入式軟件開發

        作者: 時間:2006-05-07 來源:網絡 收藏

        摘要:介紹PB0技術及其特點,這種技術支持軟件重用和動態可重配置;分析其應用于航空航天器等實時裝入式軟件開發過程中的優勢與困難。

        本文引用地址:http://www.104case.com/article/241604.htm

        關鍵詞:軟件重用 動態可重配置 實時裝入式軟件

        1 PBO技術[1]

        PBO(Port-Based Object)技術[1]是一種可用于軟件工程的新技術,特別適合于動態可重配置實時軟件(DRRTS)的開發。DRRTS可以在線配置,無需重新編譯和連接,也就可以不必關閉和重新啟動系統,從而滿足某些系統需要連續不停地運行和升級的要求。每一個PBO相當于一個組件,結構如圖1所示。左右兩邊分別是變量輸入和輸出端口,上面是其配置常端口,下面是其與傳統器與機械臂通信的源端口。每一個PBO進程都有相同的有限狀態機,如圖2所示。它有4種狀態(用橢圓表示):未建立、錯誤、OFF和ON。狀態之間可以互相轉化。這使得每一個PBO的代碼有著相同的結構,包含著同樣的方法,只是其中的方法處理過程不同。實際應用中,可以建立一個PBO庫,庫中的每一個PBO組件都可以作為軟件重用的模塊,在需要的時候可以將它們動態地配置。圖3是一個PBO相互連接組合的實例。PBO的參數用局部變量表和全局變量表兩級存儲,進程之間的通信通過共享全局變量存儲器來實現。圖4是PBO進行狀態變量兩級存儲結構圖。每當進程開始執行一個循環時,從全局變量表中讀入變量,執行完畢中,再把變量寫入全局變量表。

        2 PBO技術的特點

        對于基于實時操作系統(RTOS)上的控制系統軟件,采用PBO技術,可以從系統體系結構到代碼實現的各階段加快軟件開發速度。PBO技術遵循高內聚、低耦合的封裝設計思想,整個系統由多個可配置組件組成。按照這種框架,可以使用當今流行的面向對象設計模式,采用消息驅動;但實時軟件是面向實時系統的,要求高速有效,消息驅動有時不能滿足這個要求。PBO設計方法中,數據的傳遞是通過共享存儲器實現的,這樣設計滿足了硬件的低負荷工作和數據的更新速度要求。每個組件與外界的聯系由四個端口(port)組成。內部實現黑箱操作。采用兩級存儲保存數據,力圖實現最大限度減少訪問沖突,減少組件間的依賴性。PBO技術結合了端口自動代數模型和對象的軟件抽象[1]。每一個PBO相當于一個控制系統,可以用傳遞函數來表示,由此,可以采用精確的數學方法對子進行描述和驗證。每一個PBO也是一個標準化了的對象,即所有的PBO有著同樣的結構和同樣的有限狀態機,它和外界的接口也是標準經的。PBO的執行是互相獨立的,并行的,不需要同步,使得PBO之間的依賴降低到最低的限度,可以動態地加入或退出某個PBO。PBO相當于一個即插即用的軟件組件,可以通過重新配置以適合需求。所以,采用PBO技術開發的軟件具有開放性,易于修改和升級。

        3 PBO技術中實時軟件的特點[2]

        實時軟件要求極端的可靠性。許多系統一經啟動,要連續不斷運行。采用PBO可實現動態重配置,重配置時間開銷對于系統運行幾乎不受影響,滿足這類實時系統修改和升級的要求。采用PBO技術設計的軟件,數據通過共享存儲器,能夠實現高速運行,提高設備采樣率,也使得任何信息能夠隨時處理,滿足實時系統及時性要求,這樣也就保證系統產生的結果在時間上具有嚴格的正確性。基于普通模塊設計的軟件,采用消息傳統機制,可能由于消息的阻塞而使事件處理的及時性得不到保證;而PBO技術通過共享變量表實現通信,鎖定CPU時傳輸的變量很少,等待資源的CPU能夠很快獲得所需的資源,保證實時系統能夠及時處理各種事情。由于許多PBO進程在多CPU上獨立并行,可同時處理數據的輸入或輸出,也滿足了實時系統同時性的要求。

        4 關于軟件測試的問題[2,3]

        由于實時系統具有很高的可靠性要求,因此,對其的測試不僅要針對系統的功能行為,還要針對系統的時序行為,所以實時系統的測試是軟件界公認難點。由于某些行為只在特定的系統狀態下和某些特定的事件序列到達時才會發生,為了避免軟件缺陷,需要精心設計測試用例并保證足夠的測試覆蓋率。在PBO技術中,進程的調度通過實時操作系統(RTOS)實現,使得對共享存儲器訪問的時序列加隨機和不可預測,各種可能的情形也更多,相對測試的覆蓋面隨之減少。基于PBO軟件技術的架構不同于其它傳統實時軟件技術構架,隨之對測試環境的模擬也新的要求,各個PBO之間是獨立開發的,對應的測試要求與之相應。這增加了對測試環境要求的難度,而且各個PBO之間輸入輸出數據的測試也變得更為復雜。對于在非正常環境下,測試的結果也更難預料和把握。另外,一般軟件測試時,模擬運行速度與其實際執行速度不同,仍將此方法運用于基于PBO技術的軟件測試,會掩蓋軟件中許多錯誤。所以,采用PBO技術,有可能增加軟件測試的難度。

        5 軟件重用與動態可重配置[4]

        每一個PBO是一個軟件重用的構件,它有著標準的接口和開放的擴展性。這種軟件重用是一種二時進代碼級的重用,擺脫了編程語言的限制,能夠即插即用。采用一組PBO的組合,就形成了一種配置,這種配置可以實現一定的功能,滿足實時系統的需要。隨著時間的推移和技術的發展,需求會逐漸發生變化,因此,采用部分原PBO再加入一些新PBO,以構造一種新的配置,滿足變化后的需求。通過軟件重用,可以降低開發成本,縮短開發時間,不斷滿足實時軟件變化的要求。

        6 PBO技術應用開實時嵌入式軟件開發

        在航空航天器的軟件設計中,由于其造價非常高,因此希望它能夠具有更多的功能。但是這類軟件必須面臨存儲空間受限,運算能力有限的硬件限制。我們不可能制作一個滿足各種功能的軟件,因為這樣的軟件必然相當龐大,修改和升級都非常困難。PBO技術適合于這類軟件的開發,因此它能很好地支持軟件重用和動態重配置。我們可以將一些PBO進行組合,使其具有一定功能,當其完成某項任務后,就可以采用動態重配置,使其具有新的功能,完成新的任務。PBO技術基于精確的理論模型,可以在此基礎上進行嚴格的數學分析,完成規范的程序設計,保證軟件系統的可靠性。將來可以將其應用于需求分析中[5],采用形式化的方法建立規格說明,從而實現從需求分析直到代碼實現的全過程形式化設計。

        但是,PBO技術運用于這類軟件也可能面臨一些問題。PBO之間的信息交換非常有限,這對于大數據量處理必須另辟捷徑。在航空航天器中,經常要處理拍攝的各種圖片和大量的傳感器數據,還要將它們及時發回地面控制中心,這些都必須重新考慮。許多PBO進程運行于多處理器上,它們之間協同工作要進行的網絡計算也不容易。在PBO組件數目較多時,數據復制機制能否具有高可靠性和及時性也都是可能遇到的問題。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 溧阳市| 梧州市| 荔浦县| 万山特区| 疏附县| 固始县| 梁山县| 涪陵区| 革吉县| 双桥区| 舒城县| 根河市| 雷州市| 敦化市| 阳高县| 河西区| 弋阳县| 安康市| 丽水市| 礼泉县| 赣榆县| 绥宁县| 色达县| 枣庄市| 南木林县| 奉贤区| 奉化市| 楚雄市| 黔西| 武邑县| 勃利县| 东乌珠穆沁旗| 朔州市| 太谷县| 永靖县| 桂东县| 当涂县| 望都县| 乌什县| 新宁县| 柳河县|