国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于構(gòu)件的可信軟件系統(tǒng)冗余機制及可靠性分析①

2018-02-07 02:41:21黃宇鑫
計算機系統(tǒng)應(yīng)用 2018年1期
關(guān)鍵詞:串聯(lián)并聯(lián)概率

郁 湧,黃宇鑫,陳 浩

1(云南大學(xué) 軟件學(xué)院,昆明 650091)2(云南省軟件工程重點實驗室,昆明 650091)

當今,以高速通信、海量存儲和高性能計算為核心的信息基礎(chǔ)設(shè)施已經(jīng)廣泛深入地滲透到經(jīng)濟、政治、軍事和社會文化生活的各個層面,成為現(xiàn)代生產(chǎn)力發(fā)展和人類文明進步不可或缺的強大工具.在眾多應(yīng)用背景的推動下,軟件的復(fù)雜度和規(guī)模都在以前所未有的速度在不斷延伸,在金融、國防、政府和通信等關(guān)鍵領(lǐng)域的各種復(fù)雜應(yīng)用需求背景下,軟件是否可信已經(jīng)成為衡量軟件系統(tǒng)的重要指標.然而,作為計算機技術(shù)的核心和基礎(chǔ)之一的軟件系統(tǒng),其生產(chǎn)現(xiàn)狀和質(zhì)量一直不能令人滿意,尤其是應(yīng)用于航空航天、核電及國防等領(lǐng)域的安全關(guān)鍵軟件系統(tǒng),其失效常常會對人類和環(huán)境造成嚴重的乃至災(zāi)難性的后果.早在1991年,Laprie就從安全關(guān)鍵系統(tǒng)的研究出發(fā)提出了軟件可依賴性(Dependability)的概念[1].1997年美國國家科學(xué)技術(shù)委員會在《高可信系統(tǒng)的研究挑戰(zhàn)》中明確提出了高可信性(High Confidence)的概念[2].我國學(xué)者陳火旺、王戟等認為高可信軟件在系統(tǒng)提供服務(wù)時應(yīng)能滿足一系列可靠安全性、實時性、可靠性、容錯性、保密性等關(guān)鍵性質(zhì)[3].可信軟件作為軟件領(lǐng)域最具挑戰(zhàn)性和價值的研究課題之一,引起了國內(nèi)外學(xué)者的高度重視.

軟件容錯是提高系統(tǒng)可信性的一種實現(xiàn)技術(shù)之一,其相關(guān)的研究方面主要分為兩大類:軟件冗余和時間冗余[4-6].軟件冗余是在系統(tǒng)設(shè)計時,增補一些部件或模塊,使得即使其中一個部件發(fā)生故障,而整個系統(tǒng)照樣完成規(guī)定的任務(wù).從冗余的范圍來看,分為元件冗余、部件冗余、子系統(tǒng)冗余等.從部件聯(lián)接形式來分,可分為并聯(lián)、旁聯(lián)、表決系統(tǒng)等.多版本編程利用完成同一功能的不同實現(xiàn)之間的多樣性互補容錯,也是一種常見的軟件冗余容錯方法.而時間冗余方面則是基于失敗重做(Retry-on-failure)的思想,如在系統(tǒng)進行設(shè)計和實現(xiàn)時設(shè)置檢查點和回滾機制,當發(fā)生故障就回滾到適當?shù)臋z查點重新執(zhí)行[7].Reis等人在編譯器級別通過指令復(fù)制和合并對軟件進行版本冗余從而可以在設(shè)置的同步點檢查指令的一致性,具有較好的容錯效果和執(zhí)行效率,但其實現(xiàn)較為復(fù)雜[6].文獻[8]通過動態(tài)監(jiān)控和回滾技術(shù),建立了合適的還原點來對系統(tǒng)進行監(jiān)控,使系統(tǒng)能夠及時恢復(fù)到預(yù)先的還原點.文獻[9]為提高軟件的可靠性和生存能力,分析了模塊化對可靠性的影響提出一種基于進化計算的可進化模塊冗余軟件混合容錯模型.文獻[10]設(shè)計了一種基于網(wǎng)絡(luò)控制的可編程控制器冗余系統(tǒng),使得雙機軟件冗余系統(tǒng)更加穩(wěn)定.文獻[11]給出了一種基于三取二冗余結(jié)構(gòu)的安全計算機系統(tǒng).

在現(xiàn)代軟件工程技術(shù)中,系統(tǒng)構(gòu)件化已經(jīng)成為軟件技術(shù)總體發(fā)展趨勢之一[12],基于構(gòu)件的軟件開發(fā)技術(shù)尤其得到了廣泛發(fā)展[13].為了能夠提高基于構(gòu)件的軟件系統(tǒng)的可信性,本文在分析系統(tǒng)結(jié)構(gòu)冗余和可信性關(guān)系的基礎(chǔ)上在基于構(gòu)件的軟件系統(tǒng)中提出一種構(gòu)件結(jié)構(gòu)冗余的方法并對其可靠性進行性能分析.

1 軟件結(jié)構(gòu)冗余及其對可信性的影響

軟件系統(tǒng)的可信性質(zhì)是指該系統(tǒng)需要滿足的關(guān)鍵性質(zhì),包括可靠性(reliability)、可靠安全性(safety)、保密安全性(security)、生存性(survivability)、容錯性(fault tolerance)等等,當軟件一旦違背這些關(guān)鍵性質(zhì)會造成不可容忍的損失時,稱這些性質(zhì)為系統(tǒng)的高可信性質(zhì)[3].構(gòu)建的軟件系統(tǒng)不夠可信的原因就是故障的存在,故障的存在說明軟件系統(tǒng)內(nèi)部有缺陷的部件.軟件系統(tǒng)故障的種類很多,退化故障就是其中常見的一種.當系統(tǒng)內(nèi)的一個部件發(fā)生失效,不再工作了,則認為發(fā)生了退化故障.軟件系統(tǒng)中的退化故障可能是活動的,也可能是休眠的;可能是瞬時性的,也可能是永久性的故障.為了降低軟件故障的發(fā)生率,如果能夠識別或者在進行系統(tǒng)設(shè)計時確定系統(tǒng)中可能發(fā)生故障的關(guān)鍵部件,預(yù)先進行調(diào)節(jié),并確保失效部件的影響不會帶來使系統(tǒng)發(fā)生失效的輸出,系統(tǒng)本身就不會失效.

軟件系統(tǒng)需要對退化故障進行處理,系統(tǒng)的容錯是處理退化故障的方法之一.容錯性就是指軟件在故障出現(xiàn)時保證提供服務(wù)的能力,對退化故障進行容錯的一種處理方式就是依靠冗余.所謂軟件的冗余技術(shù)主要就是指在軟件設(shè)計和實現(xiàn)中,除了完成系統(tǒng)本身所需的功能外,為了能夠提高系統(tǒng)的性能及可靠性等而額外增加一些合理的部件和程序代碼的技術(shù).

基于構(gòu)件的可信軟件系統(tǒng)中,構(gòu)件是具有一定規(guī)模、相對獨立、可替換的單元,它具有較穩(wěn)定的組成模式,完成一項確定、可區(qū)分的功能,并遵從和提供一套接口以及這些接口的實現(xiàn).構(gòu)件是軟件系統(tǒng)的構(gòu)成要素,同時也是軟件的承載體,一個構(gòu)件應(yīng)該包括兩個部分:接口和實現(xiàn).其中接口部分定義了構(gòu)件所提供的功能并規(guī)范了功能的使用方法;而實現(xiàn)部分包括了構(gòu)件所能提供的一系列相關(guān)操作.在基于構(gòu)件的可信軟件結(jié)構(gòu)設(shè)計中,構(gòu)件冗余就是對可能會出現(xiàn)故障的關(guān)鍵構(gòu)件進行多個備份;但是,冗余并不意味著簡單的備份,冗余意味著一個構(gòu)件有多個功能相同的構(gòu)件是可用的,超過提供服務(wù)所需的部件數(shù)量,當其中一些構(gòu)件發(fā)生失效時,其他的冗余部件可以繼續(xù)提供服務(wù),從而保證軟件系統(tǒng)運行的可信性.在系統(tǒng)中,如果兩個構(gòu)件A1和構(gòu)件A2所實現(xiàn)的功能和對應(yīng)接口完全一樣,則稱構(gòu)件A1和構(gòu)件A2是相互冗余的構(gòu)件,相互冗余的構(gòu)件的規(guī)約和消息傳遞機制必修一致.一個存在冗余構(gòu)件的系統(tǒng)在合理調(diào)用的情況下不僅不會影響系統(tǒng)的實現(xiàn),而且會提高系統(tǒng)的容錯能力,滿足系統(tǒng)可信性的要求.相同冗余構(gòu)件的運行要在確定的系統(tǒng)環(huán)境和相同輸入的情況下,才能得以正確運行;否則,存在外界的影響會產(chǎn)生錯誤的結(jié)果.當一個構(gòu)件產(chǎn)生故障時,繼續(xù)提供服務(wù)的構(gòu)件需要進行數(shù)據(jù)和環(huán)境的檢測和重新配置來保證系統(tǒng)運行的一致性.

為了保證基于構(gòu)件的可信軟件系統(tǒng)中的構(gòu)件冗余結(jié)構(gòu)的可靠性在運行過程中能夠得到合理有效地驗證,需要具有一個稱之為信任根的構(gòu)件,信任根構(gòu)件是系統(tǒng)的可信啟動模塊,可以存放構(gòu)件的標識和編號、構(gòu)件的信息摘要以及構(gòu)件冗余信息的存儲等重要數(shù)據(jù),同時也可以用來對冗余構(gòu)件的運行情況就行實時檢測,從而判斷各個構(gòu)件運行是否正常.基于冗余機制的可信軟件框架如圖1所示.

圖1 基于冗余機制的可信軟件框架

2 單個構(gòu)件的雙模冗余結(jié)構(gòu)及性能分析

一個具有雙模冗余結(jié)構(gòu)的系統(tǒng)是指在系統(tǒng)中存在兩個完全冗余的構(gòu)件;在此系統(tǒng)中,兩個相同構(gòu)件并行運行,并將結(jié)果進行檢測.兩個在相同輸入和相同環(huán)境的情況下運行,所產(chǎn)生的運行結(jié)果應(yīng)該是一樣的.一種普遍使用的簡單雙模冗余結(jié)構(gòu)如圖2所示.

圖2 構(gòu)件的雙冗余結(jié)構(gòu)

在基于構(gòu)件的軟件系統(tǒng)中,對于系統(tǒng)中的關(guān)鍵或者核心構(gòu)件,為了保證運行過程中所產(chǎn)生的故障能夠被及時發(fā)現(xiàn),提高系統(tǒng)容錯階段的檢測能力,可以對其進行雙模冗余結(jié)構(gòu)設(shè)計.

在進行雙模冗余結(jié)構(gòu)的設(shè)計時,兩個完全冗余的構(gòu)件A1和構(gòu)件A2的輸入必須相同,即在進行消息傳遞時,需要把同一消息傳遞給冗余的構(gòu)件.雙模冗余結(jié)構(gòu)的錯誤檢測是通過比較兩個冗余構(gòu)件的輸出結(jié)果來完成的.如果輸出不同,那么就是發(fā)生了錯誤.但是,通過錯誤檢測無法確定是哪個構(gòu)件發(fā)生了故障.如果輸出的結(jié)果完全相同,則說明系統(tǒng)沒有發(fā)生故障,此時只需要把其中一個輸出傳遞給下一個構(gòu)件即可.

一個雙模冗余結(jié)構(gòu)會對系統(tǒng)的可信性產(chǎn)生影響,因為單個構(gòu)件的運行結(jié)果無論是否正確都不可能完成故障和錯誤檢測,錯誤狀態(tài)產(chǎn)生而未被檢測出來,將會給系統(tǒng)帶來無限的負面影響,而雙模冗余結(jié)構(gòu)是一種最簡單提供了錯誤檢測的能力的方法.

雙模冗余結(jié)構(gòu)的可靠性分析:假設(shè)兩個完全冗余的構(gòu)件A1和構(gòu)件A2獨立運行,兩個構(gòu)件產(chǎn)生故障的概率相同都為p,由于構(gòu)件A1和構(gòu)件A2建立的是個并聯(lián)系統(tǒng),則系統(tǒng)運行中檢測出故障的概率為兩個完全冗余的構(gòu)件A1和構(gòu)件A2運行中,一個產(chǎn)生故障而另一個沒有產(chǎn)生故障而整體被檢測成產(chǎn)生故障的概率為

從雙模冗余結(jié)構(gòu)的性能分析結(jié)果可以看出,該結(jié)構(gòu)與不用冗余結(jié)構(gòu)相比可能會增加系統(tǒng)整體被檢測出故障的概率,因為無法判斷哪個構(gòu)件產(chǎn)生故障,所以一個構(gòu)件故障而另一個沒有故障產(chǎn)生時的結(jié)果會判定為系統(tǒng)產(chǎn)生故障.

對于雙模冗余結(jié)構(gòu),如果在系統(tǒng)運行過程中能夠收集系統(tǒng)產(chǎn)生故障的可能環(huán)境或情況,在對應(yīng)情況下才進行兩個完全冗余的構(gòu)件的調(diào)用,否則只需要進行其中一個構(gòu)件的調(diào)用,這樣就可以提高運行效率.

3 組合構(gòu)件的雙模冗余結(jié)構(gòu)及性能分析

軟件系統(tǒng)中的構(gòu)件可能具有多種關(guān)系,比如并聯(lián)、串聯(lián)等,對于多個需要進行冗余處理的關(guān)鍵構(gòu)件,為了能夠得到更好的效果,可以對其進行冗余的組合.本論文主要對兩個構(gòu)件的并聯(lián)、串聯(lián)的組合關(guān)系進行分析,對多個構(gòu)件的關(guān)系可以進行相似處理.

3.1 兩個串聯(lián)構(gòu)件的雙模冗余方式及性能分析

對于兩個串聯(lián)構(gòu)件的冗余主要有兩種方式,如圖3和圖4所示,圖中相同冗余構(gòu)件用不同的下標表示,如構(gòu)件A1構(gòu)件A2和構(gòu)件A3是三個相同的冗余構(gòu)件,構(gòu)件B1和構(gòu)件B2是兩個相同的冗余構(gòu)件,其他以此類推.

對于串聯(lián)構(gòu)件雙模冗余方式一,兩個構(gòu)件串聯(lián)運行之后再檢測其運行結(jié)果是否相同來確定是否有故障發(fā)生,把兩個構(gòu)件看成一個整體來檢測,檢測數(shù)量會變少,但是就算檢測出存在故障,也不知道是哪個構(gòu)件造成的故障.

圖3 串聯(lián)構(gòu)件雙模冗余方式一

圖4 串聯(lián)構(gòu)件雙模冗余方式二

若構(gòu)件A1和構(gòu)件A2的故障概率為p1,構(gòu)件B1和構(gòu)件B2的故障概率為p2,且構(gòu)件A1和構(gòu)件A2、構(gòu)件B1和構(gòu)件B2的運行都是獨立的,則構(gòu)件A1和構(gòu)件B1串聯(lián)時產(chǎn)生故障的概率為:

此時,構(gòu)件A1、構(gòu)件A2、構(gòu)件B1和構(gòu)件B2中只要有一個構(gòu)件產(chǎn)生故障,檢測器就是認為系統(tǒng)發(fā)生故障,其概率為:

對于串聯(lián)構(gòu)件雙模冗余方式二,兩個串聯(lián)的構(gòu)件分別運行之后就檢測其運行結(jié)果是否相同來確定是否有故障發(fā)生,把兩個構(gòu)件分開來進行檢測,檢測數(shù)量會增加,可以根據(jù)檢測結(jié)果知道是構(gòu)件A1或A2還是構(gòu)件B1或B2造成了系統(tǒng)故障.

對應(yīng)方式2的串聯(lián)構(gòu)件雙模冗余,若構(gòu)件A1和構(gòu)件A2,構(gòu)件B1和構(gòu)件B2分別進行檢測,運行中檢測出故障的概率分別為

對于兩個冗余檢測之間是串聯(lián)關(guān)系,此時,構(gòu)件A1和構(gòu)件A2檢測出故障就不用運行構(gòu)件B1和構(gòu)件B2,因此構(gòu)件B1和構(gòu)件B2也不需要檢測.只有構(gòu)件A1和構(gòu)件A2運行無故障時才需要運行構(gòu)件B1和構(gòu)件B2并對其進行檢測.因此,運行中檢測出產(chǎn)生故障的概率為:

從上可知道,串聯(lián)構(gòu)件采取哪種冗余方式與串聯(lián)的兩個構(gòu)件產(chǎn)生故障的概率有關(guān),可以根據(jù)情況進行選擇.

3.2 兩個并串聯(lián)構(gòu)件的雙模冗余方式及性能分析

對于兩個并聯(lián)構(gòu)件的雙模冗余主要有兩種方式,如圖5和圖6所示.

對于并聯(lián)構(gòu)件雙模冗余方式一,兩個并聯(lián)關(guān)系的構(gòu)件A1和構(gòu)件B1以及并聯(lián)關(guān)系的構(gòu)件A2和構(gòu)件B2先并聯(lián)運行,之后再把兩組并聯(lián)構(gòu)件運行的結(jié)果進行檢測來確定是否有故障發(fā)生,此時把兩個并聯(lián)關(guān)系的構(gòu)件看成一個整體來檢測,檢測數(shù)量會變少,但是只要構(gòu)件A1、構(gòu)件A2、構(gòu)件B1和構(gòu)件B2中一個構(gòu)件發(fā)生故障,都會認為系統(tǒng)出現(xiàn)故障.就算檢測出存在故障,也不知道是構(gòu)件A1或A2還是構(gòu)件B1或B2造成的故障.

圖5 并聯(lián)構(gòu)件雙模冗余方式一

圖6 并聯(lián)構(gòu)件雙模冗余方式二

若構(gòu)件A1和構(gòu)件A2的故障概率為p1,構(gòu)件B1和構(gòu)件B2的故障概率為p2,且構(gòu)件A1、構(gòu)件A2、構(gòu)件B1和構(gòu)件B2的運行都是獨立的.雖然構(gòu)件A1和構(gòu)件B1是并聯(lián)關(guān)系,但是其中只要一個產(chǎn)生故障,均認為系統(tǒng)產(chǎn)生故障,因此構(gòu)件A1和構(gòu)件B1并聯(lián)時產(chǎn)生故障的概率為:

此情況下,兩組并聯(lián)構(gòu)件運行結(jié)果不一致,經(jīng)檢測器檢測認為出現(xiàn)故障的概率為:

對于并聯(lián)構(gòu)件雙模冗余方式二,先對構(gòu)件A1和構(gòu)件A2以及構(gòu)件B1和構(gòu)件B2進行冗余處理,構(gòu)件A1和構(gòu)件A2以及構(gòu)件B1和構(gòu)件B2的故障檢測互不影響,根據(jù)各次檢測的結(jié)果來確定是那組構(gòu)件產(chǎn)生故障.

若構(gòu)件A1和構(gòu)件A2的故障概率為p1,構(gòu)件B1和構(gòu)件B2的故障概率為p2,且構(gòu)件A1、構(gòu)件A2、構(gòu)件B1和構(gòu)件B2的運行都是獨立的,則構(gòu)件A1和構(gòu)件A2并聯(lián)時產(chǎn)生故障的概率為:

此情況下,只要一個檢測器檢測出故障,均認為出現(xiàn)故障,其概率為:

4 構(gòu)件的三取二冗余結(jié)構(gòu)及其擴展

4.1 三取二冗余結(jié)構(gòu)

構(gòu)件的雙模冗余結(jié)構(gòu)只能檢測出系統(tǒng)是否出現(xiàn)故障卻不能判斷具體哪個構(gòu)件出現(xiàn)故障,而三取二冗余結(jié)構(gòu)是一種基于三取二表決原理的三模冗余架構(gòu),如圖7所示.

圖7 構(gòu)件的三取二冗余結(jié)構(gòu)

三取二冗余結(jié)構(gòu)不僅能夠檢測出系統(tǒng)的故障,而且能夠按照表決原理來確定哪個出現(xiàn)故障,其檢測和處理有2種方式.

方式一是先只運行其中的兩個冗余構(gòu)件,如果運行結(jié)果一致則直接運行下一構(gòu)件;如果運行結(jié)果不一致,說明至少其中一個構(gòu)件產(chǎn)生故障,此時再運行第三個冗余構(gòu)件,若三個冗余構(gòu)件運行結(jié)果中有兩個結(jié)果是相同的,則把它當成正確結(jié)果傳輸給下一個構(gòu)件,否則就認為產(chǎn)生了故障.

方式二是在該結(jié)構(gòu)中,同時運行三個冗余構(gòu)件,當且僅當 2個以上的構(gòu)件同時出現(xiàn)故障時( 發(fā)生概率較低)才會認為出現(xiàn)故障,即三個冗余構(gòu)件運行結(jié)果中,只要有2個及以上結(jié)果一致就把該結(jié)果當成正確結(jié)果傳輸給下一個構(gòu)件.

三取二冗余結(jié)構(gòu)不僅可以有效保證冗余構(gòu)件的退化故障而導(dǎo)致的錯誤能夠被檢測出來,而且在故障產(chǎn)生的情況下判斷正確的運行結(jié)果.這一特點與雙模冗余結(jié)構(gòu)中的錯誤檢測形成鮮明對比,如果三個冗余構(gòu)件中只有一個產(chǎn)生故障,三取二冗余結(jié)構(gòu)都可以檢測出來并給出正確的運行結(jié)果,因此,三取二冗余結(jié)構(gòu)可以對軟件的故障結(jié)構(gòu)進行屏蔽.

在三取二冗余結(jié)構(gòu)中,假設(shè)三個完全冗余的構(gòu)件A1、構(gòu)件A2和構(gòu)件A3獨立運行,它們產(chǎn)生故障的概率相同都為p,構(gòu)件A1、構(gòu)件A2和構(gòu)件A3建立的是并聯(lián)系統(tǒng),則系統(tǒng)運行中檢測出故障的概率為此時出現(xiàn)故障被檢測出來的概率將會大幅增加.

三個完全冗余的構(gòu)件A1、構(gòu)件A2和構(gòu)件A3運行中,三取二冗余結(jié)構(gòu)被認為產(chǎn)生故障的概率為

4.2 三取二冗余結(jié)構(gòu)的擴展

為了提高系統(tǒng)可靠性,也可采用四重化冗余結(jié)構(gòu)和二乘三取二冗余結(jié)構(gòu).四重化冗余結(jié)構(gòu)主要使用四個完全相同的構(gòu)件來搭建冗余結(jié)構(gòu),通過一定的邏輯關(guān)系來使可信性全面提高的一種技術(shù),其如圖8所示.

圖8 四重化冗余結(jié)構(gòu)

四個構(gòu)件被分為兩組,每組有兩個構(gòu)件和一個檢測器,整個四重化冗余結(jié)構(gòu)即由這兩個相同的系組成,每個系的運行與檢測方式與雙模冗余結(jié)構(gòu)相同.在系統(tǒng)運行過程中,只有一系有計算輸出而另一系為備用,當工作的系失效之后,才進行不同系之間的切換.

二乘三取二冗余結(jié)構(gòu)原理與四重化冗余結(jié)構(gòu)相似,冗余系統(tǒng)也由兩個系組成,只不過每個系就是一個三取二冗余結(jié)構(gòu).

四重化冗余結(jié)構(gòu)和二乘三取二冗余結(jié)構(gòu)能夠提高系統(tǒng)的可靠性和安全性,但是大量冗余結(jié)構(gòu)也會使得冗余機制實現(xiàn)起來比較復(fù)雜,增加了系統(tǒng)運行的成本.

對于三取二冗余結(jié)構(gòu)也可以擴展成為n-模冗余的結(jié)構(gòu),如圖9所示.該結(jié)構(gòu)運行結(jié)果的檢測和正確運行結(jié)果的判定方式與三取二冗余結(jié)構(gòu)相似,可以采取少數(shù)服從多數(shù)原則.

圖9 構(gòu)件 n 模冗余結(jié)構(gòu)

同時,對于三取二冗余結(jié)構(gòu)和n模冗余結(jié)構(gòu)都可以考慮構(gòu)件之間的并串聯(lián)關(guān)系,但是具體分析方式與上面的原理相似,故在此就不在重復(fù)分析.

在具有冗余機制的可信軟件系統(tǒng)中,可以采用奇偶校驗、錯誤檢測、完整性檢測和HASH函數(shù)等方式來對冗余構(gòu)件運行結(jié)果進行檢測,同時根據(jù)檢測的結(jié)果來確定構(gòu)件在運行過程中是否存在失效問題.當系統(tǒng)中的一個構(gòu)件產(chǎn)生故障或者失效時,可以利用恢復(fù)塊策略、檢查點技術(shù)等方法來對其進行替換或者恢復(fù),從而保證系統(tǒng)的可信性.

5 檢驗與分析

如果一個基于構(gòu)件的軟件系統(tǒng)中核心構(gòu)件有兩個,分別為構(gòu)件A和構(gòu)件B,它們在運行過程中產(chǎn)生故障的概率分別為pA=0.3和pB=0.2,則當對其進行單個構(gòu)件的雙模冗余結(jié)構(gòu)、兩個串聯(lián)構(gòu)件的雙模冗余方式(方式一、方式二)以及三取二冗余結(jié)構(gòu)時,其冗余系統(tǒng)對應(yīng)的概率如表1所示.

從表1中可以看出,在不同構(gòu)件發(fā)生故障的情況下,單個構(gòu)件的雙模冗余結(jié)構(gòu)和兩個串聯(lián)構(gòu)件的雙模冗余方式雖然不能確定系統(tǒng)中哪個構(gòu)件產(chǎn)生了故障,但是能夠提高故障概率檢測的效果,而三取二冗余結(jié)構(gòu)能夠很好地提高系統(tǒng)的可靠性,降低系統(tǒng)發(fā)生故障的概率.

表1 不同冗余模式下的概率對應(yīng)值

6 結(jié)論

可信軟件作為計算機軟件研究領(lǐng)域最具價值和最具挑戰(zhàn)性的核心課題之一,引起了國內(nèi)外政府組織、科學(xué)界和工業(yè)界的高度重視.我們構(gòu)建的軟件系統(tǒng)不夠可信的原因就是故障的存在,故障的存在說明軟件系統(tǒng)內(nèi)部有缺陷的部件.為了降低軟件故障的發(fā)生率,同時能夠檢測出系統(tǒng)是否產(chǎn)生故障和確定哪些部件產(chǎn)生故障可以采用系統(tǒng)的容錯的方法,而對系統(tǒng)故障進行容錯要依靠冗余.為此,本文在基于構(gòu)件的可信軟件結(jié)構(gòu)設(shè)計中加入冗余機制,也就是對可能出現(xiàn)故障的關(guān)鍵和核心構(gòu)件進行冗余處理,使得當冗余中的其中一些構(gòu)件發(fā)生失效時,其他的冗余部件可以繼續(xù)提供服務(wù),從而保證軟件系統(tǒng)運行的可信性.

1 Laprie JC.Dependability:Basic Concepts and Terminology.Vienna:Springe-Verlag,1991.

2 NSTC. Research challenges in high confidence systems.Proceedings of the Committee on Computing,Information,and Communications Workshop.1997.

3 陳火旺,王戟,董威.高可信軟件工程技術(shù).電子學(xué)報,2003,31(A12):1933–1938.

4 Saha GK. Software based fault tolerance:A survey.Ubiquity,2006,7(25):1–15.

5 Reis GA,Chang J,Vachharajani N,et al. Softwarecontrolled fault tolerance.ACM Transactions on Architecture and Code Optimization,2005,2(4):366–396.[doi:10.1145/1113841]

6 Reis GA,Chang J,Vachharajani N,et al.SWIFT:Software implemented fault tolerance.Proceedings of the International Symposium on Code Generation and Optimization.Washington DC,USA.2005.243–254.

7 Xie ZP,Sun HY,Saluja K.A survey of software fault tolerance techniques.http://www.pld.ttu.ee/IAF0030/Paper_4.pdf.[2011-05-22].

8 Sathre J,Zambreno J.Automated software attack recovery using rollback and huddle.Design Automation for Embedded Systems,2008,12(3):243 –260.[doi:10.1007/s10617-008-9020-4]

9 何加浪,張琨,孟錦,等.可進化模塊冗余軟件混合容錯模型.南京理工大學(xué)學(xué)報,2012,36(2):272–277,284.

10 張立眾.一種雙總線雙控制器軟件冗余系統(tǒng)的設(shè)計.陜西理工學(xué)院學(xué)報 (自然科學(xué)版),2014,30(3):41–46.

11 黃濤,陳祥獻,黃海.基于三取二冗余結(jié)構(gòu)的安全計算機系統(tǒng).計算機工程,2011,37(18):254–257.[doi:10.3969/j.issn.1000-3428.2011.18.085]

12 楊芙清.軟件工程技術(shù)發(fā)展思索.軟件學(xué)報,2005,16(1):1–7.

13 Atkinson C,Bunse C,Gross HG,et al.Component-based Software Development for Embedded Systems. Berlin Heidelberg:Springer-Verlag,2005.

猜你喜歡
串聯(lián)并聯(lián)概率
用提問來串聯(lián)吧
用提問來串聯(lián)吧
第6講 “統(tǒng)計與概率”復(fù)習(xí)精講
第6講 “統(tǒng)計與概率”復(fù)習(xí)精講
識別串、并聯(lián)電路的方法
概率與統(tǒng)計(一)
概率與統(tǒng)計(二)
審批由“串聯(lián)”改“并聯(lián)”好在哪里?
我曾經(jīng)去北京串聯(lián)
并聯(lián)型APF中SVPWM的零矢量分配
平乐县| 义乌市| 五莲县| 江陵县| 德安县| 乌苏市| 江门市| 临泉县| 双柏县| 岳西县| 电白县| 个旧市| 祁门县| 芜湖县| 福州市| 内乡县| 上杭县| 河南省| 宁武县| 定结县| 邵阳市| 新密市| 太湖县| 讷河市| 焉耆| 汾西县| 包头市| 巴青县| 天台县| 区。| 潍坊市| 土默特右旗| 民和| 平安县| 冷水江市| 奉化市| 喜德县| 萨迦县| 探索| 合水县| 庆城县|