李柯景,魯光男
(長(zhǎng)春大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,吉林 長(zhǎng)春 130022)
嵌入式軟件指的是支持嵌入式裝置運(yùn)行的軟件層或是應(yīng)用軟件層,主要負(fù)責(zé)處理計(jì)算機(jī)發(fā)出的各項(xiàng)控制指令。嵌入式軟件能夠增值嵌入式設(shè)備,通過(guò)軟件代碼間的相互作用,實(shí)現(xiàn)軟件的不同功能[1]。隨著嵌入式軟件應(yīng)用面不斷拓展,軟件與局域網(wǎng)間的連接問(wèn)題逐漸成為研究熱點(diǎn)。
國(guó)外對(duì)嵌入式軟件研究起步較早,在軟件與網(wǎng)絡(luò)連接錯(cuò)誤故障的檢測(cè)上也起步較早,借助于解析模型手段,現(xiàn)已研究得到實(shí)時(shí)檢測(cè)方法。國(guó)內(nèi)在研究嵌入式軟件上的時(shí)間并不久,但在我國(guó)研究人員不斷地努力下,已經(jīng)得到了多種檢測(cè)方法和測(cè)試平臺(tái)。文獻(xiàn)[2]提出嵌入式通信系統(tǒng)遠(yuǎn)程高速數(shù)據(jù)準(zhǔn)確識(shí)別檢測(cè),分析遠(yuǎn)程高速數(shù)據(jù),獲取數(shù)據(jù)增高預(yù)警值,建立遠(yuǎn)程數(shù)據(jù)通信傳輸模型,利用遠(yuǎn)程數(shù)據(jù)點(diǎn)均值處理系統(tǒng)中的無(wú)效數(shù)據(jù),采用動(dòng)態(tài)平均線處理方法對(duì)通信系統(tǒng)中的有效數(shù)據(jù)缺失進(jìn)行數(shù)據(jù)補(bǔ)償,獲得有效數(shù)據(jù)交叉信息鏈,連接相對(duì)獨(dú)立的多個(gè)遠(yuǎn)程數(shù)據(jù)點(diǎn)均值,計(jì)算出數(shù)據(jù)的包絡(luò)特征值,用于識(shí)別通信系統(tǒng)中的有效數(shù)據(jù),形成遠(yuǎn)程有效數(shù)據(jù)時(shí)域波形信息分量,實(shí)現(xiàn)數(shù)據(jù)的精確識(shí)別檢測(cè)。文獻(xiàn)[3]提出采用隨機(jī)Petri網(wǎng)的嵌入式機(jī)載軟件可靠性檢測(cè),針對(duì)典型缺陷,建立了嵌入式機(jī)載軟件系統(tǒng)行為模型,給出了典型缺陷的檢測(cè)策略和判斷準(zhǔn)則,通過(guò)對(duì)Petri網(wǎng)模型進(jìn)行仿真驗(yàn)證,驗(yàn)證系統(tǒng)是否存在這種設(shè)計(jì)缺陷,并給出了軟件設(shè)計(jì)運(yùn)行過(guò)程的仿真驗(yàn)證算法,以完成可靠性檢測(cè)。
雖然上述研究取得一定進(jìn)展,但在嵌入式軟件網(wǎng)絡(luò)中檢測(cè)存在一定局限,為此在仿真技術(shù)的支持下,研究一種網(wǎng)絡(luò)連接錯(cuò)誤故障實(shí)時(shí)檢測(cè)方法,解決軟件在開(kāi)發(fā)過(guò)程中由于描述不同導(dǎo)致的故障檢測(cè)問(wèn)題,增強(qiáng)嵌入式軟件與網(wǎng)絡(luò)連接間的銜接過(guò)程。研究嵌入式軟件網(wǎng)絡(luò)連接錯(cuò)誤故障實(shí)時(shí)檢測(cè)仿真是很有必要的。
嵌入式軟件處于工作過(guò)程時(shí),網(wǎng)絡(luò)連接的線路與數(shù)據(jù)傳輸間都可能產(chǎn)生連接故障[4],不同的網(wǎng)絡(luò)節(jié)點(diǎn)會(huì)在數(shù)據(jù)應(yīng)答間隙內(nèi),發(fā)送一個(gè)顯性位應(yīng)答網(wǎng)絡(luò)的回執(zhí),以支持嵌入式軟件運(yùn)行的網(wǎng)絡(luò)連接拓?fù)浣Y(jié)構(gòu)為分析對(duì)象,結(jié)構(gòu)如圖1所示。
圖1 網(wǎng)絡(luò)連接的拓?fù)浣Y(jié)構(gòu)
根據(jù)圖1所示的拓?fù)浣Y(jié)構(gòu)可知,當(dāng)軟件網(wǎng)絡(luò)發(fā)生連接錯(cuò)誤時(shí),網(wǎng)絡(luò)故障會(huì)在發(fā)生位置將顯性位變換為隱性位,也就形成了邏輯值相異[5]。根據(jù)拓?fù)浣Y(jié)構(gòu)中網(wǎng)絡(luò)連接錯(cuò)誤時(shí)間比率數(shù)值,將相異性的邏輯值轉(zhuǎn)換為網(wǎng)絡(luò)錯(cuò)誤幀,轉(zhuǎn)換過(guò)程就可表示為
(1)
其中,C表示發(fā)生網(wǎng)絡(luò)連接錯(cuò)誤的時(shí)刻,W表示軟件網(wǎng)絡(luò)發(fā)生錯(cuò)誤的時(shí)間,r表示發(fā)生網(wǎng)絡(luò)連接錯(cuò)誤的數(shù)量,E表示網(wǎng)絡(luò)錯(cuò)誤的時(shí)刻向量,TR表示網(wǎng)絡(luò)連接時(shí)長(zhǎng),T(u)表示錯(cuò)誤故障發(fā)生的時(shí)長(zhǎng)參數(shù)。當(dāng)網(wǎng)絡(luò)連接錯(cuò)誤故障在一段時(shí)間內(nèi),嵌入式軟件會(huì)產(chǎn)生不同的錯(cuò)誤行為,所以在計(jì)算錯(cuò)誤響應(yīng)特性前,計(jì)算錯(cuò)誤故障的周期,計(jì)算公式可表示為
(2)
其中,t表示間隔時(shí)長(zhǎng),v表示網(wǎng)絡(luò)錯(cuò)誤的累積時(shí)長(zhǎng),其余參數(shù)含義不變。根據(jù)嵌入式軟件的連接特性,實(shí)際產(chǎn)生的連接錯(cuò)誤故障周期并不均勻,所以在計(jì)算嵌入式軟件網(wǎng)絡(luò)錯(cuò)誤的響應(yīng)特性時(shí),根據(jù)實(shí)際的嵌入式軟件的接收指令信號(hào)的周期[6],設(shè)定錯(cuò)誤故障的最大可接受程度閾值,將該閾值作為響應(yīng)評(píng)估參數(shù),該評(píng)估參數(shù)就可表示為
(3)
其中,A(t)表示實(shí)際錯(cuò)誤故障的顯性位數(shù)量,Li表示設(shè)定的可接受程度閾值。將該公式評(píng)估網(wǎng)絡(luò)錯(cuò)誤故障的性能作為實(shí)際網(wǎng)絡(luò)連接錯(cuò)誤故障的響應(yīng)過(guò)程,根據(jù)故障網(wǎng)絡(luò)形成的響應(yīng),設(shè)定實(shí)時(shí)檢測(cè)方式。
在上述分析得到的響應(yīng)特性下,將軟件連接網(wǎng)絡(luò)的若干個(gè)點(diǎn)作為保護(hù)單元,設(shè)定一個(gè)檢測(cè)點(diǎn)的實(shí)時(shí)門(mén)限數(shù)值,可表示為
(4)
其中,Nf表示網(wǎng)絡(luò)節(jié)點(diǎn)參考單元的采樣點(diǎn)數(shù)量,T表示連接網(wǎng)絡(luò)的虛警參數(shù)。在網(wǎng)絡(luò)單元平均恒虛警理論的控制下,檢測(cè)點(diǎn)的門(mén)限系數(shù)就可計(jì)算得到
(5)
其中,Pf表示檢測(cè)點(diǎn)的檢測(cè)概率,N表示網(wǎng)絡(luò)檢測(cè)點(diǎn)的數(shù)量。以上述門(mén)限系數(shù)大小,劃定上述檢測(cè)點(diǎn)為不同的檢測(cè)區(qū)域,根據(jù)分辨單元內(nèi)的回波能量,不斷累積距離單元中的故障回波[7]。為了控制單元中的噪聲數(shù)值,計(jì)算分辨單元中的檢測(cè)概率,計(jì)算公式就可表示為
(6)
圖2 檢測(cè)概率與噪聲數(shù)值間的變化關(guān)系
根據(jù)圖2所示的數(shù)值變化關(guān)系可知,在檢測(cè)次數(shù)的影響下,一旦噪聲數(shù)值增大,那么檢測(cè)錯(cuò)誤故障的概率也會(huì)降低,所以在設(shè)定實(shí)時(shí)檢測(cè)方式時(shí),根據(jù)檢測(cè)次數(shù)的大小,只保留在門(mén)限系數(shù)左右的采樣數(shù)據(jù),以最小的門(mén)限系數(shù)作為采樣起點(diǎn)[8],計(jì)算采樣門(mén)限系數(shù)的重心,計(jì)算公式可表示為
(7)
其中,n,l表示檢測(cè)數(shù)據(jù)采樣的起點(diǎn)與終點(diǎn),x(j)表示連續(xù)檢測(cè)的數(shù)據(jù)集。在上述重心參數(shù)的控制下,設(shè)定檢測(cè)采樣值為數(shù)值1,實(shí)現(xiàn)檢測(cè)方法的實(shí)時(shí)性[9]。設(shè)定實(shí)時(shí)的檢測(cè)方式后,設(shè)定模擬窗口的執(zhí)行時(shí)間,最終實(shí)現(xiàn)實(shí)時(shí)檢測(cè)仿真。
模擬檢測(cè)仿真的不變時(shí)間量,作為錯(cuò)誤故障的有效壽命,疊加處理連接錯(cuò)誤參數(shù)[10],整理得到軟件損壞隨時(shí)間的變化過(guò)程,如圖3所示。
圖3 網(wǎng)絡(luò)錯(cuò)誤變化
在如圖3所示的嵌入式軟件錯(cuò)誤變化下,控制仿真時(shí)間段在有效壽命之間,并將該時(shí)期作為故障實(shí)時(shí)檢測(cè)仿真時(shí)期[11],聯(lián)合上述設(shè)定的實(shí)時(shí)檢測(cè)方法,采用JAVA中的AWT/Swing體系結(jié)構(gòu)設(shè)定一個(gè)檢測(cè)仿真窗口,設(shè)定的仿真結(jié)構(gòu)如圖4所示。
圖4 設(shè)定的檢測(cè)仿真結(jié)構(gòu)圖
在圖4所示的檢測(cè)仿真窗口下,準(zhǔn)備響應(yīng)特性得到的檢測(cè)數(shù)據(jù)后,創(chuàng)建一個(gè)連接錯(cuò)誤后繼邊,構(gòu)建一個(gè)后繼邊合法性的判斷關(guān)系,可表示為
R(t)=P(g>t),t≥0
(8)
其中,g表示軟件壽命的隨機(jī)變量,t表示指定的時(shí)間。隨機(jī)選取一條合法的后繼邊,作為軟件測(cè)試階段的末期,計(jì)算選取后繼邊的數(shù)值,根據(jù)數(shù)值大小判斷軟件網(wǎng)絡(luò)連接錯(cuò)誤是否進(jìn)入到錯(cuò)誤狀態(tài),當(dāng)進(jìn)入錯(cuò)誤狀態(tài)時(shí),使用甘特圖標(biāo)出連接錯(cuò)誤故障[12]。當(dāng)網(wǎng)絡(luò)連接沒(méi)進(jìn)入錯(cuò)誤狀態(tài)時(shí),瞬時(shí)處理該后繼邊,實(shí)現(xiàn)對(duì)軟件網(wǎng)絡(luò)連接錯(cuò)誤故障實(shí)時(shí)檢測(cè)的仿真。
準(zhǔn)備具有如表1參數(shù)所示的嵌入式系統(tǒng)。
表1 嵌入式系統(tǒng)功能參數(shù)
使用上表所示功能參數(shù)控制的嵌入式軟件網(wǎng)絡(luò)環(huán)境,使用CPU為i5、內(nèi)存為8G的計(jì)算機(jī),控制計(jì)算機(jī)連接PXIe機(jī)箱,在計(jì)算機(jī)硬件機(jī)箱上插入多功能通訊卡與網(wǎng)絡(luò)資源模塊卡作為測(cè)試網(wǎng)絡(luò)數(shù)據(jù)的連接端口。在網(wǎng)絡(luò)硬件組件接口處、多功能通訊卡和網(wǎng)絡(luò)資源模塊卡處設(shè)定網(wǎng)絡(luò)連接錯(cuò)誤的測(cè)試節(jié)點(diǎn),設(shè)置的測(cè)試節(jié)點(diǎn)結(jié)果如表2所示。
表2 設(shè)定的網(wǎng)絡(luò)測(cè)試節(jié)點(diǎn)
在表2所示的節(jié)點(diǎn)位置設(shè)置相同的節(jié)點(diǎn)數(shù)量,分別使用文獻(xiàn)[2]中的檢測(cè)仿真方法、文獻(xiàn)[3]中的檢測(cè)仿真方法以及文中設(shè)計(jì)的檢測(cè)仿真方法進(jìn)行實(shí)驗(yàn),對(duì)比三種檢測(cè)仿真方法的性能。
基于上述實(shí)驗(yàn)準(zhǔn)備,設(shè)置每個(gè)節(jié)點(diǎn)處存在100個(gè)網(wǎng)絡(luò)故障缺陷,以三種檢測(cè)仿真方法發(fā)現(xiàn)網(wǎng)絡(luò)故障作為對(duì)比指標(biāo),定義檢測(cè)仿真方法網(wǎng)絡(luò)處理集與設(shè)定的故障集數(shù)量相等時(shí),即為一次故障發(fā)現(xiàn)成功過(guò)程,統(tǒng)計(jì)三種檢測(cè)仿真方法發(fā)現(xiàn)故障數(shù)量,結(jié)果如表3所示:
表3 三種實(shí)時(shí)檢測(cè)仿真方法發(fā)現(xiàn)故障能力
由表3所示的實(shí)驗(yàn)結(jié)果可知,在三種檢測(cè)仿真方法控制下,一個(gè)測(cè)試節(jié)點(diǎn)處設(shè)置100個(gè)網(wǎng)絡(luò)連接故障,每個(gè)測(cè)試節(jié)點(diǎn)位置共有500個(gè)連接故障,根據(jù)上表各項(xiàng)數(shù)值結(jié)果可知,文獻(xiàn)[2]中的檢測(cè)仿真方法最終發(fā)現(xiàn)故障的數(shù)量最少,錯(cuò)誤故障數(shù)量在250~300個(gè)之間,文獻(xiàn)[3]中的檢測(cè)仿真方法發(fā)現(xiàn)錯(cuò)誤故障較多,數(shù)值在350~400個(gè)之間。而文中設(shè)計(jì)的檢測(cè)仿真方法能夠發(fā)現(xiàn)480~500個(gè)錯(cuò)誤故障,與前述兩種現(xiàn)有檢測(cè)仿真方法相比,文中設(shè)計(jì)的檢測(cè)仿真方法發(fā)現(xiàn)的錯(cuò)誤故障最多,發(fā)現(xiàn)錯(cuò)誤故障的能力最強(qiáng)。
保持上述實(shí)驗(yàn)環(huán)境不變,定義在設(shè)定的檢測(cè)節(jié)點(diǎn)處生成有效檢測(cè)集與實(shí)際檢測(cè)得到的故障數(shù)量相等時(shí),即為一次檢測(cè)有效過(guò)程,可計(jì)算得到
(9)
其中,i,j分別表示設(shè)定的連接錯(cuò)誤故障以及實(shí)際檢測(cè)得到的錯(cuò)誤故障,n表示檢測(cè)路徑,m表示檢測(cè)路徑的約束參數(shù),Vij表示得到的有效檢測(cè)集,tij表示約束生成的時(shí)間集合,在設(shè)定已知數(shù)量的錯(cuò)誤故障下,統(tǒng)計(jì)三種實(shí)時(shí)檢測(cè)方法在不同測(cè)試階段的有效率,有效率結(jié)果如表4所示。
由表4所示的檢測(cè)有效率結(jié)果可知,在三種檢測(cè)仿真方法控制下,網(wǎng)絡(luò)連接錯(cuò)誤故障檢測(cè)表現(xiàn)出了不同的有效率結(jié)果,根據(jù)表4中的數(shù)值大小,文獻(xiàn)[2]中的實(shí)時(shí)檢測(cè)方法的有效率數(shù)值在68%左右,檢測(cè)的有效率數(shù)值較小,文獻(xiàn)[3]中檢測(cè)方法的有效率數(shù)值在83%左右,檢測(cè)錯(cuò)誤故障的有效性較強(qiáng),而文中設(shè)計(jì)的檢測(cè)仿真方法的有效率數(shù)值在92%左右,檢測(cè)網(wǎng)絡(luò)連接錯(cuò)誤故障的有效性最強(qiáng)。
表4 檢測(cè)有效率結(jié)果
在上述實(shí)驗(yàn)環(huán)境下,設(shè)定測(cè)試節(jié)點(diǎn)處的配對(duì)門(mén)限為5000個(gè)采樣單元,當(dāng)檢測(cè)方法檢測(cè)到采樣單元中的連接錯(cuò)誤時(shí),軟件網(wǎng)絡(luò)發(fā)出預(yù)警,設(shè)定三種實(shí)時(shí)檢測(cè)仿真方法重復(fù)檢測(cè)采樣單元10萬(wàn)次,統(tǒng)計(jì)三種檢測(cè)仿真方法最終產(chǎn)生的虛警次數(shù),結(jié)果如表5所示:
表5 三種檢測(cè)仿真方法產(chǎn)生的虛警次數(shù)
根據(jù)表5所示虛警次數(shù)結(jié)果可知,重復(fù)檢測(cè)采樣單元10萬(wàn)次后,文獻(xiàn)[2]中的檢測(cè)仿真方法在檢測(cè)錯(cuò)誤故障過(guò)程中,實(shí)際的虛警次數(shù)在45次左右,產(chǎn)生的虛警次數(shù)最多,文獻(xiàn)[3]中的檢測(cè)仿真方法產(chǎn)生虛警次數(shù)在25次左右,實(shí)際的虛警次數(shù)較少,而文中設(shè)計(jì)的檢測(cè)仿真方法產(chǎn)生的虛警次數(shù)在5次左右,產(chǎn)生的虛警次數(shù)最少。綜合上述實(shí)驗(yàn)結(jié)果可知,文中設(shè)計(jì)的檢測(cè)仿真方法發(fā)現(xiàn)錯(cuò)誤故障的數(shù)量最多、故障檢測(cè)的有效率最大且產(chǎn)生的虛警次數(shù)最少,適合實(shí)際檢測(cè)仿真過(guò)程。
隨著嵌入式軟件逐漸向復(fù)雜化方向發(fā)展,傳統(tǒng)式的檢測(cè)方法已無(wú)法滿足軟件的安全性要求,為此仿真嵌入式軟件網(wǎng)絡(luò)連接錯(cuò)誤故障實(shí)時(shí)檢測(cè)過(guò)程,將網(wǎng)絡(luò)連接錯(cuò)誤故障進(jìn)行細(xì)化處理,改善傳統(tǒng)檢測(cè)仿真方法檢測(cè)故障有效率過(guò)小、發(fā)現(xiàn)故障數(shù)量過(guò)少,產(chǎn)生虛警次數(shù)過(guò)多的不足,為今后研究整體嵌入式軟件的錯(cuò)誤故障提供一定的研究方向。