• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于使用剖面分析的系統(tǒng)健壯性評(píng)測方法

      2012-07-25 06:49:34韓建亞吳智博劉卓鉞劉宏偉
      關(guān)鍵詞:故障注入內(nèi)核調(diào)用

      韓建亞,吳智博,劉卓鉞,董 劍,劉宏偉

      (哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系,黑龍江 哈爾濱150001)

      0 引 言

      系統(tǒng)健壯性是衡量系統(tǒng)在異常輸入或壓力環(huán)境下保持正常工作能力的一種度量,也就是說系統(tǒng)健壯性評(píng)測可以看作是操作系統(tǒng)抵御外界錯(cuò)誤的能力,包括上層應(yīng)用程序引發(fā)的錯(cuò)誤和底層硬件層引發(fā)的錯(cuò)誤或者是從驅(qū)動(dòng)設(shè)備帶來的錯(cuò)誤[1]。近年來,關(guān)于健壯性評(píng)測的方法有很多,例如典型的卡內(nèi)基梅隆大學(xué)的研究項(xiàng)目Ballisa是通過向系統(tǒng)調(diào)用輸入異常參數(shù)[2]來檢測進(jìn)程中止或系統(tǒng)崩潰現(xiàn)象來測試系統(tǒng)健壯性,之后的研究又將這種方法擴(kuò)展到Windows 2000,WindowsNT4and XP系統(tǒng)中[3]。關(guān)于用戶使用剖面分析[4]的研究也越來越多,典型的有驅(qū)動(dòng)程序使用剖面分析的研究[5],這種剖面技術(shù)雖然難于分析,但是一旦很好的得到使用剖面結(jié)果,包含具體函數(shù)發(fā)生頻率,發(fā)生持續(xù)時(shí)間比重等結(jié)果,就可以更好的測試熱點(diǎn)代碼,能夠顯著的降低測試時(shí)間和提高測試效率。這種使用剖面分析的方法也將會(huì)逐漸的應(yīng)用到商業(yè)測試,網(wǎng)絡(luò)故障診斷等領(lǐng)域中[6]。

      所以在健壯性測試中,本文采用在傳統(tǒng)的健壯性評(píng)測方法之前引入用戶使用剖面分析過程,并從多個(gè)層次考慮系統(tǒng)健壯性問題,首先通過用戶使用剖面分析得到相應(yīng)應(yīng)用程序運(yùn)行過程中系統(tǒng)調(diào)用接口和內(nèi)核函數(shù)接口的使用情況,然后根據(jù)使用剖面分析結(jié)果找到熱點(diǎn)函數(shù),針對(duì)這些使用頻率包括使用時(shí)間比率比較高的函數(shù),以故障注入[7]的方式進(jìn)行健壯性評(píng)測,最后根據(jù)使用剖面分析結(jié)果和健壯性評(píng)測結(jié)果進(jìn)行整體的健壯性分析。

      1 測試環(huán)境

      目標(biāo)機(jī)操作系統(tǒng)可以分為4個(gè)層次,即4個(gè)子系統(tǒng),分別是用戶進(jìn)程、系統(tǒng)調(diào)用接口、內(nèi)核、硬件控制器。目標(biāo)系統(tǒng)結(jié)構(gòu)圖如圖1所示。

      圖1 目標(biāo)機(jī)系統(tǒng)結(jié)構(gòu)

      本文從系統(tǒng)調(diào)用接口層和內(nèi)核層兩個(gè)層次來考慮系統(tǒng)健壯性問題。

      2 評(píng)測框架

      健壯性評(píng)測結(jié)構(gòu)主要分為3個(gè)步驟:①用戶使用剖面分析。主要包括系統(tǒng)調(diào)用剖面分析和內(nèi)核函數(shù)剖面分析,給出函數(shù)使用情況。②故障注入。根據(jù)用戶使用剖面分析結(jié)果對(duì)目標(biāo)函數(shù)進(jìn)行故障注入,包括系統(tǒng)調(diào)用的故障注入和內(nèi)核函數(shù)的故障注入,通過故障注入獲得函數(shù)接口失效率。③結(jié)果分析。結(jié)合用戶使用剖面分析與故障注入結(jié)果進(jìn)行健壯性分析。

      由于進(jìn)行故障注入過程中,會(huì)出現(xiàn)系統(tǒng)重啟和系統(tǒng)死機(jī)等現(xiàn)象[8],所以在進(jìn)行健壯性評(píng)測過程中使用雙臺(tái)機(jī)器,通過局域網(wǎng)相連,來監(jiān)控目標(biāo)機(jī)狀態(tài)。測試架構(gòu)主要包括主控端和目標(biāo)機(jī)端,其中主控端主要包括結(jié)果回收,結(jié)果分析,數(shù)據(jù)處理和心跳檢測[9]模塊,目標(biāo)機(jī)端實(shí)現(xiàn)評(píng)測主要功能,主要包括使用剖面分析,故障注入,結(jié)果分析3部分。圖2為實(shí)驗(yàn)測試平臺(tái)整體架構(gòu)圖。

      圖2 測試平臺(tái)系統(tǒng)結(jié)構(gòu)

      2.1 使用剖面分析的設(shè)計(jì)與實(shí)現(xiàn)

      2.1.1 運(yùn)行環(huán)境下使用剖面分析方法

      由于Linux系統(tǒng)層次實(shí)現(xiàn)方式不同,這里將使用剖面分析分為系統(tǒng)調(diào)用分析和內(nèi)核函數(shù)分析。

      其中都是在應(yīng)用負(fù)載運(yùn)行過程中進(jìn)行。通過修改strace工具和kernprof工具分別統(tǒng)計(jì)系統(tǒng)調(diào)用和內(nèi)核函數(shù)的使用時(shí)間比重和調(diào)用次數(shù)比重,根據(jù)統(tǒng)計(jì)結(jié)果結(jié)合用戶要求選擇綜合使用頻率比較高的函數(shù)進(jìn)行故障注入。整體上包括用戶輸入應(yīng)用負(fù)載名稱,注明統(tǒng)計(jì)條件,最后分別得到系統(tǒng)調(diào)用和內(nèi)核函數(shù)列表,包括應(yīng)用負(fù)載運(yùn)行過程中函數(shù)被調(diào)用次數(shù)[10],函數(shù)發(fā)生比率,調(diào)用時(shí)間,調(diào)用時(shí)間比例等結(jié)果。圖3為使用剖面分析流程圖。

      圖3 用戶使用剖面分析流程

      2.1.2 使用剖面分析度量方法

      參照C.Sarbu中關(guān)于使用剖面分析在驅(qū)動(dòng)程序的應(yīng)用[11],本文針對(duì)系統(tǒng)調(diào)用和內(nèi)核函數(shù)使用特點(diǎn),定義以下使用剖面分析度量方法。分別針對(duì)系統(tǒng)調(diào)用和內(nèi)核函數(shù),設(shè)計(jì)基于函數(shù)接口發(fā)生次數(shù)的度量方法,基于持續(xù)時(shí)間的度量方法和兩者結(jié)合的綜合度量方法:

      (1)基于發(fā)生次數(shù)的度量方法:系統(tǒng)調(diào)用發(fā)生比重(NKOWi)和內(nèi)核函數(shù)發(fā)生比重 (KOWi)分別表示應(yīng)用程序運(yùn)行過程中調(diào)用的第i個(gè)系統(tǒng)調(diào)用及內(nèi)核函數(shù)發(fā)生次數(shù)占總共調(diào)用的系統(tǒng)調(diào)用和內(nèi)核函數(shù)的比重。計(jì)算方式如下

      式中:NKOCi、KOCi——第i個(gè)系統(tǒng)調(diào)用、內(nèi)核函數(shù)在應(yīng)用程序運(yùn)行過程中的調(diào)用次數(shù)。

      (2)基于持續(xù)時(shí)間的度量方法:系統(tǒng)調(diào)用持續(xù)時(shí)間比重 (NKDWi)和內(nèi)核函數(shù)持續(xù)時(shí)間比重 (KDWi)分別表示應(yīng)用程序運(yùn)行過程中調(diào)用的第i個(gè)系統(tǒng)調(diào)用及內(nèi)核函數(shù)調(diào)用時(shí)間占應(yīng)用程序運(yùn)行總時(shí)間的比重。

      (3)綜合度量方法:為了更準(zhǔn)確的度量系統(tǒng)用戶使用剖面,結(jié)合兩種度量方法,本文針對(duì)系統(tǒng)調(diào)用和內(nèi)核函數(shù)分別給出進(jìn)行用戶使用剖面分析的綜合度量方法,計(jì)算方法如下,其中 (λ∈R,0≤λ≤1)

      2.2 故障注入設(shè)計(jì)與實(shí)現(xiàn)

      對(duì)系統(tǒng)調(diào)用層和內(nèi)核函數(shù)層的健壯性測試是通過對(duì)單一的調(diào)用接口進(jìn)行異常參數(shù)形式的故障注入實(shí)現(xiàn)的,參數(shù)生成是基于Ballista異常參數(shù)思想[12]生成故障用例,圖4為故障注入流程圖。

      圖4 故障注入流程

      整體故障注入過程如下,具體的系統(tǒng)調(diào)用和內(nèi)核函數(shù)由于系統(tǒng)層次不同,實(shí)現(xiàn)的方式也不同:①對(duì)故障參數(shù)用例進(jìn)行初始化;②根據(jù)異常參數(shù)調(diào)用被測函數(shù),并記錄系統(tǒng)反映;③釋放構(gòu)造參數(shù)用例所申請(qǐng)的資源。

      2.3 健壯性評(píng)測方法

      按照前邊的介紹,通過用戶使用剖面分析得到故障注入目標(biāo)后,對(duì)目標(biāo)函數(shù)進(jìn)行故障注入,最后通過以下方法將故障注入后的接口失效率[13]同接口使用情況結(jié)合起來。由此得到目標(biāo)系統(tǒng)在運(yùn)行相應(yīng)應(yīng)用程序過程中的健壯性。計(jì)算方法如下,其中NKR,KR分別為系統(tǒng)調(diào)用和內(nèi)核函數(shù)健壯性向量NKRi,KRi分別表示第i個(gè)函數(shù)的健壯性。NKCC,NKCR,NKCall分別表示系統(tǒng)調(diào)用測試災(zāi)難性失效,重啟和測試的總次數(shù),同理對(duì)于內(nèi)核函數(shù)。于是內(nèi)核函數(shù)和系統(tǒng)調(diào)用的健壯性分別為Rker,Rnker

      3 實(shí)驗(yàn)結(jié)果與結(jié)果分析

      3.1 使用剖面分析實(shí)例

      3.1.1 系統(tǒng)調(diào)用使用剖面分析

      圖5給出top應(yīng)用在運(yùn)行過程中系統(tǒng)調(diào)用的整體使用剖面分析結(jié)果,橫坐標(biāo)表示使用系統(tǒng)調(diào)用的個(gè)數(shù)n,其中系統(tǒng)調(diào)用的使用次數(shù)從左到右依次增加。縱坐標(biāo)分別表示取前n個(gè)系統(tǒng)調(diào)用的發(fā)生頻率之和,持續(xù)時(shí)間比率之和及λ=0.5,λ=0.75時(shí)的綜合使用頻率之和。由圖可以看出top應(yīng)用在運(yùn)行過程中總共使用了28個(gè)函數(shù),遠(yuǎn)遠(yuǎn)小于系統(tǒng)的總系統(tǒng)調(diào)用個(gè)數(shù),由此可見操作系統(tǒng)對(duì)系統(tǒng)調(diào)用的使用是不均勻分布的。

      圖5 系統(tǒng)調(diào)用使用剖面整體結(jié)果

      相對(duì)于圖5,圖6給出了在這28個(gè)被調(diào)用的系統(tǒng)調(diào)用中前7個(gè)函數(shù)的發(fā)生次數(shù)比率,持續(xù)時(shí)間比率,加權(quán)后的綜合使用比率及前i個(gè)函數(shù)的綜合使用比率之和,其中綜合比率中λ取值0.5。從圖中可以看出前7個(gè)函數(shù)使用比率之和就達(dá)到了95%以上,可以看出在運(yùn)行狀態(tài)下,僅這28個(gè)系統(tǒng)調(diào)用的使用就是不均勻的。

      圖6 系統(tǒng)調(diào)用使用剖面具體分析

      為了分析方便,這里定義測試覆蓋率C以及測試縮減比率T[14],其中C代表所選擇的前i個(gè)函數(shù)發(fā)生次數(shù)之和占總測試數(shù)目的比例,T代表這i個(gè)函數(shù)占總函數(shù)個(gè)數(shù)的比例。

      覆蓋率和測試縮減比率關(guān)系如表1所示??梢钥闯鲈诟采w率要求95%的情況下,測試縮減比率分別為79%,71%和75%,綜合考慮測試覆蓋率和測試縮減率,本文選用覆蓋率達(dá)到95%的函數(shù)列表作為系統(tǒng)調(diào)用故障注入對(duì)象。

      表1 系統(tǒng)調(diào)用測試覆蓋率與測試縮減率對(duì)比

      假設(shè)對(duì)每個(gè)系統(tǒng)調(diào)用的測試消耗是一樣的,實(shí)驗(yàn)結(jié)果表明由于在具體應(yīng)用中函數(shù)使用頻率的顯著分布不均勻,所以根據(jù)剖面分析結(jié)果進(jìn)行測試的函數(shù)比例顯著降低,而且這種分析方法覆蓋率達(dá)到95%以上,所以可以證明這種用戶使用剖面分析方法極大的減少了測試數(shù)量同時(shí)有效的提高了測試效率。

      3.1.2 內(nèi)核函數(shù)使用剖面分析結(jié)果

      類似系統(tǒng)調(diào)用使用剖面分析方法,圖7給出了top應(yīng)用運(yùn)行過程中內(nèi)核函數(shù)的整體使用剖面分析結(jié)果,應(yīng)用運(yùn)行過程中共使用內(nèi)核函數(shù)1000多個(gè),但是僅前115個(gè)函數(shù)就使得測試覆蓋率C達(dá)到將近90%,有此得到測試縮減率T達(dá)到將近90%。表2給出了內(nèi)核函數(shù)使用剖面分析中覆蓋率C和測試縮減率T的關(guān)系。

      圖7 內(nèi)核函數(shù)使用剖面整體分析

      表2 kernel內(nèi)核測試覆蓋率與測試縮減率對(duì)比

      由此可見用戶使用剖面分析對(duì)內(nèi)核函數(shù)測試的影響更顯著,所以對(duì)內(nèi)核函數(shù)進(jìn)行使用剖面分析極大減少了測試數(shù)量,對(duì)健壯性評(píng)測的意義關(guān)鍵。

      3.1.3 使用剖面分析對(duì)比結(jié)果

      圖8給出了剖面分析的一些對(duì)比結(jié)果,分別為測試覆蓋率C為95%,99%情況下的系統(tǒng)調(diào)用和內(nèi)核函數(shù)總函數(shù)個(gè)數(shù)同測試函數(shù)個(gè)數(shù)的比例對(duì)比圖,其中最后給出了top應(yīng)用運(yùn)行過程中,使用的內(nèi)核函數(shù)和系統(tǒng)調(diào)用個(gè)數(shù)的比例對(duì)比圖。

      圖8 使用剖面分析對(duì)比結(jié)果

      從圖8可以看出,對(duì)于系統(tǒng)調(diào)用和內(nèi)核函數(shù)來說,當(dāng)覆蓋率達(dá)到95%時(shí),函數(shù)測試個(gè)數(shù)占總函數(shù)個(gè)數(shù)的比例是非常小的,同時(shí)內(nèi)核函數(shù)和系統(tǒng)調(diào)用使用個(gè)數(shù)比例相差非常大,由此可以看出,本文從系統(tǒng)調(diào)用層和內(nèi)核函數(shù)兩個(gè)層次整體考慮健壯性是非常有意義的,因?yàn)閼?yīng)用程序有可能只使用了很少的系統(tǒng)調(diào)用,卻調(diào)用了大量的底層內(nèi)核函數(shù)來和硬件打交道,這種多層次的健壯性評(píng)測方法很好的解決了這種問題,很大的提高了單層次健壯性評(píng)測的準(zhǔn)確性。

      3.2 健壯性分析對(duì)比結(jié)果

      通過運(yùn)行3種類型的工作負(fù)載,包括計(jì)算密集型工作負(fù)載,圖像密集型負(fù)載和網(wǎng)絡(luò)密集型負(fù)載[15],將得到的使用剖面分析結(jié)果和函數(shù)接口失效率結(jié)果按照式 (7),式(8)結(jié)合起來,得到系統(tǒng)在某種工作負(fù)載下的具體健壯性結(jié)果對(duì)比圖如圖9所示。

      圖9 健壯性對(duì)比結(jié)果

      圖9中分別列出在3種工作負(fù)載下,結(jié)和用戶使用剖面分析的健壯性結(jié)果同單一接口測試得到的系統(tǒng)平均健壯性結(jié)果的對(duì)比圖。

      從圖9中可以看出,本文提出的健壯性測試方法得到的健壯性結(jié)果整體上高于單一接口測試方法得到的平均健壯性結(jié)果,這主要是因?yàn)楦呤褂妙l率的函數(shù)的失效比例要低于其它函數(shù)。由此可以說明系統(tǒng)對(duì)經(jīng)常使用的函數(shù)的設(shè)計(jì)更加健壯。同時(shí)可以看出,內(nèi)核函數(shù)的失效率要高于系統(tǒng)調(diào)用的失效率。這是因?yàn)閷?duì)內(nèi)核函數(shù)的故障注入能夠引發(fā)內(nèi)核態(tài)的故障,其故障的嚴(yán)重性有時(shí)要大于用戶態(tài)能夠引發(fā)的故障。

      4 結(jié)束語

      本文提出的基于使用剖面分析的多層次的系統(tǒng)健壯性評(píng)測方法,在傳統(tǒng)的健壯性評(píng)測之前加入用戶使用剖面分析,通過使用剖面分析可以有效的減少測試數(shù)量,同時(shí)這種方法也可以找到熱點(diǎn)函數(shù),可以針對(duì)特定的應(yīng)用,提高使用頻率較高的函數(shù)的健壯性。目前該方法只分析了單個(gè)操作系統(tǒng)的健壯性評(píng)測結(jié)果,但是系統(tǒng)通用于不同的應(yīng)用負(fù)載,今后可以運(yùn)行多個(gè)應(yīng)用負(fù)載,特別是針對(duì)專門用途的工作負(fù)載,并且可以將系統(tǒng)擴(kuò)展到不同類型的操作系統(tǒng)中。

      [1]Kanoun K,Spainhower L.Dependability benchmarking for computer systems[M].Wiley:IEEE Computer Society Press,2008.

      [2]BIAN Wei,ZUO Decheng,QI Xin,et al.System robustness testing based on SWIFI [J].Journal of Harbin Institute of Technology,2009,41 (2):1-7 (in Chinese). [邊維,左德承,祁鑫,等.基于軟件實(shí)現(xiàn)的故障注入的系統(tǒng)健壯性測試研究 [J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2009,41 (2):1-7.]

      [3]JU Xiaoen,ZOU Hengming.Platform-based software reliability forecast and selection [D].Shanghai:Shanghai Jiaotong University,2009(in Chinese).[鞠曉恩,鄒恒明.基于平臺(tái)的軟件可靠性預(yù)測與選擇 [D].上海:上海交通大學(xué),2009.]

      [4]ZENG Fanping,LI Juan,LI Ling,et al.A fault injection approach based on operational profile [C].5th International Conference on Wireless Communications Networking and Mobile Computing,2009.

      [5]Johansson A,Suri N.Error propagation in operating systems[C].Proceedings of the International Conference on Dependable Systems and Networks,2005:86-95.

      [6]Kumar K S,Misra R B.Software operational profile based test case allocation using fuzzy logic [J].International Journal of Automation and Computing,2007,4 (4):388-395.

      [7]YU Bin,LIU Hongwei,CUI Gang,et al.Research and design in high-available dual fault-tolerance server [J]. Computer Engineering and Design,2006,27 (9):1524-1525 (in Chinese).[于斌,劉宏偉,崔剛,等.高可用雙機(jī)容錯(cuò)服務(wù)器的研究與設(shè)計(jì) [J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27 (9):1524-1525.]

      [8]Mitra S,Seifert N.Robust system design with built-in softerror resilience[J].IEEE Computer,2005,38 (2):43-52.

      [9]QIAN Yong,WU Jian.Framework of high availability cluster system [J].Ordnance Industry Automation,2008,27 (5):64-66.

      [10]JU Xiaoen,ZOU Hengming.Operating system robustness forecast and selection [C].19th International Symposium on Software Reliability Engineering,2008:107-116.

      [11]SARBU C,Johansson A,SURI N.Profiling the operational behavior of OS device drivers [C].19th International Symposium on Software Reliability Engineering,2008.

      [12]Moraes R.Injection of faults at component interfaces and inside the component code:are they equivalent [C].Proc of EDCC,2006:53-64.

      [13]Johansson A,Suri N,Murphy B.On the selection of error model(s)for OS robustness evaluation [C].International Conference on Dependable Systems and Networks,2007:502-511.

      [14]Sarbu C,Johansson A,F(xiàn)raikin F,et al.Improving robust

      ness testing of COTS OS extensions [G].LNCS 4328:In

      ternational Service Availability Symposium,2006:120-139.

      [15]Kanoun K,Crouzet Y,Kalakech A,et al.Benchmarking the dependability of windows and Linux using PostMarkTM workloads [C].International Symposium on Software Reliability Engineering,2005:11-20.

      猜你喜歡
      故障注入內(nèi)核調(diào)用
      萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
      模擬訓(xùn)練裝備故障注入系統(tǒng)研究
      強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
      核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
      SM4算法前四輪約減輪故障注入分析
      基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
      Linux內(nèi)核mmap保護(hù)機(jī)制研究
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      采用修改-回放原理的1553B故障注入方法
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      高雄市| 汉寿县| 新乡县| 台安县| 车致| 丰县| 房产| 新乡市| 文登市| 庐江县| 额尔古纳市| 新巴尔虎右旗| 绥中县| 达州市| 遵化市| 吉安县| 虎林市| 石首市| 宜良县| 洱源县| 莱芜市| 旬阳县| 沙雅县| 和龙市| 大埔县| 武安市| 巩义市| 蓬莱市| 思茅市| 清流县| 南京市| 昌宁县| 建昌县| 宜城市| 黄大仙区| 辛集市| 保亭| 静海县| 津市市| 女性| 华安县|