基于軟件可靠性仿真測試平臺實時技術(shù)研究
本文在介紹軟件可靠性仿真測試平臺的組成及功能的基礎(chǔ)上,以仿真器分系統(tǒng)為例,對平臺在實時測試過程中的一些實現(xiàn)技術(shù)進行了研究。
1 仿真測試平臺系統(tǒng)功能及組成框架
整個仿真測試平臺采用分布式結(jié)構(gòu),由主控機分系統(tǒng)(以下簡稱為主控機)、仿真器分系統(tǒng)(以下簡稱為仿真器)和激勵器分系統(tǒng)(以下簡稱為激勵器)三個分系統(tǒng)組成,各分系統(tǒng)與被測目標軟件的交聯(lián)關(guān)系如圖1所示。其中,主控機是測試平臺的控制中心,它負責(zé)生成原始測試數(shù)據(jù),向仿真器、激勵器分發(fā)測試用例,協(xié)調(diào)兩個分系統(tǒng)的工作,并根據(jù)測試狀況控制仿真器和激勵器的工作模式。仿真器和激勵器將主控機傳送過來的測試用例數(shù)據(jù),生成真正的目標軟件可以接收的測試用例數(shù)據(jù)傳送給目標系統(tǒng),同時,仿真器和激勵器負責(zé)將自身工作狀態(tài)信息和從目標系統(tǒng)得到的測試結(jié)果數(shù)據(jù)通過底層網(wǎng)絡(luò)實時或非實時地傳送回主控機。
圖1 仿真測試平臺的交聯(lián)關(guān)系圖
由于目標軟件由匯編語言寫成,內(nèi)部處理過程較為復(fù)雜,所以采用黑盒測試方法。目標軟件的處理周期為25 ms,因此在實時測試過程中,需要每25 ms有一組測試用例數(shù)據(jù)由仿真器通過1553B總線,激勵器通過并口同時輸入給目標軟件。仿真器和激勵器不僅需要每25 ms產(chǎn)生目標軟件的輸入數(shù)據(jù),同步向目標軟件發(fā)送數(shù)據(jù),而且仿真器還能接收目標軟件的輸出,并且對輸出數(shù)據(jù)進行相應(yīng)的實時處理,如結(jié)果數(shù)據(jù)的收集、保存及數(shù)據(jù)的顯示等等。由于整個測試平臺是在非實時、多任務(wù)的Win98操作系統(tǒng)上實現(xiàn)的,因此,如何利用Win98的多任務(wù)并發(fā)的特性,采用合理的任務(wù)調(diào)度策略,在任務(wù)處理周期內(nèi),按時完成各種任務(wù),并將多個任務(wù)協(xié)調(diào)一致,是整個設(shè)計過程中主要應(yīng)該解決的問題。
在圖1所示的平臺各分系統(tǒng)中,主控機與目標軟件是通過仿真器形成實時閉環(huán)的。仿真器通過測試用例,實時給出目標軟件閉環(huán)運行所需要的交聯(lián)子系統(tǒng)發(fā)出的命令和數(shù)據(jù),使得目標軟件能夠在較為真實的仿真任務(wù)剖面和交聯(lián)環(huán)境中運行。因此,仿真器是仿真測試平臺中的一個重要組成部分,仿真器的實時實現(xiàn)方法是整個平臺系統(tǒng)設(shè)計的重點。 2 仿真器分系統(tǒng)的功能設(shè)計及實時實現(xiàn)技術(shù)
2.1 仿真器分系統(tǒng)功能結(jié)構(gòu)
仿真器分系統(tǒng)是個實時任務(wù)系統(tǒng),在整個測試過程的運行模式下,需要并發(fā)處理不同的任務(wù),如數(shù)據(jù)實時存盤、提取、交互式顯示、每25 ms驅(qū)動1553B總線等任務(wù),任務(wù)調(diào)度涉及到CPU、內(nèi)存、網(wǎng)絡(luò)、硬盤、數(shù)據(jù)結(jié)構(gòu)、I/O接口等資源,因而合理調(diào)度各個任務(wù),正確分配其所占用的系統(tǒng)資源,是仿真器測試平臺設(shè)計的關(guān)鍵之一。
為了提高平臺系統(tǒng)的可靠性和故障快速恢復(fù)能力,仿真器采用功能模塊化設(shè)計方法。不同任務(wù)對應(yīng)的工作模塊工作相對獨立,可以隨時依據(jù)新技術(shù)對相應(yīng)模塊的軟件算法進行更新和擴充,這種設(shè)計易于發(fā)揮Win98的多任務(wù)的特性,提高平臺系統(tǒng)實時工作的能力。其中,任務(wù)調(diào)度管理模塊是仿真器平臺系統(tǒng)的核心,其他各功能模塊的運行都是在管理調(diào)度模塊的統(tǒng)一管理控制下完成的。它與其他任務(wù)的功能模塊之間的邏輯調(diào)用關(guān)系如圖2所示。
圖2 任務(wù)調(diào)度管理模塊調(diào)用關(guān)系
在仿真器設(shè)計中,除了必要的網(wǎng)卡(和主控機連接)和MBI卡(和目標系統(tǒng)連接)等硬件設(shè)備以外,仿真器的各項功能均是通過軟件來完成的,因而系統(tǒng)軟件設(shè)計中采用合理的調(diào)度策略,避免操作系統(tǒng)的缺陷,以實現(xiàn)仿真器的功能。
2.2 仿真器調(diào)度模塊的設(shè)計
仿真器對于各類任務(wù)采用時間、事件以及數(shù)據(jù)驅(qū)動相結(jié)合的調(diào)度原則進行控制管理。為了提高系統(tǒng)的實時性和適應(yīng)性,采用了動態(tài)和靜態(tài)調(diào)度策略相結(jié)合、任務(wù)發(fā)生的周期和優(yōu)先級相結(jié)合的調(diào)度方式。
在調(diào)度框架中集中不同的調(diào)度策略。在運行模式下:系統(tǒng)測試工作正常,則對于周期性的實時任務(wù)采用靜態(tài)生成的調(diào)度策略;在系統(tǒng)發(fā)生故障時,則采用臨時的動態(tài)調(diào)度策略,它根據(jù)系統(tǒng)的運行狀況,實時加入動態(tài)任務(wù),并根據(jù)動態(tài)任務(wù)的級別,決定該任務(wù)是立即執(zhí)行還是按順序執(zhí)行。隨著故障的排除,取消該任務(wù),系統(tǒng)重新恢復(fù)到先前的調(diào)度策略。 仿真器根據(jù)任務(wù)運行占用時間的不同,以不同速率來調(diào)度不同模塊,滿足實時驅(qū)動的要求。采用優(yōu)先級調(diào)度和分時調(diào)度相結(jié)合的方式:優(yōu)先級調(diào)度方式即調(diào)度模塊對于每一項任務(wù)都賦予了嚴格的優(yōu)先級,按優(yōu)先級的次序從高到低執(zhí)行;分時調(diào)度方式是采用時間片輪轉(zhuǎn)的方式來執(zhí)行各個任務(wù),這種調(diào)度方式多是在終止模式下采用(或在運行模式下,系統(tǒng)已經(jīng)完成短周期的任務(wù),還留有時間余量的情況下)。例如,對于1553B數(shù)據(jù)驅(qū)動和交聯(lián)數(shù)據(jù)生成等短周期任務(wù)在每25 ms定時到時串行化執(zhí)行,被賦予了較高優(yōu)先級,而對于顯示和記錄數(shù)據(jù)等長周期任務(wù)分時執(zhí)行或交叉執(zhí)行,被賦予了較低優(yōu)先級,以保證能正常驅(qū)動MBI卡。
根據(jù)上述設(shè)計,在實時測試過程中,仿真器的實時調(diào)度層次模型如圖3所示。
圖3 RUN()模式下實時任務(wù)調(diào)度模型示意圖
3 結(jié)束語
本文以實時測試某航空軟件可靠性為背景,介紹了仿真器在仿真測試平臺中的作用。按照模塊化和可擴充的設(shè)計思想,給出了仿真器功能結(jié)構(gòu)組成;并且著重介紹了仿真器的任務(wù)調(diào)度管理模塊的設(shè)計思想,針對具體任務(wù)和系統(tǒng)工作模式,提出了集成動態(tài)調(diào)度策略;對于優(yōu)先+級的調(diào)度方式,采用了優(yōu)先級浮動的原則。另外,給出了實時網(wǎng)絡(luò)實現(xiàn)的方法,討論了圖形實時顯示的可行性,利用WinDriver實現(xiàn)了在Win98下對硬件MBI卡的直接驅(qū)動。實驗結(jié)果表明,上述調(diào)度思想與相關(guān)技術(shù)綜合運用,很好地滿足了仿真器系統(tǒng)工作的實時性。
評論