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

構件中非法除故障的容錯性檢測方法研究

2008-01-01 00:00:00葉俊民葉焰鋒雷志翔賀鵬程張紅春
計算機應用研究 2008年5期

摘要:提出了通過向構件中關鍵位置注入故障的方式來判定構件的容錯性能。實踐表明,該方法將有效地檢測構件的容錯能力。

關鍵詞:構件; 故障注入; 容錯性檢測

中圖分類號:TP31文獻標志碼:A

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

基于構件的方法使得大型軟件系統的開發和維護變得更為簡單,可以提高軟件的復用性和軟件開發效率[1]。但是,復用質量低下的軟件構件則會起到相反的作用,尤其是在一些對系統可靠性要求較高的領域,如航空航天、工業控制等領域,容錯性成為需要解決的首要問題。因為使用可靠性差的構件會帶來災難性的后果[2],有必要對構件的容錯性能進行檢測,從而保證構件系統的可靠性。

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

1故障注入基礎

1.1故障注入

故障注入技術首次在國際上提出是在20世紀70年代,之后一直被工業界用來進行容錯系統的設計和驗證[9]。到了80年代中期,故障注入技術才作為系統中容錯機制的實驗評價方法開始被高校和科研部門采用。進入90年代之后,該技術引起了眾多研究人員和工程設計者的重視,對故障注入的研究與應用也隨之深入。故障注入方法包括硬件和軟件實現的故障注入方法。本文中主要是采用軟件實現的故障注入方法來檢測構件的容錯性。它根據某種故障模型通過修改存儲器或寄存器內容來模擬軟件故障的發生。軟件實現的故障注入方法比較簡單,通過修改特定寄存器中的數值來觀察實驗結果,能夠很好地檢測軟件的容錯性能。

1.2故障注入技術原理

軟件故障注入方法是通過特定的程序對系統軟件、硬件錯誤狀態進行仿真[10]。主要是通過修改程序執行語句,增加、修改、刪除數據或直接修改寄存器或存儲器的內容來模擬硬件或軟件故障的發生。

故障注入原理可用如圖1所示的行為循環層次結構模型進行說明。圖中作為實驗過程的故障注入由四個步驟組成:選擇故障模型、執行故障注入、監視系統行為、分析實驗結果。其中,選擇故障模型和分析實驗結果是與實驗者直接交互的過程,為離線行為;執行故障注入和監視系統行為與目標系統直接接口,為在線行為。一次完整的故障注入實驗包括由實驗者至選擇故障模型、執行故障注入、運行工作負載的目標系統、監視系統行為和分析實驗結果的整個循環過程。

2構件容錯性測試方法

2.1研究的前提

本文的研究前提有三個方面:a)在構件中很容易出現常見的導致異常情況的故障,包括內存泄漏故障、數組越界故障、非法計算故障等,而非法計算故障又是構件中特別常見的故障。因此本文將以非法計算故障中除數為零故障為例,討論通過在除法運算前的某個位置注入除數零故障來檢查構件對于除數為零故障的容錯性能。b)假設對構件使用者來說源代碼是不可見的。c)將二進制代碼反匯編成匯編代碼是能夠實現的。

2.2構件容錯性測試原理

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

2.3構件容錯性測試算法

首先將二進制代碼反匯編成匯編代碼;之后開始匯編代碼的靜態分析,在分析的過程中確定注入故障的位置;接著單步執行該匯編代碼,在執行到特定位置處注入故障;然后繼續單步執行并觀察程序是否出現異常。如果出現異常,則說明該構件對除數為零故障的容錯性能較差;否則就繼續執行直到程序結束。本文就是通過這種方法來檢查構件對于除數為零故障的容錯性能。

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

a)構件程序的反匯編過程。在這里選擇常用的IDA反匯編工具,將構件文件,即可執行文件(.exe)或者動態鏈接庫文件(.dll)等二進制文件轉換成匯編代碼。

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

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

e)監視程序執行。在執行過程中觀察程序是否出現異常。如果出現異常,則說明該構件對除數為零故障容錯性能較差;否則就繼續執行步驟c)。如果執行到需要注入故障的位置時,就停下執行步驟d),直到程序結束。

4實例分析

下面通過一個實例程序來分析一下測試過程,被檢測的程序代碼如下:

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;

經過編譯調試后生成二進制可執行文件,然后通過IDA反匯編工具將可執行文件反匯編成匯編代碼。主要代碼如下:

.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

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

5結束語

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

參考文獻:

[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的研究與實現[D].哈爾濱:哈爾濱工業大學,2002.

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

[5]楊孝宗.容錯技術與STRATUS容錯計算機[M].哈爾濱:哈爾濱工業大學出版社,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.

“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 亚洲天堂久久久| 国产高清毛片| 99精品福利视频| 亚洲国产天堂久久综合226114| 制服无码网站| av天堂最新版在线| 午夜三级在线| 国产午夜精品鲁丝片| 日韩人妻精品一区| 久久人午夜亚洲精品无码区| 欧美精品在线观看视频| 高清大学生毛片一级| 中文字幕在线观| 欧美成人怡春院在线激情| 国产精品香蕉在线观看不卡| 欧美在线一二区| 亚洲侵犯无码网址在线观看| 911亚洲精品| 午夜在线不卡| 成人午夜视频免费看欧美| 欧美成人在线免费| 永久成人无码激情视频免费| 怡红院美国分院一区二区| 亚洲日韩精品无码专区| 亚洲专区一区二区在线观看| 久久午夜夜伦鲁鲁片不卡| 精品久久蜜桃| 九九热精品在线视频| 国产地址二永久伊甸园| 国产情侣一区| 国产精品国产三级国产专业不| 国产一区在线视频观看| 91国内在线观看| 国产99热| 最近最新中文字幕在线第一页| 美女一区二区在线观看| 91丨九色丨首页在线播放| 亚洲国产系列| 五月天丁香婷婷综合久久| 中文字幕欧美日韩| 中国一级特黄视频| 精品国产乱码久久久久久一区二区 | 久久99国产精品成人欧美| 青青青伊人色综合久久| 91久久偷偷做嫩草影院电| 亚洲热线99精品视频| 亚洲天堂区| 中文字幕色站| 亚洲伊人电影| 国产精品视频观看裸模| 91综合色区亚洲熟妇p| 国产成年女人特黄特色大片免费| 欧美日韩国产在线播放| 国产女人18毛片水真多1| 国产精品久久久久久久久kt| 四虎国产成人免费观看| 玖玖免费视频在线观看| 国内精品小视频福利网址| 人妻精品全国免费视频| 久久精品只有这里有| 精品视频一区二区三区在线播| 自偷自拍三级全三级视频| 日韩一级二级三级| 福利在线免费视频| 999国产精品永久免费视频精品久久| 精品91在线| 欧美激情成人网| 老司机精品久久| 片在线无码观看| 热热久久狠狠偷偷色男同| 二级特黄绝大片免费视频大片| 国产网站在线看| 欧美伦理一区| 欧美中出一区二区| 91免费国产高清观看| 国产精品美女网站| 9966国产精品视频| 亚洲无码A视频在线| 欧美一级高清免费a| 欧美无专区| 三上悠亚一区二区| 亚洲嫩模喷白浆|