999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

構(gòu)件中非法除故障的容錯(cuò)性檢測(cè)方法研究

2008-01-01 00:00:00葉俊民葉焰鋒雷志翔賀鵬程張紅春

摘要:提出了通過(guò)向構(gòu)件中關(guān)鍵位置注入故障的方式來(lái)判定構(gòu)件的容錯(cuò)性能。實(shí)踐表明,該方法將有效地檢測(cè)構(gòu)件的容錯(cuò)能力。

關(guān)鍵詞:構(gòu)件; 故障注入; 容錯(cuò)性檢測(cè)

中圖分類(lèi)號(hào):TP31文獻(xiàn)標(biāo)志碼:A

文章編號(hào):1001-3695(2008)05-1402-02

基于構(gòu)件的方法使得大型軟件系統(tǒng)的開(kāi)發(fā)和維護(hù)變得更為簡(jiǎn)單,可以提高軟件的復(fù)用性和軟件開(kāi)發(fā)效率[1]。但是,復(fù)用質(zhì)量低下的軟件構(gòu)件則會(huì)起到相反的作用,尤其是在一些對(duì)系統(tǒng)可靠性要求較高的領(lǐng)域,如航空航天、工業(yè)控制等領(lǐng)域,容錯(cuò)性成為需要解決的首要問(wèn)題。因?yàn)槭褂每煽啃圆畹臉?gòu)件會(huì)帶來(lái)災(zāi)難性的后果[2],有必要對(duì)構(gòu)件的容錯(cuò)性能進(jìn)行檢測(cè),從而保證構(gòu)件系統(tǒng)的可靠性。

 檢測(cè)構(gòu)件容錯(cuò)性能的傳統(tǒng)方法是通過(guò)觀察構(gòu)件系統(tǒng)的失效行為,進(jìn)而分析錯(cuò)誤記錄來(lái)完成的。但是對(duì)一個(gè)高可靠系統(tǒng)而言,不可能等待太長(zhǎng)的時(shí)間來(lái)獲取有關(guān)的統(tǒng)計(jì)結(jié)果。因此,使用故障注入方法向系統(tǒng)的構(gòu)件中注入故障,以獲取構(gòu)件現(xiàn)場(chǎng)信息進(jìn)而分析其行為就顯得十分必要?,F(xiàn)存在很多故障注入方法,如按故障注入觸發(fā)時(shí)間[3]可分為編譯期間注入故障和運(yùn)行期間注入故障兩類(lèi);按故障注入觸發(fā)方式[4]可分為定時(shí)(time-based) 觸發(fā)、運(yùn)行期間注入故障和負(fù)載(stress-based)觸發(fā)三類(lèi)。雖然有很多學(xué)者研究了各類(lèi)故障注入方法[5~8],但是目前的故障注入方法僅僅是在程序執(zhí)行過(guò)程中通過(guò)相對(duì)隨意地修改寄存器的值來(lái)注入故障,而沒(méi)有依據(jù)程序中常見(jiàn)的一些故障類(lèi)型,所以在檢測(cè)構(gòu)件中是否存在特定故障類(lèi)型方面存在不足。本文結(jié)合反匯編和故障注入的思想提出了一種檢測(cè)構(gòu)件中是否存在非法除故障的方法。

1故障注入基礎(chǔ)

1.1故障注入

故障注入技術(shù)首次在國(guó)際上提出是在20世紀(jì)70年代,之后一直被工業(yè)界用來(lái)進(jìn)行容錯(cuò)系統(tǒng)的設(shè)計(jì)和驗(yàn)證[9]。到了80年代中期,故障注入技術(shù)才作為系統(tǒng)中容錯(cuò)機(jī)制的實(shí)驗(yàn)評(píng)價(jià)方法開(kāi)始被高校和科研部門(mén)采用。進(jìn)入90年代之后,該技術(shù)引起了眾多研究人員和工程設(shè)計(jì)者的重視,對(duì)故障注入的研究與應(yīng)用也隨之深入。故障注入方法包括硬件和軟件實(shí)現(xiàn)的故障注入方法。本文中主要是采用軟件實(shí)現(xiàn)的故障注入方法來(lái)檢測(cè)構(gòu)件的容錯(cuò)性。它根據(jù)某種故障模型通過(guò)修改存儲(chǔ)器或寄存器內(nèi)容來(lái)模擬軟件故障的發(fā)生。軟件實(shí)現(xiàn)的故障注入方法比較簡(jiǎn)單,通過(guò)修改特定寄存器中的數(shù)值來(lái)觀察實(shí)驗(yàn)結(jié)果,能夠很好地檢測(cè)軟件的容錯(cuò)性能。

1.2故障注入技術(shù)原理

軟件故障注入方法是通過(guò)特定的程序?qū)ο到y(tǒng)軟件、硬件錯(cuò)誤狀態(tài)進(jìn)行仿真[10]。主要是通過(guò)修改程序執(zhí)行語(yǔ)句,增加、修改、刪除數(shù)據(jù)或直接修改寄存器或存儲(chǔ)器的內(nèi)容來(lái)模擬硬件或軟件故障的發(fā)生。

故障注入原理可用如圖1所示的行為循環(huán)層次結(jié)構(gòu)模型進(jìn)行說(shuō)明。圖中作為實(shí)驗(yàn)過(guò)程的故障注入由四個(gè)步驟組成:選擇故障模型、執(zhí)行故障注入、監(jiān)視系統(tǒng)行為、分析實(shí)驗(yàn)結(jié)果。其中,選擇故障模型和分析實(shí)驗(yàn)結(jié)果是與實(shí)驗(yàn)者直接交互的過(guò)程,為離線行為;執(zhí)行故障注入和監(jiān)視系統(tǒng)行為與目標(biāo)系統(tǒng)直接接口,為在線行為。一次完整的故障注入實(shí)驗(yàn)包括由實(shí)驗(yàn)者至選擇故障模型、執(zhí)行故障注入、運(yùn)行工作負(fù)載的目標(biāo)系統(tǒng)、監(jiān)視系統(tǒng)行為和分析實(shí)驗(yàn)結(jié)果的整個(gè)循環(huán)過(guò)程。

2構(gòu)件容錯(cuò)性測(cè)試方法

2.1研究的前提

本文的研究前提有三個(gè)方面:a)在構(gòu)件中很容易出現(xiàn)常見(jiàn)的導(dǎo)致異常情況的故障,包括內(nèi)存泄漏故障、數(shù)組越界故障、非法計(jì)算故障等,而非法計(jì)算故障又是構(gòu)件中特別常見(jiàn)的故障。因此本文將以非法計(jì)算故障中除數(shù)為零故障為例,討論通過(guò)在除法運(yùn)算前的某個(gè)位置注入除數(shù)零故障來(lái)檢查構(gòu)件對(duì)于除數(shù)為零故障的容錯(cuò)性能。b)假設(shè)對(duì)構(gòu)件使用者來(lái)說(shuō)源代碼是不可見(jiàn)的。c)將二進(jìn)制代碼反匯編成匯編代碼是能夠?qū)崿F(xiàn)的。

2.2構(gòu)件容錯(cuò)性測(cè)試原理

由于構(gòu)件的源代碼是不可見(jiàn)的,為了檢查構(gòu)件對(duì)除數(shù)為零故障的容錯(cuò)性,可以考慮首先通過(guò)常用的反匯編工具,如W32Dasm、IDA等將構(gòu)件的二進(jìn)制代碼反匯編成匯編代碼;然后再結(jié)合上面提到的故障注入原理和故障注入觸發(fā)方法來(lái)選擇合適的時(shí)機(jī)在匯編代碼中注入故障。根據(jù)要處理的問(wèn)題和現(xiàn)有故障注入觸發(fā)方法的分析,筆者選擇運(yùn)行期間并在除法事件發(fā)生前注入故障;故障注入的位置選擇在除法運(yùn)算前對(duì)除數(shù)做的最近一次數(shù)據(jù)傳送指令處,在這個(gè)位置將除數(shù)值改為零,然后繼續(xù)單步執(zhí)行該程序并觀察程序是否出現(xiàn)異常。如果出現(xiàn)異常,則說(shuō)明該構(gòu)件對(duì)除數(shù)為零故障這類(lèi)故障的容錯(cuò)性較差。

2.3構(gòu)件容錯(cuò)性測(cè)試算法

首先將二進(jìn)制代碼反匯編成匯編代碼;之后開(kāi)始匯編代碼的靜態(tài)分析,在分析的過(guò)程中確定注入故障的位置;接著單步執(zhí)行該匯編代碼,在執(zhí)行到特定位置處注入故障;然后繼續(xù)單步執(zhí)行并觀察程序是否出現(xiàn)異常。如果出現(xiàn)異常,則說(shuō)明該構(gòu)件對(duì)除數(shù)為零故障的容錯(cuò)性能較差;否則就繼續(xù)執(zhí)行直到程序結(jié)束。本文就是通過(guò)這種方法來(lái)檢查構(gòu)件對(duì)于除數(shù)為零故障的容錯(cuò)性能。

該過(guò)程(圖2)的詳細(xì)步驟如下:

a)構(gòu)件程序的反匯編過(guò)程。在這里選擇常用的IDA反匯編工具,將構(gòu)件文件,即可執(zhí)行文件(.exe)或者動(dòng)態(tài)鏈接庫(kù)文件(.dll)等二進(jìn)制文件轉(zhuǎn)換成匯編代碼。

b)確定故障注入位置。 開(kāi)始靜態(tài)分析匯編代碼,在分析的過(guò)程中確定要注入故障的位置,即后面單步執(zhí)行匯編代碼時(shí),到底執(zhí)行到哪一步時(shí)才修改寄存器值,并將這些位置值記錄在一個(gè)表中。

c)單步執(zhí)行匯編代碼。緊接著單步執(zhí)行匯編代碼,如果執(zhí)行到剛才確定的位置時(shí),就停下并執(zhí)行步驟d)。d)執(zhí)行故障注入。修改存儲(chǔ)除數(shù)寄存器的值,將寄存器的值改為零,也就是將除數(shù)設(shè)為零,然后繼續(xù)單步執(zhí)行。

e)監(jiān)視程序執(zhí)行。在執(zhí)行過(guò)程中觀察程序是否出現(xiàn)異常。如果出現(xiàn)異常,則說(shuō)明該構(gòu)件對(duì)除數(shù)為零故障容錯(cuò)性能較差;否則就繼續(xù)執(zhí)行步驟c)。如果執(zhí)行到需要注入故障的位置時(shí),就停下執(zhí)行步驟d),直到程序結(jié)束。

4實(shí)例分析

下面通過(guò)一個(gè)實(shí)例程序來(lái)分析一下測(cè)試過(guò)程,被檢測(cè)的程序代碼如下:

int i=10;intj;scanf(\"%d\",j);

int s=i*j;if(s!=0)i=100/s;

scanf(\"%d\",j);s=i*j;i=100/s;

經(jīng)過(guò)編譯調(diào)試后生成二進(jìn)制可執(zhí)行文件,然后通過(guò)IDA反匯編工具將可執(zhí)行文件反匯編成匯編代碼。主要代碼如下:

.text:0040123Cpublic_main

.text:0040123C _mainproc near 

.text:0040123C s =dword ptr-0Ch

.text:0040123C j =dword ptr-8

.text:0040123C i =dword ptr-4

.text:0040123C argc=dword ptr8

.text:0040123C argv=dword ptr0Ch

.text:0040123C envp =dword ptr 10h

.text:0040123C pushebp

.text:0040123Dmovebp, esp

.text:0040123Fadd esp, 0FFFFFFF4h

.text:00401242 mov [ebp+i], 0Ah

.text:00401249lea eax, [ebp+j]

.text:0040124Cpusheax

.text:0040124D pushoffset unk_4180A4

.text:00401252call___org_scanf

.text:00401257 add esp, 8

.text:0040125A mov edx, [ebp+i]

.text:0040125Dimuledx, [ebp+j]

.text:00401261 mov [ebp+s], edx

.text:00401264 cmp [ebp+s], 0

.text:00401268 jzshort loc_401276

.text:0040126A mov eax, 64h

.text:0040126F cdq

.text:00401270idiv[ebp+s]

.text:00401273mov [ebp+i], eax

.text:00401276 loc_401276:; CODE XREF: _main+2C↑j

.text:00401276 lea ecx, [ebp+j]

.text:00401279pushecx

.text:0040127Apushoffset unk_4180A7

.text:0040127F call___org_scanf

.text:00401284 add esp, 8

.text:00401287 mov eax, [ebp+i]

.text:0040128A imul[ebp+j]

.text:0040128D mov [ebp+s], eax

.text:00401290 moveax, 64h

.text:00401295 cdq

.text:00401296 idiv[ebp+s]

.text:00401299 mov[ebp+i], eax

.text:0040129Cmovesp, ebp

.text:0040129E pop ebp

.text:0040129F retn

靜態(tài)分析該匯編代碼可以得出,在.text:00401270和text:00401296處存在除法指令。其中存儲(chǔ)除數(shù)的地址為[ebp+s],然后找到除法運(yùn)算前除數(shù)的最后一次mov指令處為.text:00401261和.text:0040128D,即要注入故障的位置。緊接著單步執(zhí)行匯編代碼,在執(zhí)行到剛才記錄的位置時(shí),將存儲(chǔ)除數(shù)的寄存器即[ebp+s]的值改為零,并繼續(xù)執(zhí)行,在執(zhí)行到.text:00401296時(shí),出現(xiàn)了除數(shù)為零的故障。結(jié)合源代碼的分析可以知道,該程序?qū)Τ龜?shù)為零的故障容錯(cuò)性能較差。

5結(jié)束語(yǔ)

本文提出了一種通過(guò)故障注入手段來(lái)檢測(cè)構(gòu)件中非法除故障容錯(cuò)性的方法。首先通過(guò)反匯編工具將構(gòu)件的二進(jìn)制代碼轉(zhuǎn)換成匯編代碼;然后分析匯編代碼并確定故障注入位置,并在執(zhí)行到特定位置時(shí)注入故障,通過(guò)觀察程序執(zhí)行過(guò)程中是否出現(xiàn)異常來(lái)判定構(gòu)件的容錯(cuò)性;最后,通過(guò)實(shí)驗(yàn)進(jìn)行了驗(yàn)證,結(jié)果表明該方法能有效地檢測(cè)出構(gòu)件對(duì)于除數(shù)為零故障的容錯(cuò)性能。下一步研究的主要方向是考慮如何檢測(cè)構(gòu)件關(guān)于數(shù)組越界、內(nèi)存泄漏以及其他類(lèi)型的非法計(jì)算問(wèn)題等故障的容錯(cuò)性。

參考文獻(xiàn):

[1]BROWN A W,WALLNAU K C. The current state of CBSE [J].IEEE Trans on Software, 1998,15(5):37-46.

[2]WEYUKER E J. Testing component-based software: a cautionary tale[J].IEEE Trans on Software,1998,15(5):54-59.

[3]董劍.嵌入式故障注入器HFI-4的研究與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2002.

[4]孫峻朝,李運(yùn)策,楊孝宗.故障注入研究的一種理論框架[J].小型微型計(jì)算機(jī)系統(tǒng),1999,20(11):816-819.

[5]楊孝宗.容錯(cuò)技術(shù)與STRATUS容錯(cuò)計(jì)算機(jī)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1993:1-4.

[6]GOSWAMI K K, IYER R K, YOUNG L. DEPEND: a simulation-based environment for system level dependability analysis[J].IEEE Trans on Computers, 1997,46(1):60-74.

[7]MALHOTRA M, TRIVELE K S. Dependability modeling using Petri-nets[C]//Proc of IEEE Int Symp on Fault Tolerant Computing. 1995:428-440.

[8]TAI A T, TRIVEDI K S. Toward accessibility enhancement of dependability modeling techniques and tools[C]//Proc of the 27th IEEE Int Symp on Fault-Tolerant Computing. 1997:37-41.

[9]TANG D. Dependability measurement and modeling of a multicompu-ter system[J].IEEE Trans on Computers,1993,42(1):62-74.

[10]HSUEH M C, IYER R K. Dependability and performance measurement[C]//Proc of IEEE Workshop on CADTED. Beijing:[s.n.], 1996:11-22.

“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”

主站蜘蛛池模板: 天堂中文在线资源| 人妻一本久道久久综合久久鬼色| 日本高清免费不卡视频| 亚洲一区二区精品无码久久久| 欧美精品一区二区三区中文字幕| 九九热免费在线视频| 久久综合九色综合97网| 国产一级妓女av网站| 试看120秒男女啪啪免费| 被公侵犯人妻少妇一区二区三区| 91亚洲国产视频| 亚洲欧美精品在线| 色悠久久久久久久综合网伊人| 国产无码精品在线播放| 国产精品无码久久久久AV| 亚洲一区二区成人| 亚洲熟女偷拍| 婷五月综合| 久久久久人妻精品一区三寸蜜桃| 91成人在线免费视频| 欧美精品亚洲日韩a| 在线免费观看AV| 午夜影院a级片| 2024av在线无码中文最新| 久久青草视频| 免费毛片a| 亚洲成人黄色在线观看| 欧美日韩国产在线观看一区二区三区| 成人免费午间影院在线观看| 99热这里只有精品2| 91偷拍一区| 国产精品免费露脸视频| 欧美成a人片在线观看| 久久精品中文字幕少妇| 国产欧美视频在线观看| 国产玖玖玖精品视频| 亚洲二区视频| 久久青草免费91观看| 亚洲国产亚洲综合在线尤物| 丁香六月激情综合| 9cao视频精品| 久久久久久高潮白浆| 久久久无码人妻精品无码| 亚洲免费人成影院| 婷婷色在线视频| 亚洲浓毛av| 国产成人一区免费观看| 久夜色精品国产噜噜| 综合天天色| 99re在线免费视频| 情侣午夜国产在线一区无码| 国内精品免费| 亚洲欧美自拍中文| 中美日韩在线网免费毛片视频| 无码免费视频| 女人18毛片一级毛片在线 | 日韩AV无码一区| 日韩第一页在线| 久久久久青草大香线综合精品| 成人免费一级片| 天天做天天爱夜夜爽毛片毛片| 日韩精品成人网页视频在线 | 色噜噜狠狠色综合网图区| 国产在线精彩视频二区| 伊人精品视频免费在线| 很黄的网站在线观看| 久久美女精品| 国产成人高精品免费视频| 亚洲性视频网站| 男女男精品视频| 国产精品视频观看裸模| 亚洲一区无码在线| 亚洲AⅤ综合在线欧美一区| 亚洲高清中文字幕| 国产精品一老牛影视频| 亚洲AV一二三区无码AV蜜桃| 国产97区一区二区三区无码| 2022国产无码在线| 欧美午夜理伦三级在线观看| 一本色道久久88| 天堂av综合网| 国产小视频免费|