PBO技術(shù)及實(shí)時(shí)嵌入式軟件開發(fā)
摘要:介紹PB0技術(shù)及其特點(diǎn),這種技術(shù)支持軟件重用和動(dòng)態(tài)可重配置;分析其應(yīng)用于航空航天器等實(shí)時(shí)裝入式軟件開發(fā)過程中的優(yōu)勢與困難。
本文引用地址:http://m.butianyuan.cn/article/241604.htm關(guān)鍵詞:軟件重用 動(dòng)態(tài)可重配置 實(shí)時(shí)裝入式軟件
1 PBO技術(shù)[1]
PBO(Port-Based Object)技術(shù)[1]是一種可用于軟件工程的新技術(shù),特別適合于動(dòng)態(tài)可重配置實(shí)時(shí)軟件(DRRTS)的開發(fā)。DRRTS可以在線配置,無需重新編譯和連接,也就可以不必關(guān)閉和重新啟動(dòng)系統(tǒng),從而滿足某些系統(tǒng)需要連續(xù)不停地運(yùn)行和升級(jí)的要求。每一個(gè)PBO相當(dāng)于一個(gè)組件,結(jié)構(gòu)如圖1所示。左右兩邊分別是變量輸入和輸出端口,上面是其配置常端口,下面是其與傳統(tǒng)器與機(jī)械臂通信的源端口。每一個(gè)PBO進(jìn)程都有相同的有限狀態(tài)機(jī),如圖2所示。它有4種狀態(tài)(用橢圓表示):未建立、錯(cuò)誤、OFF和ON。狀態(tài)之間可以互相轉(zhuǎn)化。這使得每一個(gè)PBO的代碼有著相同的結(jié)構(gòu),包含著同樣的方法,只是其中的方法處理過程不同。實(shí)際應(yīng)用中,可以建立一個(gè)PBO庫,庫中的每一個(gè)PBO組件都可以作為軟件重用的模塊,在需要的時(shí)候可以將它們動(dòng)態(tài)地配置。圖3是一個(gè)PBO相互連接組合的實(shí)例。PBO的參數(shù)用局部變量表和全局變量表兩級(jí)存儲(chǔ),進(jìn)程之間的通信通過共享全局變量存儲(chǔ)器來實(shí)現(xiàn)。圖4是PBO進(jìn)行狀態(tài)變量兩級(jí)存儲(chǔ)結(jié)構(gòu)圖。每當(dāng)進(jìn)程開始執(zhí)行一個(gè)循環(huán)時(shí),從全局變量表中讀入變量,執(zhí)行完畢中,再把變量寫入全局變量表。
2 PBO技術(shù)的特點(diǎn)
對(duì)于基于實(shí)時(shí)操作系統(tǒng)(RTOS)上的控制系統(tǒng)軟件,采用PBO技術(shù),可以從系統(tǒng)體系結(jié)構(gòu)到代碼實(shí)現(xiàn)的各階段加快軟件開發(fā)速度。PBO技術(shù)遵循高內(nèi)聚、低耦合的封裝設(shè)計(jì)思想,整個(gè)系統(tǒng)由多個(gè)可配置組件組成。按照這種框架,可以使用當(dāng)今流行的面向?qū)ο笤O(shè)計(jì)模式,采用消息驅(qū)動(dòng);但實(shí)時(shí)嵌入式軟件是面向?qū)崟r(shí)系統(tǒng)的,要求高速有效,消息驅(qū)動(dòng)有時(shí)不能滿足這個(gè)要求。PBO設(shè)計(jì)方法中,數(shù)據(jù)的傳遞是通過共享存儲(chǔ)器實(shí)現(xiàn)的,這樣設(shè)計(jì)滿足了硬件的低負(fù)荷工作和數(shù)據(jù)的更新速度要求。每個(gè)組件與外界的聯(lián)系由四個(gè)端口(port)組成。內(nèi)部實(shí)現(xiàn)黑箱操作。采用兩級(jí)存儲(chǔ)保存數(shù)據(jù),力圖實(shí)現(xiàn)最大限度減少訪問沖突,減少組件間的依賴性。PBO技術(shù)結(jié)合了端口自動(dòng)代數(shù)模型和對(duì)象的軟件抽象[1]。每一個(gè)PBO相當(dāng)于一個(gè)控制系統(tǒng),可以用傳遞函數(shù)來表示,由此,可以采用精確的數(shù)學(xué)方法對(duì)子進(jìn)行描述和驗(yàn)證。每一個(gè)PBO也是一個(gè)標(biāo)準(zhǔn)化了的對(duì)象,即所有的PBO有著同樣的結(jié)構(gòu)和同樣的有限狀態(tài)機(jī),它和外界的接口也是標(biāo)準(zhǔn)經(jīng)的。PBO的執(zhí)行是互相獨(dú)立的,并行的,不需要同步,使得PBO之間的依賴降低到最低的限度,可以動(dòng)態(tài)地加入或退出某個(gè)PBO。PBO相當(dāng)于一個(gè)即插即用的軟件組件,可以通過重新配置以適合需求。所以,采用PBO技術(shù)開發(fā)的軟件具有開放性,易于修改和升級(jí)。
3 PBO技術(shù)中實(shí)時(shí)軟件的特點(diǎn)[2]
實(shí)時(shí)軟件要求極端的可靠性。許多系統(tǒng)一經(jīng)啟動(dòng),要連續(xù)不斷運(yùn)行。采用PBO可實(shí)現(xiàn)動(dòng)態(tài)重配置,重配置時(shí)間開銷對(duì)于系統(tǒng)運(yùn)行幾乎不受影響,滿足這類實(shí)時(shí)系統(tǒng)修改和升級(jí)的要求。采用PBO技術(shù)設(shè)計(jì)的軟件,數(shù)據(jù)通過共享存儲(chǔ)器,能夠?qū)崿F(xiàn)高速運(yùn)行,提高設(shè)備采樣率,也使得任何信息能夠隨時(shí)處理,滿足實(shí)時(shí)系統(tǒng)及時(shí)性要求,這樣也就保證系統(tǒng)產(chǎn)生的結(jié)果在時(shí)間上具有嚴(yán)格的正確性?;谄胀K設(shè)計(jì)的軟件,采用消息傳統(tǒng)機(jī)制,可能由于消息的阻塞而使事件處理的及時(shí)性得不到保證;而PBO技術(shù)通過共享變量表實(shí)現(xiàn)通信,鎖定CPU時(shí)傳輸?shù)淖兞亢苌?,等待資源的CPU能夠很快獲得所需的資源,保證實(shí)時(shí)系統(tǒng)能夠及時(shí)處理各種事情。由于許多PBO進(jìn)程在多CPU上獨(dú)立并行,可同時(shí)處理數(shù)據(jù)的輸入或輸出,也滿足了實(shí)時(shí)系統(tǒng)同時(shí)性的要求。
4 關(guān)于軟件測試的問題[2,3]
由于實(shí)時(shí)系統(tǒng)具有很高的可靠性要求,因此,對(duì)其的測試不僅要針對(duì)系統(tǒng)的功能行為,還要針對(duì)系統(tǒng)的時(shí)序行為,所以嵌入式實(shí)時(shí)系統(tǒng)的測試是軟件界公認(rèn)難點(diǎn)。由于某些行為只在特定的系統(tǒng)狀態(tài)下和某些特定的事件序列到達(dá)時(shí)才會(huì)發(fā)生,為了避免軟件缺陷,需要精心設(shè)計(jì)測試用例并保證足夠的測試覆蓋率。在PBO技術(shù)中,進(jìn)程的調(diào)度通過實(shí)時(shí)操作系統(tǒng)(RTOS)實(shí)現(xiàn),使得對(duì)共享存儲(chǔ)器訪問的時(shí)序列加隨機(jī)和不可預(yù)測,各種可能的情形也更多,相對(duì)測試的覆蓋面隨之減少?;赑BO軟件技術(shù)的架構(gòu)不同于其它傳統(tǒng)實(shí)時(shí)軟件技術(shù)構(gòu)架,隨之對(duì)測試環(huán)境的模擬也新的要求,各個(gè)PBO之間是獨(dú)立開發(fā)的,對(duì)應(yīng)的測試要求與之相應(yīng)。這增加了對(duì)測試環(huán)境要求的難度,而且各個(gè)PBO之間輸入輸出數(shù)據(jù)的測試也變得更為復(fù)雜。對(duì)于在非正常環(huán)境下,測試的結(jié)果也更難預(yù)料和把握。另外,一般嵌入式軟件測試時(shí),模擬運(yùn)行速度與其實(shí)際執(zhí)行速度不同,仍將此方法運(yùn)用于基于PBO技術(shù)的軟件測試,會(huì)掩蓋軟件中許多錯(cuò)誤。所以,采用PBO技術(shù),有可能增加軟件測試的難度。
5 軟件重用與動(dòng)態(tài)可重配置[4]
每一個(gè)PBO是一個(gè)軟件重用的構(gòu)件,它有著標(biāo)準(zhǔn)的接口和開放的擴(kuò)展性。這種軟件重用是一種二時(shí)進(jìn)代碼級(jí)的重用,擺脫了編程語言的限制,能夠即插即用。采用一組PBO的組合,就形成了一種配置,這種配置可以實(shí)現(xiàn)一定的功能,滿足實(shí)時(shí)系統(tǒng)的需要。隨著時(shí)間的推移和技術(shù)的發(fā)展,需求會(huì)逐漸發(fā)生變化,因此,采用部分原PBO再加入一些新PBO,以構(gòu)造一種新的配置,滿足變化后的需求。通過軟件重用,可以降低開發(fā)成本,縮短開發(fā)時(shí)間,不斷滿足實(shí)時(shí)軟件變化的要求。
6 PBO技術(shù)應(yīng)用開實(shí)時(shí)嵌入式軟件開發(fā)
在航空航天器的軟件設(shè)計(jì)中,由于其造價(jià)非常高,因此希望它能夠具有更多的功能。但是這類軟件必須面臨存儲(chǔ)空間受限,運(yùn)算能力有限的硬件限制。我們不可能制作一個(gè)滿足各種功能的軟件,因?yàn)檫@樣的軟件必然相當(dāng)龐大,修改和升級(jí)都非常困難。PBO技術(shù)適合于這類軟件的開發(fā),因此它能很好地支持軟件重用和動(dòng)態(tài)重配置。我們可以將一些PBO進(jìn)行組合,使其具有一定功能,當(dāng)其完成某項(xiàng)任務(wù)后,就可以采用動(dòng)態(tài)重配置,使其具有新的功能,完成新的任務(wù)。PBO技術(shù)基于精確的理論模型,可以在此基礎(chǔ)上進(jìn)行嚴(yán)格的數(shù)學(xué)分析,完成規(guī)范的程序設(shè)計(jì),保證軟件系統(tǒng)的可靠性。將來可以將其應(yīng)用于需求分析中[5],采用形式化的方法建立規(guī)格說明,從而實(shí)現(xiàn)從需求分析直到代碼實(shí)現(xiàn)的全過程形式化設(shè)計(jì)。
但是,PBO技術(shù)運(yùn)用于這類軟件也可能面臨一些問題。PBO之間的信息交換非常有限,這對(duì)于大數(shù)據(jù)量處理必須另辟捷徑。在航空航天器中,經(jīng)常要處理拍攝的各種圖片和大量的傳感器數(shù)據(jù),還要將它們及時(shí)發(fā)回地面控制中心,這些都必須重新考慮。許多PBO進(jìn)程運(yùn)行于多處理器上,它們之間協(xié)同工作要進(jìn)行的網(wǎng)絡(luò)計(jì)算也不容易。在PBO組件數(shù)目較多時(shí),數(shù)據(jù)復(fù)制機(jī)制能否具有高可靠性和及時(shí)性也都是可能遇到的問題。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論