專(zhuān)利名稱(chēng):能夠容忍運(yùn)行代碼錯(cuò)誤的計(jì)算機(jī)系統(tǒng)及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種能夠容忍運(yùn)行代碼錯(cuò)誤的計(jì)算機(jī)系統(tǒng)及其實(shí)現(xiàn)方法。
背景技術(shù):
計(jì)算機(jī)在人類(lèi)社會(huì)生活中起著越來(lái)越重要的作用,同時(shí),網(wǎng)絡(luò)及其各種信息服務(wù)也在迅猛發(fā)展,但是隨之引發(fā)的諸多安全危機(jī),給社會(huì)造成了巨大的損失,計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)的安全引起人們的強(qiáng)烈擔(dān)憂(yōu)。
只要計(jì)算機(jī)和網(wǎng)絡(luò)存在一天,信息界的攻擊和防衛(wèi)戰(zhàn)就不會(huì)結(jié)束。計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)中的安全隱患是計(jì)算機(jī)不安全的根本因素,而系統(tǒng)中的錯(cuò)誤和漏洞卻是不可能完全避免的。
現(xiàn)代的計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)通常都是建立在操作系統(tǒng)的基礎(chǔ)上的,利用操作系統(tǒng)提供的服務(wù)進(jìn)一步實(shí)現(xiàn)上層的應(yīng)用;也有嵌入式系統(tǒng),利用嵌入式操作系統(tǒng)實(shí)現(xiàn)系統(tǒng)功能或者直接針對(duì)特定硬件完成自下而上的系統(tǒng)。不論是哪種體系結(jié)構(gòu),其中的軟件可以分為兩類(lèi)系統(tǒng)軟件和應(yīng)用軟件。系統(tǒng)軟件為應(yīng)用軟件提供一個(gè)統(tǒng)一的平臺(tái);應(yīng)用軟件則在系統(tǒng)軟件的基礎(chǔ)上實(shí)現(xiàn)用戶(hù)所需要的功能,操作系統(tǒng)是最基本的系統(tǒng)軟件。這樣的系統(tǒng)結(jié)構(gòu)使得上層應(yīng)用依賴(lài)于操作系統(tǒng),上層應(yīng)用在使用操作系統(tǒng)提供的服務(wù)的同時(shí),操作系統(tǒng)中的錯(cuò)誤和漏洞會(huì)延伸到應(yīng)用中,應(yīng)用的安全性依賴(lài)于操作系統(tǒng)的安全性;又因?yàn)椴僮飨到y(tǒng)的目標(biāo)是提供服務(wù),某些應(yīng)用甚至可以最大程度的地占用系統(tǒng)資源,這樣,系統(tǒng)內(nèi)的任何微小的錯(cuò)誤就可能引起整個(gè)系統(tǒng)的崩潰。
然而,現(xiàn)有計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)不可避免存在各種各樣的錯(cuò)誤或者設(shè)計(jì)上的缺陷,這樣使得攻擊者能夠通過(guò)各種手段入侵到別人的系統(tǒng)中,有的系統(tǒng)甚至只是在提供正常的服務(wù)時(shí),也會(huì)被發(fā)現(xiàn)存在各種不可預(yù)見(jiàn)的錯(cuò)誤,以至于影響整個(gè)系統(tǒng)的強(qiáng)壯性和安全性?,F(xiàn)有計(jì)算機(jī)系統(tǒng)中的錯(cuò)誤可以歸結(jié)為系統(tǒng)中代碼錯(cuò)誤現(xiàn)代計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)是通過(guò)無(wú)數(shù)人長(zhǎng)時(shí)間的努力積累而成的,代碼量驚人。這樣龐大的代碼中間不可能沒(méi)有錯(cuò)誤。雖然人們用了各種方法來(lái)避免錯(cuò)誤,但情況往往是造成了較嚴(yán)重的后果才會(huì)發(fā)現(xiàn)錯(cuò)誤的確存在。大量的實(shí)例說(shuō)明不可能存在代碼無(wú)錯(cuò)的系統(tǒng)。
系統(tǒng)安全機(jī)制設(shè)計(jì)缺陷操作系統(tǒng)安全本身就是一個(gè)涉及面很廣的研究領(lǐng)域,在維持系統(tǒng)強(qiáng)壯和安全方面,操作系統(tǒng)要完成與安全性有關(guān)的功能用戶(hù)認(rèn)證、存儲(chǔ)器保護(hù)、文件和I/O設(shè)備的訪(fǎng)問(wèn)控制、對(duì)目標(biāo)的定位和訪(fǎng)問(wèn)控制、共享的實(shí)現(xiàn)等等。操作系統(tǒng)安全本身是計(jì)算機(jī)網(wǎng)絡(luò)安全的基礎(chǔ)。要保證它的絕對(duì)安全,涉及的機(jī)制多而復(fù)雜,需要付出大量的系統(tǒng)服務(wù)上的開(kāi)銷(xiāo)。因此實(shí)踐上人們往往還要考慮性能和開(kāi)銷(xiāo)的平衡。絕對(duì)安全的計(jì)算機(jī)安全機(jī)制也是不存在的。
系統(tǒng)開(kāi)發(fā)工具本身帶來(lái)的安全隱患現(xiàn)在人們所用的最多的系統(tǒng)開(kāi)發(fā)工具是C和C++,包括操作系統(tǒng)本身的大量程序都是C完成的。大家知道,現(xiàn)在大多數(shù)的網(wǎng)絡(luò)安全攻擊利用的是系統(tǒng)本身的緩沖區(qū)溢出漏洞,而這種漏洞是C語(yǔ)言本身編碼編譯連接機(jī)制帶來(lái)的。即使上次應(yīng)用程序所使用的是C#,access等等重新改造過(guò)的語(yǔ)言,因?yàn)橄到y(tǒng)安全還要依賴(lài)操作系統(tǒng),所以還是不可避免地會(huì)受到緩沖區(qū)溢出攻擊。只要系統(tǒng)中有C編碼,這個(gè)問(wèn)題就一定存在。系統(tǒng)開(kāi)發(fā)工具所帶來(lái)的安全隱患是客觀存在的。
為了解決上述計(jì)算機(jī)系統(tǒng)中的錯(cuò)誤,人們開(kāi)發(fā)了一些計(jì)算機(jī)系統(tǒng),例如基于操作系統(tǒng)的容錯(cuò)機(jī)制、和看門(mén)狗等。
A)基于操作系統(tǒng)的容錯(cuò)機(jī)制現(xiàn)有的計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)大都建立在較為成熟的操作系統(tǒng)的基礎(chǔ)上。操作系統(tǒng)為上層應(yīng)用屏蔽下層的硬件特性,合理調(diào)度系統(tǒng)資源,上層應(yīng)用可以不用考慮下層的實(shí)施細(xì)節(jié)。在維持系統(tǒng)強(qiáng)壯和安全方面,操作系統(tǒng)要完成與安全性有關(guān)的功能用戶(hù)認(rèn)證、存儲(chǔ)器保護(hù)、文件和I/O設(shè)備的訪(fǎng)問(wèn)控制、對(duì)目標(biāo)的定位和訪(fǎng)問(wèn)控制、共享的實(shí)現(xiàn)等等,成為計(jì)算機(jī)網(wǎng)絡(luò)安全的重要基礎(chǔ)。
因?yàn)椴僮飨到y(tǒng)是系統(tǒng)安全的基本提供者,是整個(gè)系統(tǒng)安全的基礎(chǔ),所以對(duì)它的攻擊也是黑客永恒不變的目標(biāo)。各種測(cè)試和分析技術(shù)使得系統(tǒng)中的大量問(wèn)題逐漸暴露,這其中有些問(wèn)題可以在現(xiàn)有系統(tǒng)上通過(guò)補(bǔ)丁的方式來(lái)排除,但是,對(duì)系統(tǒng)打補(bǔ)丁進(jìn)行改進(jìn)的方法是和系統(tǒng)所使用的操作系統(tǒng)緊密相聯(lián)系的。顯而易見(jiàn),這樣的方法存在很多缺陷不具備通用性新增的安全機(jī)制和系統(tǒng)所使用的操作系統(tǒng)緊密相連,不論是使用現(xiàn)有的通用操作系統(tǒng)還是嵌入式可裁減的操作系統(tǒng),它都不能獨(dú)立于操作系統(tǒng)而存在。一旦網(wǎng)絡(luò)安全設(shè)備所使用的操作系統(tǒng)有所變化,入侵容忍機(jī)制不能移植到新的平臺(tái)上。
完整性不夠因?yàn)橛?jì)算機(jī)系統(tǒng)本身是建立在某一個(gè)操作系統(tǒng)上,往往是發(fā)現(xiàn)了操作系統(tǒng)的某個(gè)缺陷影響到整個(gè)系統(tǒng)的強(qiáng)壯性,就針對(duì)該缺陷進(jìn)行改進(jìn)。很顯然,系統(tǒng)中還存在無(wú)數(shù)未發(fā)現(xiàn)的缺陷,完全無(wú)錯(cuò)的系統(tǒng)是不存在的,而一個(gè)小小的錯(cuò)誤就可能引起整個(gè)系統(tǒng)的崩潰。
影響系統(tǒng)效率抗攻擊機(jī)制作為一個(gè)應(yīng)用出現(xiàn),和網(wǎng)絡(luò)安全應(yīng)用處于同一個(gè)層面,需要占用較多的系統(tǒng)資源和時(shí)間。
系統(tǒng)中有些錯(cuò)誤可以通過(guò)打補(bǔ)丁的方法來(lái)排除,而有的是無(wú)法在原有的系統(tǒng)上進(jìn)行補(bǔ)救的,只有重新改造系統(tǒng),甚至重新設(shè)計(jì)才能有效地解決問(wèn)題。人們采用各種方法來(lái)設(shè)計(jì)安全性更高的操作系統(tǒng),安全機(jī)制的研究和設(shè)計(jì)是其中重要的組成部分。嵌入式系統(tǒng)對(duì)應(yīng)于相對(duì)特定的應(yīng)用,整體安全較為簡(jiǎn)潔,但適用的范圍也比較窄。通用操作系統(tǒng)和建立在其之上的應(yīng)用的安全性及容錯(cuò)機(jī)制是一個(gè)涉及面很廣的研究領(lǐng)域。
B)看門(mén)狗看門(mén)狗是獨(dú)立于操作系統(tǒng)之外的一個(gè)機(jī)制,它是一種監(jiān)視管理器,它監(jiān)測(cè)系統(tǒng)的各種運(yùn)行狀態(tài),并定時(shí)采樣保留正常的狀態(tài)點(diǎn)。通常由被監(jiān)視系統(tǒng)在經(jīng)過(guò)一段時(shí)間后對(duì)看門(mén)狗計(jì)數(shù)器進(jìn)行復(fù)位,以表示系統(tǒng)正在正常運(yùn)轉(zhuǎn)。因?yàn)樗?dú)立于被監(jiān)視的系統(tǒng),所以不會(huì)受被監(jiān)視系統(tǒng)的干擾,如果發(fā)現(xiàn)被監(jiān)視系統(tǒng)當(dāng)機(jī)或者處于非正常狀態(tài),就會(huì)使被監(jiān)視系統(tǒng)復(fù)位,取出距離系統(tǒng)崩潰最近一次的系統(tǒng)正常情況下保留的各種狀態(tài)參數(shù),系統(tǒng)重新啟動(dòng),以便提供后續(xù)服務(wù)。
看門(mén)狗技術(shù)非常有效,它可以防止系統(tǒng)在因?yàn)楦鞣N情況出現(xiàn)系統(tǒng)崩潰后,引起的長(zhǎng)時(shí)間處于拒絕服務(wù)狀態(tài)。它的缺陷也很明顯在系統(tǒng)進(jìn)入非正常狀態(tài)后到看門(mén)狗發(fā)現(xiàn)異常,重啟系統(tǒng)的這段時(shí)間,系統(tǒng)處于拒絕服務(wù)狀態(tài);只要為看門(mén)狗復(fù)位的進(jìn)程處于正常狀態(tài),即使系統(tǒng)中其他部分出現(xiàn)問(wèn)題,也不能立刻發(fā)現(xiàn),立刻處理;有一段較長(zhǎng)時(shí)間段內(nèi)的工作和工作狀態(tài)會(huì)丟失。
從上述中可以看出,現(xiàn)有計(jì)算機(jī)系統(tǒng)的容錯(cuò)機(jī)制都是面向代碼的。一個(gè)系統(tǒng)中的代碼不可避免的會(huì)存在許多錯(cuò)誤和不完善的地方,而且在短時(shí)間內(nèi)不能被發(fā)現(xiàn)。這樣,往往要等系統(tǒng)在實(shí)際運(yùn)作中出現(xiàn)錯(cuò)誤后,才找到引起錯(cuò)誤的原因,由開(kāi)發(fā)人員對(duì)系統(tǒng)打上補(bǔ)丁,或者進(jìn)行整個(gè)系統(tǒng)結(jié)構(gòu)的重新設(shè)計(jì)。這樣的方法有很多弊端一個(gè)細(xì)小的錯(cuò)誤就可能造成性能影響甚至系統(tǒng)崩潰,整個(gè)系統(tǒng)不能提供連續(xù)的服務(wù);因?yàn)槿狈φw的考慮,對(duì)一個(gè)錯(cuò)誤的修改可能引起系統(tǒng)中其他部件的錯(cuò)誤;不論如何考慮和設(shè)計(jì),完全無(wú)錯(cuò)的系統(tǒng)是不存在的,而且有時(shí)候會(huì)付出極大的開(kāi)銷(xiāo)。
所以,一個(gè)較為理想的系統(tǒng)應(yīng)該能在系統(tǒng)出錯(cuò)的情況下自我察覺(jué),采取適當(dāng)?shù)拇胧?,不至于引起整個(gè)系統(tǒng)的崩潰而帶來(lái)系統(tǒng)的拒絕服務(wù),最多只引起系統(tǒng)性能的有限降級(jí)。
發(fā)明內(nèi)容
因此,本發(fā)明旨在克服現(xiàn)有技術(shù)的計(jì)算機(jī)系統(tǒng)容錯(cuò)機(jī)制的上述缺陷,提供了一種容忍運(yùn)行代碼錯(cuò)誤的計(jì)算機(jī)系統(tǒng)及其容錯(cuò)方法,以及時(shí)發(fā)現(xiàn)系統(tǒng)內(nèi)的錯(cuò)誤數(shù)據(jù),避免系統(tǒng)因?yàn)橐粋€(gè)細(xì)小的錯(cuò)誤就引起崩潰,和防止系統(tǒng)長(zhǎng)時(shí)間處于拒絕服務(wù)狀態(tài),尤其適合應(yīng)用在對(duì)安全性要求高的專(zhuān)用系統(tǒng)中,比如網(wǎng)絡(luò)防火墻、路由器、或網(wǎng)絡(luò)防火墻等等。
本發(fā)明的其它優(yōu)點(diǎn)、目的和特征將至少部分地在隨后的說(shuō)明書(shū)中闡述,部分地在本領(lǐng)域普通技術(shù)人員分析以下內(nèi)容的基礎(chǔ)上變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其它優(yōu)點(diǎn)可通過(guò)在說(shuō)明書(shū)、權(quán)利要求、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和達(dá)到。
根據(jù)本發(fā)明,提供了一種計(jì)算機(jī)系統(tǒng),其特征在于,其能夠容忍運(yùn)行代碼錯(cuò)誤,其包括多個(gè)數(shù)據(jù)處理裝置,其中,每個(gè)所述數(shù)據(jù)處理裝置用于完成至少一個(gè)應(yīng)用功能,其獨(dú)占所述計(jì)算機(jī)系統(tǒng)的資源,運(yùn)行時(shí)分別占據(jù)隔離的內(nèi)存資源,以使所述多個(gè)數(shù)據(jù)處理裝置之間互不干擾,用于當(dāng)所述計(jì)算機(jī)系統(tǒng)出錯(cuò)時(shí),將錯(cuò)誤限制在出錯(cuò)的所述數(shù)據(jù)處理裝置內(nèi)部;以及監(jiān)控裝置,用于監(jiān)控所述多個(gè)數(shù)據(jù)處理裝置是否正常運(yùn)行,以及對(duì)所述多個(gè)數(shù)據(jù)處理裝置中發(fā)現(xiàn)異常的數(shù)據(jù)處理裝置進(jìn)行處理,其中,其通過(guò)以下操作判斷所述計(jì)算機(jī)系統(tǒng)內(nèi)所述多個(gè)數(shù)據(jù)處理裝置是否正常運(yùn)行設(shè)置輸入時(shí)間參數(shù)和/或輸出時(shí)間參數(shù),判斷所述多個(gè)數(shù)據(jù)處理裝置的輸入和/或輸出是否正常,如果所述監(jiān)控裝置發(fā)現(xiàn)所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)在所述輸入時(shí)間參數(shù)和/或所述輸出時(shí)間參數(shù)確定的時(shí)間范圍內(nèi)沒(méi)有輸入和/或輸出數(shù)據(jù),則判定所述數(shù)據(jù)處理裝置異常;以及其通過(guò)以下操作對(duì)所述多個(gè)數(shù)據(jù)處理裝置中發(fā)現(xiàn)異常的數(shù)據(jù)處理裝置進(jìn)行處理保存所述多個(gè)數(shù)據(jù)處理裝置的加電時(shí)初始狀態(tài),將所述異常的數(shù)據(jù)處理裝置恢復(fù)到所述監(jiān)控裝置所保存的所述異常數(shù)據(jù)處理裝置的所述加電時(shí)初始狀態(tài);以及當(dāng)所述監(jiān)控裝置判定所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)異常時(shí),判定所述異常數(shù)據(jù)處理裝置所處理的上一個(gè)數(shù)據(jù)異常,將所述異常數(shù)據(jù)丟棄;在將所述異常的數(shù)據(jù)處理裝置恢復(fù)到所述監(jiān)控裝置所保存的所述異常數(shù)據(jù)處理裝置的所述加電時(shí)初始狀態(tài)后,使恢復(fù)到所述加電時(shí)初始狀態(tài)的所述數(shù)據(jù)處理裝置處理下一個(gè)數(shù)據(jù)。
根據(jù)本發(fā)明,提供了一種計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)方法,其特征在于,其使所實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng)能夠容忍運(yùn)行代碼錯(cuò)誤,其包括以下步驟在所述計(jì)算機(jī)系統(tǒng)中,創(chuàng)建多個(gè)數(shù)據(jù)處理裝置,其中,每個(gè)所述數(shù)據(jù)處理裝置實(shí)現(xiàn)至少一個(gè)應(yīng)用功能,其獨(dú)占所述計(jì)算機(jī)系統(tǒng)的資源,以及運(yùn)行時(shí)分別占據(jù)隔離的內(nèi)存資源,以使所述多個(gè)數(shù)據(jù)處理裝置之間互不干擾,用于當(dāng)所述計(jì)算機(jī)系統(tǒng)出錯(cuò)時(shí),將錯(cuò)誤限制在出錯(cuò)的所述數(shù)據(jù)處理裝置內(nèi)部;監(jiān)控所述多個(gè)數(shù)據(jù)處理裝置是否正常運(yùn)行,以及對(duì)所述多個(gè)數(shù)據(jù)處理裝置中發(fā)現(xiàn)異常的數(shù)據(jù)處理裝置進(jìn)行處理,其中,通過(guò)以下步驟判斷所述計(jì)算機(jī)系統(tǒng)內(nèi)所述多個(gè)數(shù)據(jù)處理裝置是否正常運(yùn)行設(shè)置輸入時(shí)間參數(shù)和/或輸出時(shí)間參數(shù),判斷所述多個(gè)數(shù)據(jù)處理裝置的輸入和/或輸出是否正常,如果所述監(jiān)控裝置發(fā)現(xiàn)所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)在所述輸入時(shí)間參數(shù)和/或所述輸出時(shí)間參數(shù)確定的時(shí)間范圍內(nèi)沒(méi)有輸入和/或輸出數(shù)據(jù),則判定所述數(shù)據(jù)處理裝置異常;以及其通過(guò)以下操作對(duì)所述多個(gè)數(shù)據(jù)處理裝置中發(fā)現(xiàn)異常的數(shù)據(jù)處理裝置進(jìn)行處理保存所述多個(gè)數(shù)據(jù)處理裝置的加電時(shí)初始狀態(tài),將所述異常的數(shù)據(jù)處理裝置恢復(fù)到所保存的所述異常數(shù)據(jù)處理裝置的所述加電時(shí)初始狀態(tài);以及當(dāng)判定所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)異常時(shí),判定所述異常數(shù)據(jù)處理裝置所處理的上一個(gè)數(shù)據(jù)異常,將所述異常數(shù)據(jù)丟棄,在將所述異常的數(shù)據(jù)處理裝置恢復(fù)到所保存的所述異常數(shù)據(jù)處理裝置的所述加電時(shí)初始狀態(tài)后,使恢復(fù)到所述加電時(shí)初始狀態(tài)的所述數(shù)據(jù)處理裝置處理下一個(gè)數(shù)據(jù)。
本發(fā)明提出的計(jì)算機(jī)系統(tǒng)的容錯(cuò)機(jī)制建立在新的體系結(jié)構(gòu)的基礎(chǔ)上,可以為系統(tǒng)帶來(lái)很強(qiáng)的容錯(cuò)能力。該容錯(cuò)機(jī)制原理簡(jiǎn)單明了,容易實(shí)現(xiàn),可以用于多種系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)中,為系統(tǒng)提供額外的容錯(cuò)能力。它的優(yōu)點(diǎn)是能最快發(fā)現(xiàn)系統(tǒng)中的細(xì)小錯(cuò)誤;可以做到最大限度地把錯(cuò)誤限制在一個(gè)范圍內(nèi);很快消除錯(cuò)誤帶來(lái)的影響;維持系統(tǒng)運(yùn)行,不會(huì)中斷服務(wù);它和現(xiàn)有的系統(tǒng)的體系結(jié)構(gòu)可以完全兼容,獨(dú)立于現(xiàn)有各種機(jī)制之外,不會(huì)對(duì)系統(tǒng)其他機(jī)制造成干擾。
附圖提供了對(duì)本發(fā)明的進(jìn)一步理解,并入并且構(gòu)成本申請(qǐng)的一部分。
本發(fā)明的實(shí)施例,并與說(shuō)明書(shū)一起解釋本發(fā)明原理。在附圖中圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的容忍錯(cuò)誤的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)圖;圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的Switch的結(jié)構(gòu)圖;圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)處理單元的結(jié)構(gòu)圖;圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的發(fā)現(xiàn)錯(cuò)誤機(jī)制的流程圖;圖5示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)鏈路層容錯(cuò)機(jī)制的流程圖;以及圖6示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的基于輸入輸出隊(duì)列的數(shù)據(jù)鏈路層容錯(cuò)機(jī)制的流程圖。
具體實(shí)施例方式
下面將以實(shí)施例的方式對(duì)本發(fā)明加以描述,應(yīng)該注意的是,本發(fā)明的這些實(shí)施例并不用于限制依據(jù)于權(quán)利要求的本發(fā)明,并且并非在實(shí)施例中所描述的所有特征的組合都是本發(fā)明的解決方案所必須的。
首先來(lái)說(shuō)明本系統(tǒng)的原理。
系統(tǒng)不論在何種情況下出現(xiàn)錯(cuò)誤,都必須滿(mǎn)足兩個(gè)條件一個(gè)是系統(tǒng)中必須包含有缺陷的代碼;另一個(gè)是系統(tǒng)中的這些代碼必須要處理惡意或非惡意的引起系統(tǒng)錯(cuò)誤的數(shù)據(jù)。任何一個(gè)條件不滿(mǎn)足都不至于引起系統(tǒng)出錯(cuò)。
現(xiàn)在的計(jì)算機(jī)體系結(jié)構(gòu)中錯(cuò)誤是面向代碼的,即認(rèn)為系統(tǒng)中的錯(cuò)誤是由某些代碼設(shè)計(jì)缺陷或者編碼錯(cuò)誤引起的。而數(shù)據(jù)只作為某個(gè)代碼模塊的資源進(jìn)行處理,代碼錯(cuò)是引起系統(tǒng)錯(cuò)誤的主動(dòng)因素,而數(shù)據(jù)在任何情況下都是被動(dòng)的。這樣的體系結(jié)構(gòu)帶來(lái)的處理方式是人們不斷對(duì)代碼進(jìn)行修補(bǔ),對(duì)體系結(jié)構(gòu)進(jìn)行改進(jìn)甚至重新設(shè)計(jì)。在系統(tǒng)運(yùn)行時(shí),代碼引起不安全情況后,系統(tǒng)無(wú)法自動(dòng)處理。系統(tǒng)中的每一個(gè)進(jìn)程是獨(dú)立的單元,它處理的數(shù)據(jù)和操作系統(tǒng)無(wú)關(guān),進(jìn)程代碼正?;蚍钦5囟加锌赡苷紦?jù)全部的虛擬資源,而操作系統(tǒng)本身卻無(wú)法對(duì)這種情況進(jìn)行分辨和制約,這樣引起的后果往往是整個(gè)系統(tǒng)的崩潰。
如果引起系統(tǒng)的錯(cuò)誤是面向數(shù)據(jù)的,就可以認(rèn)為系統(tǒng)中的代碼在運(yùn)行時(shí)是正確的,或者人們不關(guān)心代碼本身的對(duì)錯(cuò),認(rèn)為引起系統(tǒng)出錯(cuò)的原因是某個(gè)數(shù)據(jù)。這樣,系統(tǒng)開(kāi)始運(yùn)行后,人們可以把對(duì)系統(tǒng)代碼的注意力轉(zhuǎn)移到數(shù)據(jù)上來(lái),通過(guò)對(duì)系統(tǒng)中各個(gè)部分處理數(shù)據(jù)的情況進(jìn)行監(jiān)控和檢查,可以獲得系統(tǒng)運(yùn)行狀態(tài)的信息。系統(tǒng)某個(gè)模塊進(jìn)行數(shù)據(jù)處理時(shí),如果出現(xiàn)非正?,F(xiàn)象,就拋棄該數(shù)據(jù)塊,該模塊回到初始的起點(diǎn)重新運(yùn)行。這樣可以保證系統(tǒng)不會(huì)出現(xiàn)崩潰現(xiàn)象,拋棄數(shù)據(jù)塊的結(jié)果是保持系統(tǒng)提供持續(xù)的服務(wù),最多引起性能的平穩(wěn)降級(jí)。
本發(fā)明提出面向數(shù)據(jù)發(fā)現(xiàn)錯(cuò)誤的概念,認(rèn)為在不能避免計(jì)算機(jī)系統(tǒng)存在漏洞的基礎(chǔ)上,數(shù)據(jù)是引起系統(tǒng)出錯(cuò)的主動(dòng)因素。系統(tǒng)一旦運(yùn)行,就不對(duì)系統(tǒng)代碼再作修改,只要規(guī)范系統(tǒng)處理的數(shù)據(jù),能更好地維持系統(tǒng)性能。這個(gè)概念是計(jì)算機(jī)容錯(cuò)概念上的一個(gè)重大轉(zhuǎn)變,為建立本系統(tǒng)體系結(jié)構(gòu)提供了有力的理論依據(jù),是建立本系統(tǒng)整體結(jié)構(gòu)的基礎(chǔ)。
現(xiàn)在的計(jì)算機(jī)系統(tǒng)都是以完成各種功能的代碼組合而成的,代碼所處理的數(shù)據(jù)以資源的形式存在。
而在本系統(tǒng)中,整個(gè)系統(tǒng)是面向數(shù)據(jù)而存在的。整個(gè)系統(tǒng)被看作一個(gè)從數(shù)據(jù)輸入,對(duì)數(shù)據(jù)進(jìn)行處理,到數(shù)據(jù)輸出一個(gè)簡(jiǎn)單的抽象結(jié)構(gòu)。
在此系統(tǒng)中,在系統(tǒng)中建立多個(gè)數(shù)據(jù)處理單元(即后面將要描述的C系統(tǒng)),每個(gè)單元占用系統(tǒng)一定的資源,完成特定的功能。每個(gè)數(shù)據(jù)處理單元對(duì)外只有數(shù)據(jù)輸入、數(shù)據(jù)輸出兩個(gè)接口。
系統(tǒng)中的監(jiān)控單元是一個(gè)非常重要的單元。由它來(lái)調(diào)控系統(tǒng)中哪一個(gè)數(shù)據(jù)處理單元處于運(yùn)行態(tài);通過(guò)對(duì)每一個(gè)數(shù)據(jù)處理單元輸入輸出數(shù)據(jù)的監(jiān)控,判斷該數(shù)據(jù)處理單元是否處于正常狀態(tài);決定系統(tǒng)下一步動(dòng)作。直到輸出正確數(shù)據(jù)。
系統(tǒng)100的整體結(jié)構(gòu)如圖1所示,系統(tǒng)中100各個(gè)單元相互獨(dú)立,又通過(guò)數(shù)據(jù)相互聯(lián)系,相互制約。系統(tǒng)一旦按照該體系結(jié)構(gòu)開(kāi)發(fā)成形,就認(rèn)為系統(tǒng)中的各部分都是正確的。在這種理念的支持下,該系統(tǒng)不依賴(lài)于代碼的完全正確性,系統(tǒng)中的代碼即使有錯(cuò),也不會(huì)引起系統(tǒng)大范圍的性能降級(jí)或者系統(tǒng)崩潰,錯(cuò)誤會(huì)被制約在某一個(gè)C系統(tǒng)內(nèi),整個(gè)系統(tǒng)的功能可很快恢復(fù),至少做到系統(tǒng)性能的有限降級(jí)。
在本系統(tǒng)中,另外有個(gè)特殊的獨(dú)立的單元負(fù)責(zé)調(diào)度和監(jiān)控系統(tǒng)中各個(gè)部分的工作情況。它是系統(tǒng)中的一個(gè)關(guān)鍵部分,稱(chēng)為switch(監(jiān)控單元)。另外,系統(tǒng)中包括多個(gè)C系統(tǒng),從CPU的角度來(lái)看,一個(gè)時(shí)間只有一個(gè)C系統(tǒng)可以占據(jù)CPU。C系統(tǒng)操作的對(duì)象是某個(gè)數(shù)據(jù)。本調(diào)度系統(tǒng)把CPU分配給某個(gè)C系統(tǒng),同時(shí)會(huì)保留活躍C系統(tǒng)的ID和當(dāng)時(shí)操作的數(shù)據(jù)塊,以及此C系統(tǒng)可以運(yùn)行的時(shí)間參數(shù)。在此C系統(tǒng)運(yùn)行期間,switch會(huì)按照系統(tǒng)策略和數(shù)據(jù)流動(dòng)的方向等等因素所決定的時(shí)間間隔對(duì)活躍C系統(tǒng)進(jìn)行狀態(tài)監(jiān)測(cè)。如果switch認(rèn)為某C系統(tǒng)處于非正常狀態(tài),會(huì)使其恢復(fù)到初始加電的狀態(tài),正在處理的數(shù)據(jù)塊或者保留或者被丟棄。這樣可以保證系統(tǒng)錯(cuò)誤被隔離在某一個(gè)C系統(tǒng)中,而且在按照系統(tǒng)策略確定的時(shí)間內(nèi)就很快會(huì)被發(fā)現(xiàn),系統(tǒng)不會(huì)長(zhǎng)時(shí)間處于非正常狀態(tài)而形成拒絕服務(wù),維持系統(tǒng)的正常性能。
這里,本機(jī)制幾個(gè)重要的組成部分是●整個(gè)系統(tǒng)被抽象成一個(gè)數(shù)據(jù)的輸入輸出系統(tǒng);●不關(guān)注系統(tǒng)代碼的錯(cuò)誤,只認(rèn)為對(duì)系統(tǒng)輸入的數(shù)據(jù)引起系統(tǒng)出錯(cuò);●系統(tǒng)被分成一個(gè)個(gè)更小的數(shù)據(jù)處理單元(即C系統(tǒng)),每個(gè)單元對(duì)外也只有數(shù)據(jù)輸入輸出的接口;●系統(tǒng)設(shè)立監(jiān)控單元,負(fù)責(zé)各C系統(tǒng)的運(yùn)作和監(jiān)控各C系統(tǒng)處理的數(shù)據(jù);●根據(jù)系統(tǒng)策略確定對(duì)數(shù)據(jù)處理單元的監(jiān)測(cè)時(shí)間參數(shù),根據(jù)對(duì)數(shù)據(jù)流的監(jiān)測(cè)觀察數(shù)據(jù)處理單元狀態(tài),一旦發(fā)現(xiàn)異常,就復(fù)位該單元;●錯(cuò)誤被限制在某一個(gè)數(shù)據(jù)處理單元內(nèi)部,不會(huì)引起系統(tǒng)性能的大幅度降低。
下面將參照?qǐng)D2來(lái)描述該系統(tǒng)的實(shí)現(xiàn)方法。
在以上所描述的系統(tǒng)結(jié)構(gòu)上,開(kāi)發(fā)完成一個(gè)系統(tǒng)模型。整個(gè)系統(tǒng)可以看作一個(gè)從數(shù)據(jù)輸入,到對(duì)數(shù)據(jù)進(jìn)行處理,最后輸出處理完畢數(shù)據(jù)的數(shù)據(jù)處理系統(tǒng)。系統(tǒng)內(nèi)部由多個(gè)完成特定功能的數(shù)據(jù)處理單元組成,每個(gè)數(shù)據(jù)處理單元是數(shù)據(jù)處理流程中的一個(gè)環(huán)節(jié),各數(shù)據(jù)處理單元通過(guò)數(shù)據(jù)相互聯(lián)系、相互制約。在該系統(tǒng)中,用C語(yǔ)言編寫(xiě)各個(gè)數(shù)據(jù)處理單元的功能代碼。每個(gè)數(shù)據(jù)處理單元通過(guò)特殊的連接工具被安排在系統(tǒng)中特定的內(nèi)存空間中運(yùn)行,各數(shù)據(jù)處理單元在內(nèi)存中不重疊,地址上完全隔離,獲得運(yùn)行權(quán)力時(shí)能獨(dú)占CPU。把各數(shù)據(jù)處理單元稱(chēng)為一個(gè)C系統(tǒng)。
定義本結(jié)構(gòu)系統(tǒng)中,把用標(biāo)準(zhǔn)的C語(yǔ)言或C++語(yǔ)言開(kāi)發(fā)完成的,運(yùn)行時(shí)需實(shí)際占用系統(tǒng)的特定內(nèi)存空間和CPU運(yùn)行權(quán),完成系統(tǒng)所需功能的數(shù)據(jù)處理單元,稱(chēng)為一個(gè)C系統(tǒng)。圖3示出了C系統(tǒng)20的結(jié)構(gòu),每個(gè)數(shù)據(jù)處理裝置(即C系統(tǒng)20)用于完成至少一個(gè)應(yīng)用功能,其獨(dú)占計(jì)算機(jī)系統(tǒng)的資源,運(yùn)行時(shí)分別占據(jù)隔離的內(nèi)存資源,以使多個(gè)數(shù)據(jù)處理裝置之間互不干擾,用于當(dāng)計(jì)算機(jī)系統(tǒng)出錯(cuò)時(shí),將錯(cuò)誤限制在出錯(cuò)的數(shù)據(jù)處理裝置內(nèi)部。
整個(gè)系統(tǒng)是由多個(gè)C系統(tǒng)組成的,系統(tǒng)中另設(shè)監(jiān)控單元switch10,監(jiān)控各C系統(tǒng)的狀態(tài),根據(jù)數(shù)據(jù)流向調(diào)配和調(diào)度各個(gè)C系統(tǒng)的行為,包括運(yùn)行、等待、掛起等等,決定由哪個(gè)C系統(tǒng)獲得當(dāng)前CPU的運(yùn)行權(quán)。在switch中,維護(hù)一個(gè)隊(duì)列列表。一個(gè)隊(duì)列為一個(gè)C系統(tǒng)需要處理的后續(xù)數(shù)據(jù)。switch根據(jù)系統(tǒng)策略,C系統(tǒng)之間的關(guān)系,數(shù)據(jù)流向,決定當(dāng)前由哪個(gè)C系統(tǒng)獲得CPU,進(jìn)行數(shù)據(jù)處理。從這一點(diǎn)看,switch很像路由器的功能,不過(guò)管理的數(shù)據(jù)和范圍更大,功能更強(qiáng)。
另外,switch中保留所有C系統(tǒng)運(yùn)行的起始點(diǎn)和間隔多長(zhǎng)時(shí)間對(duì)此C系統(tǒng)進(jìn)行狀態(tài)監(jiān)測(cè)的時(shí)間參數(shù),此參數(shù)由很多因素來(lái)確定,如系統(tǒng)策略、該C系統(tǒng)功能與性質(zhì)、正常處理數(shù)據(jù)的時(shí)間等等。當(dāng)某個(gè)C系統(tǒng)經(jīng)過(guò)switch的調(diào)配和調(diào)度獲得CPU運(yùn)行權(quán)以后,switch還會(huì)保留此C系統(tǒng)的ID和當(dāng)時(shí)正在處理的數(shù)據(jù),并按照對(duì)此C系統(tǒng)設(shè)定的時(shí)間參數(shù)對(duì)它進(jìn)行定時(shí)監(jiān)測(cè)。
優(yōu)選地,Switch中還有每個(gè)C系統(tǒng)的過(guò)濾模塊30,該過(guò)濾模塊是由異常數(shù)據(jù)數(shù)據(jù)庫(kù)和過(guò)濾策略構(gòu)成的。當(dāng)Switch發(fā)現(xiàn)一個(gè)C系統(tǒng)處理數(shù)據(jù)的時(shí)間超長(zhǎng)時(shí),就判定該數(shù)據(jù)為錯(cuò)誤數(shù)據(jù),把該數(shù)據(jù)放入所述C系統(tǒng)的過(guò)濾模塊的異常數(shù)據(jù)數(shù)據(jù)庫(kù)中。當(dāng)異常數(shù)據(jù)數(shù)據(jù)庫(kù)中的錯(cuò)誤數(shù)據(jù)太多不易存儲(chǔ)時(shí),把該庫(kù)中相關(guān)聯(lián)的數(shù)據(jù)使用數(shù)據(jù)挖掘中現(xiàn)有的關(guān)聯(lián)算法進(jìn)行特征提取,并把提取出的特征代替所述數(shù)據(jù)存入庫(kù)以減小存儲(chǔ)空間。當(dāng)數(shù)據(jù)傳遞給一個(gè)C系統(tǒng)之前要先與錯(cuò)誤數(shù)據(jù)或特征進(jìn)行關(guān)聯(lián)性比較,如果該數(shù)據(jù)和異常數(shù)據(jù)數(shù)據(jù)庫(kù)中的某個(gè)數(shù)據(jù)或特征存在一致性,就認(rèn)為這個(gè)數(shù)據(jù)也是錯(cuò)誤數(shù)據(jù)并丟棄。
當(dāng)某個(gè)C系統(tǒng)獲得CPU運(yùn)行權(quán)以后,switch保留該C系統(tǒng)的ID號(hào)和當(dāng)前正在處理的數(shù)據(jù)。switch以數(shù)據(jù)為對(duì)象,按照系統(tǒng)對(duì)此C系統(tǒng)設(shè)立的時(shí)間參數(shù)它進(jìn)行監(jiān)測(cè)。如果switch發(fā)現(xiàn)某一個(gè)C系統(tǒng)在時(shí)間參數(shù)所定的范圍內(nèi),沒(méi)有對(duì)輸入該C系統(tǒng)的數(shù)據(jù)做足夠的處理,得到正常的結(jié)果,就認(rèn)為此C系統(tǒng)處于非正常狀態(tài)。
Switch認(rèn)為此C系統(tǒng)處理的上一個(gè)數(shù)據(jù)引起其錯(cuò)誤,則復(fù)位該C系統(tǒng),處理下一數(shù)據(jù)。引發(fā)錯(cuò)誤的數(shù)據(jù)加入到該C系統(tǒng)的過(guò)濾模塊的異常數(shù)據(jù)數(shù)據(jù)庫(kù)中。這樣,switch通過(guò)對(duì)數(shù)據(jù)的監(jiān)控調(diào)度各C系統(tǒng),可以及時(shí)發(fā)現(xiàn)系統(tǒng)內(nèi)錯(cuò)誤的部分,保持系統(tǒng)性能,防止系統(tǒng)崩潰,長(zhǎng)時(shí)間處于拒絕服務(wù)狀態(tài)。
該系統(tǒng)的容錯(cuò)機(jī)制建立在上文所述的體系結(jié)構(gòu)上。
●系統(tǒng)由多個(gè)C系統(tǒng)組成;
●C系統(tǒng)之間通過(guò)數(shù)據(jù)相互制約,相互聯(lián)系;●每個(gè)C系統(tǒng)都有機(jī)會(huì)獨(dú)占CPU,所占內(nèi)存空間完全獨(dú)立;●監(jiān)控單元根據(jù)系統(tǒng)策略調(diào)節(jié)各C系統(tǒng)行為,以當(dāng)前占有CPU的C系統(tǒng)所處理的數(shù)據(jù)為對(duì)象,監(jiān)控C系統(tǒng)行為;●如果發(fā)現(xiàn)某C系統(tǒng)行為異常,就拋棄該C系統(tǒng)正在處理的數(shù)據(jù),復(fù)位該C系統(tǒng)。
●整個(gè)系統(tǒng)能及時(shí)發(fā)現(xiàn)出錯(cuò)的C系統(tǒng),因?yàn)楦鰿系統(tǒng)在內(nèi)存中所占位置互相獨(dú)立,錯(cuò)誤會(huì)被限制在一個(gè)C系統(tǒng)內(nèi),避免蔓延。
●整個(gè)系統(tǒng)的性能不會(huì)因?yàn)槟硞€(gè)C系統(tǒng)的出錯(cuò)引起大幅度下降,數(shù)據(jù)拋棄只可能引起系統(tǒng)性能平穩(wěn)下降,并且能很快恢復(fù)。
接下來(lái)將參照?qǐng)D4描述該容錯(cuò)機(jī)制的實(shí)現(xiàn)方法。
上節(jié)所述的容錯(cuò)機(jī)制中,一個(gè)非常重要的部分是監(jiān)控單元如何判斷出錯(cuò)的數(shù)據(jù)處理單元,并進(jìn)行相應(yīng)處理。在具體的實(shí)施方法上,監(jiān)控單元可以根據(jù)系統(tǒng)策略,對(duì)多個(gè)點(diǎn)進(jìn)行判斷●C系統(tǒng)--數(shù)據(jù)處理單元的輸入是否正常?(S110)監(jiān)控單元為每個(gè)C系統(tǒng)建立待處理數(shù)據(jù)緩沖區(qū),表示該C系統(tǒng)在下一次獲得CPU后,要處理的數(shù)據(jù)。在數(shù)據(jù)結(jié)構(gòu)上,用一個(gè)指針來(lái)指向待處理數(shù)據(jù)。若監(jiān)控單元在時(shí)間參數(shù)確定的時(shí)間內(nèi)發(fā)現(xiàn)指針沒(méi)有動(dòng)作,即系統(tǒng)一段時(shí)間內(nèi)未有數(shù)據(jù)輸入,則考慮C系統(tǒng)出現(xiàn)異常。
●數(shù)據(jù)處理單元的輸出是否正常?(S120)監(jiān)控單元認(rèn)為每一個(gè)C系統(tǒng)是一個(gè)獨(dú)立的數(shù)據(jù)處理單元,在正常情況下,各C系統(tǒng)有輸入,一段時(shí)間后也應(yīng)該有數(shù)據(jù)輸出。如果較長(zhǎng)時(shí)間沒(méi)有輸出,也要考慮出現(xiàn)異常。
監(jiān)控單元為C系統(tǒng)輸出建立緩沖區(qū),設(shè)置輸出狀態(tài)標(biāo)志。如果C系統(tǒng)能正常輸出,就對(duì)該狀態(tài)標(biāo)志置位;考慮到有的數(shù)據(jù)處理需要更多的時(shí)間,在系統(tǒng)設(shè)定的時(shí)間參數(shù)內(nèi)未能輸出數(shù)據(jù),則也要考慮在處理過(guò)程中對(duì)輸出狀態(tài)標(biāo)志位置位,表示本C系統(tǒng)處于正常的數(shù)據(jù)處理狀態(tài),防止監(jiān)控單元認(rèn)為此C系統(tǒng)出錯(cuò),而對(duì)此C系統(tǒng)進(jìn)行復(fù)位。
●調(diào)度機(jī)制有沒(méi)有正常運(yùn)作?(S130)系統(tǒng)可以根據(jù)具體的策略設(shè)立調(diào)度機(jī)制,在調(diào)度點(diǎn)上可以設(shè)立一些監(jiān)測(cè)點(diǎn),如果檢查的結(jié)構(gòu)和系統(tǒng)設(shè)定的合理值、經(jīng)驗(yàn)值不符,就認(rèn)為在這個(gè)點(diǎn)上出現(xiàn)了異?,F(xiàn)象。如按照某調(diào)度策略,乙C系統(tǒng)需要等甲C系統(tǒng)處理過(guò)n個(gè)數(shù)據(jù)后才能被調(diào)度一次。這樣,在監(jiān)控單元在每次調(diào)度乙C系統(tǒng)時(shí),會(huì)再判定一下甲C系統(tǒng)已經(jīng)處理過(guò)的數(shù)據(jù)個(gè)數(shù),如果結(jié)果不符,就會(huì)判斷異常。
●調(diào)度監(jiān)控時(shí)間參數(shù)的選取(S140)調(diào)度監(jiān)控的時(shí)間參數(shù)在系統(tǒng)中是一個(gè)非常重要的因素。它的選取需要考慮很多方面系統(tǒng)調(diào)度策略、各個(gè)C系統(tǒng)正常處理數(shù)據(jù)的周期、各C系統(tǒng)之間的相互關(guān)系等等。選取合適的時(shí)間參數(shù)能更好地保證系統(tǒng)性能。若時(shí)間參數(shù)選取過(guò)大,則對(duì)系統(tǒng)中監(jiān)測(cè)點(diǎn)的判斷時(shí)間間隔會(huì)延長(zhǎng),不能及時(shí)發(fā)現(xiàn)異常,從而采取措施;若時(shí)間參數(shù)選取過(guò)小,頻繁的監(jiān)測(cè)判斷會(huì)大大加重系統(tǒng)負(fù)擔(dān)。
從整體的角度看待這幾個(gè)點(diǎn)的判斷要比只判斷一個(gè)點(diǎn)效果更好。也許一個(gè)判斷點(diǎn)能更快發(fā)現(xiàn)各數(shù)據(jù)處理單元的問(wèn)題,但也可能引起誤判,而誤判的后果是某C系統(tǒng)多一次被復(fù)位。雖然我們的系統(tǒng)依賴(lài)C系統(tǒng)的復(fù)位防止大范圍系統(tǒng)錯(cuò)誤的出現(xiàn),但是過(guò)多次不必要的C系統(tǒng)復(fù)位也會(huì)增加丟棄的數(shù)據(jù)的數(shù)量,延長(zhǎng)系統(tǒng)恢復(fù)正常狀態(tài)的時(shí)間,降低系統(tǒng)性能。
接下來(lái)將說(shuō)明數(shù)據(jù)鏈路層容錯(cuò)機(jī)制。
這個(gè)理念可以用到各種系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)中。
隨著網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)已經(jīng)和人類(lèi)生活息息相關(guān)。同時(shí),各種網(wǎng)絡(luò)安全事故層出不窮,使人們認(rèn)識(shí)到網(wǎng)絡(luò)安全的重要性。人們通過(guò)各種網(wǎng)絡(luò)安全設(shè)備來(lái)保證計(jì)算機(jī)系統(tǒng)或子網(wǎng)的安全,性能良好的網(wǎng)絡(luò)安全設(shè)備能提供全面、良好的網(wǎng)絡(luò)安全服務(wù),具有廣闊的市場(chǎng)前景。
一個(gè)系統(tǒng)接入網(wǎng)絡(luò)立刻就會(huì)受到攻擊,入侵是隨時(shí)隨地存在的。系統(tǒng)中存在的各種漏洞使得入侵成為可能。網(wǎng)絡(luò)安全設(shè)備是整個(gè)網(wǎng)絡(luò)系統(tǒng)安全的第一道屏障,由于它在整個(gè)計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)中特殊位置,各種各樣的網(wǎng)絡(luò)數(shù)據(jù)都會(huì)首先到達(dá)網(wǎng)絡(luò)安全設(shè)備,它本身有可能是受攻擊最多的地方。它不但要能接受網(wǎng)絡(luò)大流量的沖擊,而且要能在較短的時(shí)間內(nèi)對(duì)網(wǎng)絡(luò)攻擊做出反應(yīng)。系統(tǒng)本身的強(qiáng)壯性是網(wǎng)絡(luò)安全設(shè)備的一項(xiàng)重要性能。我們現(xiàn)在已經(jīng)擁有較為全面的網(wǎng)絡(luò)安全技術(shù),如防病毒系統(tǒng)、防火墻、IDS、漏洞掃描、VPN等,一個(gè)網(wǎng)絡(luò)安全設(shè)備需要承載這么多的安全功能,設(shè)備平臺(tái)本身的安全性健壯性是提供各項(xiàng)網(wǎng)絡(luò)安全服務(wù)的保證。我們?cè)谡麄€(gè)系統(tǒng)設(shè)計(jì)的時(shí)期就考慮到這個(gè)問(wèn)題,使它有較強(qiáng)的入侵容忍能力,增加整個(gè)系統(tǒng)的強(qiáng)壯性。
網(wǎng)絡(luò)安全設(shè)備在系統(tǒng)本身安全性和強(qiáng)壯性上面臨的問(wèn)題有●效率受限隨著網(wǎng)絡(luò)帶寬的增大和網(wǎng)上數(shù)據(jù)流量的激增,數(shù)據(jù)的處理能力顯得不夠,受不了大流量數(shù)據(jù)的攻擊,往往成為系統(tǒng)性能的瓶頸。
●平臺(tái)本身易受攻擊由于網(wǎng)絡(luò)安全設(shè)備在整個(gè)計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)中位置的特殊性,它本身也是受攻擊最多的地方。黑客利用安全設(shè)備硬件本身固有的缺陷或者安全設(shè)備所使用操作系統(tǒng)的安全漏洞,使安全設(shè)備形同虛設(shè)。
所以,現(xiàn)在各種應(yīng)用對(duì)網(wǎng)絡(luò)安全設(shè)備提出了更高的要求性能穩(wěn)固高效,具有很強(qiáng)的抗攻擊能力。網(wǎng)絡(luò)安全設(shè)備在強(qiáng)壯性方面應(yīng)該具有的特點(diǎn)是高效性能對(duì)大量的網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行策略規(guī)定的安全檢查,在確保受保護(hù)系統(tǒng)安全的同時(shí),不會(huì)引起性能上的瓶頸。
強(qiáng)壯性平臺(tái)本身通過(guò)良好的設(shè)計(jì),具有較強(qiáng)抗攻擊能力,能經(jīng)受網(wǎng)絡(luò)大流量數(shù)據(jù)的沖擊,不會(huì)形成拒絕服務(wù)或系統(tǒng)崩潰。
現(xiàn)有機(jī)制并不能保證系統(tǒng)的入侵容忍能力,而系統(tǒng)付出的代價(jià)卻很大。本發(fā)明提出的這個(gè)方法可以不依賴(lài)于操作系統(tǒng),并最大程序地降低系統(tǒng)開(kāi)銷(xiāo)。我們知道,所有的網(wǎng)絡(luò)安全設(shè)備無(wú)一例外的需要接收和發(fā)送數(shù)據(jù)鏈路層的數(shù)據(jù)。本機(jī)制把以太網(wǎng)包作為判斷系統(tǒng)出錯(cuò)的單元,對(duì)接受到的以太網(wǎng)包按照順序打上標(biāo)簽,通過(guò)對(duì)標(biāo)簽的監(jiān)測(cè)了解系統(tǒng)處理以太網(wǎng)包的情況,一旦發(fā)現(xiàn)某個(gè)以太網(wǎng)包引起系統(tǒng)錯(cuò)誤,就使系統(tǒng)恢復(fù)到處理這個(gè)包之前的狀態(tài),并拋棄這個(gè)包,系統(tǒng)從下一個(gè)包開(kāi)始重新進(jìn)入工作狀態(tài)。
把入侵容忍機(jī)制建立在數(shù)據(jù)鏈路層,有以下優(yōu)點(diǎn)
●不依賴(lài)系統(tǒng)所使用的操作系統(tǒng)。
●因?yàn)椴粚?duì)數(shù)據(jù)作應(yīng)用層的分析,不建立特征數(shù)據(jù)庫(kù),進(jìn)行復(fù)雜的特征匹配運(yùn)算,所以系統(tǒng)開(kāi)銷(xiāo)很小。
下面將參照?qǐng)D5說(shuō)明數(shù)據(jù)鏈路層容錯(cuò)機(jī)制的實(shí)現(xiàn)方法。
網(wǎng)卡在接受到數(shù)據(jù)包后,會(huì)向上層系統(tǒng)發(fā)出一個(gè)中斷,中斷處理程序接收數(shù)據(jù)包,放在中斷接收緩沖區(qū)中,由系統(tǒng)進(jìn)行下一步處理。在本機(jī)制中●系統(tǒng)另外開(kāi)辟一個(gè)定長(zhǎng)的環(huán)形緩沖區(qū),長(zhǎng)度為len。(S210)●系統(tǒng)把中斷處理程序接收數(shù)據(jù)包同時(shí)另外拷貝一份到這個(gè)特殊的緩沖區(qū)中。(S220)●緩沖區(qū)設(shè)置兩個(gè)指針一個(gè)指針指向緩沖區(qū)中下一個(gè)要被上層程序取走進(jìn)行處理的數(shù)據(jù)包,記為np,上層程序從這里取走以太網(wǎng)包;另一個(gè)指針指向最新從中斷接收緩沖區(qū)中拷貝過(guò)來(lái)的包,記為kp,要求np<=kp mod len。(S230)●此緩沖區(qū)為定長(zhǎng)環(huán)形,接收中斷收到的數(shù)據(jù)包被拷貝過(guò)來(lái),如果kp+1 mod len=np,則丟棄該數(shù)據(jù)包,否則按順序放入該緩沖區(qū)中,本更新kp值指向該包。(S240)●系統(tǒng)監(jiān)測(cè)此緩沖區(qū),如果指針np在一段時(shí)間間隔后還沒(méi)有被更新,則認(rèn)為系統(tǒng)當(dāng)前處理的數(shù)據(jù)包使系統(tǒng)處于非正常狀態(tài)--實(shí)際有可能是其他更早的包--則使整個(gè)系統(tǒng)恢復(fù)于初始取包狀態(tài),系統(tǒng)重新運(yùn)行。(S250)接下來(lái)將說(shuō)明緩沖區(qū)大小和時(shí)間段的選取。
在這個(gè)機(jī)制中,很重要的參數(shù)是緩沖區(qū)大小和監(jiān)測(cè)緩沖區(qū)有無(wú)更新的間隔時(shí)間。
●如果緩沖區(qū)設(shè)置得大一些,可以保留較多中斷接收緩沖區(qū)中的包,減少系統(tǒng)重置引起的丟包現(xiàn)象,但也會(huì)付出較多的維護(hù)開(kāi)銷(xiāo);●如果緩沖區(qū)過(guò)小,系統(tǒng)進(jìn)入非正常狀態(tài)后,系統(tǒng)重置取包,會(huì)丟失大量正常的包,降低系統(tǒng)性能。
●如果時(shí)間檢查緩沖區(qū)指針有無(wú)移動(dòng)的時(shí)間間隔太長(zhǎng),有可能系統(tǒng)已經(jīng)處于非正常狀態(tài)較長(zhǎng)一段時(shí)間,并且引起系統(tǒng)非正常狀態(tài)的包已經(jīng)被置換出緩沖區(qū);●如果時(shí)間間隔太短,有可能系統(tǒng)上層包處理程序還在正常處理過(guò)程中,不但監(jiān)測(cè)任務(wù)重,還會(huì)產(chǎn)生不必要的重置行為。
由于以上技術(shù)上的難度,要找到合適的參數(shù)需要很多實(shí)驗(yàn)以獲得經(jīng)驗(yàn)值。
還可以基于輸入輸出隊(duì)列的機(jī)制來(lái)實(shí)現(xiàn)數(shù)據(jù)鏈路層容錯(cuò)機(jī)制。
圖6示出了另外一個(gè)有助于更好地掌握數(shù)據(jù)包的動(dòng)向的方法。同樣,網(wǎng)卡中斷處理程序接收數(shù)據(jù)包,放入中斷接收緩沖區(qū)中,等待處理。這時(shí)●系統(tǒng)另外開(kāi)辟一個(gè)定長(zhǎng)的環(huán)形緩沖區(qū),長(zhǎng)度為len;(S310)●系統(tǒng)把中斷處理程序接收數(shù)據(jù)包打上序號(hào)標(biāo)簽;(S320)●同時(shí)另外拷貝一份到這個(gè)特殊的緩沖區(qū)中。(S330)
本機(jī)制在把緩沖區(qū)數(shù)據(jù)包交給其他部分作處理時(shí),把包上的序號(hào)標(biāo)簽去掉。上層程序處理完畢后,會(huì)重新打成以太網(wǎng)包,本機(jī)制重新加上把此包交給上層時(shí)去掉的序號(hào)標(biāo)簽。
發(fā)送中斷處理程序把要發(fā)送的包的標(biāo)記和緩沖區(qū)中包的標(biāo)記作比較,如果一致,就把該包從緩沖區(qū)中刪除,并去掉該包的標(biāo)記,交給硬件處理。
這個(gè)方法中,以太網(wǎng)包的拆分與合并是必須要考慮的因素。
本發(fā)明提出的實(shí)現(xiàn)方法建立在新的體系結(jié)構(gòu)的基礎(chǔ)上??梢詾橄到y(tǒng)帶來(lái)很強(qiáng)的容錯(cuò)能力。它原理簡(jiǎn)單明了,實(shí)現(xiàn)方法容易,可以用于多種系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)中,為系統(tǒng)提供額外的容錯(cuò)能力。它的優(yōu)點(diǎn)是●能最快發(fā)現(xiàn)系統(tǒng)中的細(xì)小錯(cuò)誤;●可以做到最大限度地把錯(cuò)誤限制在一個(gè)范圍內(nèi);●很快消除錯(cuò)誤帶來(lái)的影響;●維持系統(tǒng)運(yùn)行,不會(huì)中斷服務(wù)。
從上面的描述可以看出,它和現(xiàn)有的系統(tǒng)的體系結(jié)構(gòu)可以做到完美兼容,獨(dú)立于現(xiàn)有各種機(jī)制之外,不會(huì)對(duì)系統(tǒng)其他機(jī)制造成干擾。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種計(jì)算機(jī)系統(tǒng),其特征在于,其能夠容忍運(yùn)行代碼錯(cuò)誤,其包括多個(gè)數(shù)據(jù)處理裝置,其中,每個(gè)所述數(shù)據(jù)處理裝置用于完成至少一個(gè)應(yīng)用功能,其獨(dú)占所述計(jì)算機(jī)系統(tǒng)的資源,運(yùn)行時(shí)分別占據(jù)隔離的內(nèi)存資源,以使所述多個(gè)數(shù)據(jù)處理裝置之間互不干擾,用于當(dāng)所述計(jì)算機(jī)系統(tǒng)出錯(cuò)時(shí),將錯(cuò)誤限制在出錯(cuò)的所述數(shù)據(jù)處理裝置內(nèi)部;以及監(jiān)控裝置,用于監(jiān)控所述多個(gè)數(shù)據(jù)處理裝置是否正常運(yùn)行,以及對(duì)所述多個(gè)數(shù)據(jù)處理裝置中發(fā)現(xiàn)異常的數(shù)據(jù)處理裝置進(jìn)行處理,其中,其通過(guò)以下操作判斷所述計(jì)算機(jī)系統(tǒng)內(nèi)所述多個(gè)數(shù)據(jù)處理裝置是否正常運(yùn)行設(shè)置輸入時(shí)間參數(shù)和/或輸出時(shí)間參數(shù),判斷所述多個(gè)數(shù)據(jù)處理裝置的輸入和/或輸出是否正常,如果所述監(jiān)控裝置發(fā)現(xiàn)所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)在所述輸入時(shí)間參數(shù)和/或所述輸出時(shí)間參數(shù)確定的時(shí)間范圍內(nèi)沒(méi)有輸入和/或輸出數(shù)據(jù),則判定所述數(shù)據(jù)處理裝置異常;以及其通過(guò)以下操作對(duì)所述多個(gè)數(shù)據(jù)處理裝置中發(fā)現(xiàn)異常的數(shù)據(jù)處理裝置進(jìn)行處理保存所述多個(gè)數(shù)據(jù)處理裝置的加電時(shí)初始狀態(tài),將所述異常的數(shù)據(jù)處理裝置恢復(fù)到所述監(jiān)控裝置所保存的所述異常數(shù)據(jù)處理裝置的所述加電時(shí)初始狀態(tài);以及當(dāng)所述監(jiān)控裝置判定所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)異常時(shí),判定所述異常數(shù)據(jù)處理裝置所處理的上一個(gè)數(shù)據(jù)異常,將所述異常數(shù)據(jù)丟棄;在將所述異常的數(shù)據(jù)處理裝置恢復(fù)到所述監(jiān)控裝置所保存的所述異常數(shù)據(jù)處理裝置的所述加電時(shí)初始狀態(tài)后,使恢復(fù)到所述加電時(shí)初始狀態(tài)的所述數(shù)據(jù)處理裝置處理下一個(gè)數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述監(jiān)控裝置判斷所述計(jì)算機(jī)系統(tǒng)內(nèi)所述多個(gè)數(shù)據(jù)處理裝置是否正常運(yùn)行還包括對(duì)所述多個(gè)數(shù)據(jù)處理裝置的調(diào)度機(jī)制進(jìn)行監(jiān)測(cè),如果發(fā)現(xiàn)所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)的調(diào)度不符合所述計(jì)算機(jī)系統(tǒng)中的預(yù)定機(jī)制,則判定所述數(shù)據(jù)處理裝置異常。
3.根據(jù)權(quán)利要求1或2所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述監(jiān)控裝置設(shè)置監(jiān)控時(shí)間參數(shù),用于調(diào)控安全監(jiān)管的級(jí)別,所述監(jiān)控時(shí)間參數(shù)規(guī)定了對(duì)所述監(jiān)控裝置對(duì)所述計(jì)算機(jī)系統(tǒng)進(jìn)行監(jiān)測(cè)的時(shí)間間隔,其中,通過(guò)增大所述監(jiān)控時(shí)間參數(shù),以降低所述安全監(jiān)管的級(jí)別;或者通過(guò)減小所述監(jiān)控時(shí)間參數(shù),以提高所述安全監(jiān)管的級(jí)別。
4.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括過(guò)濾裝置,連接在所述多個(gè)數(shù)據(jù)處理裝置與所述監(jiān)控裝置之間,其包括異常數(shù)據(jù)數(shù)據(jù)庫(kù),用于保存丟棄的所述異常數(shù)據(jù);以及所述過(guò)濾裝置用于在數(shù)據(jù)輸入所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)之前,將所述數(shù)據(jù)先與所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中保存的所述錯(cuò)誤數(shù)據(jù)進(jìn)行比較,如果所述數(shù)據(jù)和所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中的所述錯(cuò)誤數(shù)據(jù)中的一個(gè)一致,就判定所述數(shù)據(jù)是異常數(shù)據(jù),并丟棄所述異常數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的計(jì)算機(jī)系統(tǒng),其特征在于,并且當(dāng)所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中的所述異常數(shù)據(jù)的數(shù)量超過(guò)所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)所預(yù)定的數(shù)量時(shí),將所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中相關(guān)聯(lián)的所述異常數(shù)據(jù)進(jìn)行特征提取,并將所提取的特征代替所述異常數(shù)據(jù)存入所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中;以及所述過(guò)濾裝置用于在數(shù)據(jù)輸入所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)之前,將所述數(shù)據(jù)先與所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中保存的所述錯(cuò)誤數(shù)據(jù)和所提取的特征進(jìn)行比較,如果所述數(shù)據(jù)和所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中的所述錯(cuò)誤數(shù)據(jù)和所提取的特征中的一個(gè)一致,就判定所述數(shù)據(jù)是異常數(shù)據(jù),并丟棄所述異常數(shù)據(jù)。
6.一種計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)方法,其特征在于,其使所實(shí)現(xiàn)的計(jì)算機(jī)系統(tǒng)能夠容忍運(yùn)行代碼錯(cuò)誤,其包括以下步驟在所述計(jì)算機(jī)系統(tǒng)中,創(chuàng)建多個(gè)數(shù)據(jù)處理裝置,其中,每個(gè)所述數(shù)據(jù)處理裝置實(shí)現(xiàn)至少一個(gè)應(yīng)用功能,其獨(dú)占所述計(jì)算機(jī)系統(tǒng)的資源,以及運(yùn)行時(shí)分別占據(jù)隔離的內(nèi)存資源,以使所述多個(gè)數(shù)據(jù)處理裝置之間互不干擾,用于當(dāng)所述計(jì)算機(jī)系統(tǒng)出錯(cuò)時(shí),將錯(cuò)誤限制在出錯(cuò)的所述數(shù)據(jù)處理裝置內(nèi)部;監(jiān)控所述多個(gè)數(shù)據(jù)處理裝置是否正常運(yùn)行,以及對(duì)所述多個(gè)數(shù)據(jù)處理裝置中發(fā)現(xiàn)異常的數(shù)據(jù)處理裝置進(jìn)行處理,其中,通過(guò)以下步驟判斷所述計(jì)算機(jī)系統(tǒng)內(nèi)所述多個(gè)數(shù)據(jù)處理裝置是否正常運(yùn)行設(shè)置輸入時(shí)間參數(shù)和/或輸出時(shí)間參數(shù),判斷所述多個(gè)數(shù)據(jù)處理裝置的輸入和/或輸出是否正常,如果所述監(jiān)控裝置發(fā)現(xiàn)所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)在所述輸入時(shí)間參數(shù)和/或所述輸出時(shí)間參數(shù)確定的時(shí)間范圍內(nèi)沒(méi)有輸入和/或輸出數(shù)據(jù),則判定所述數(shù)據(jù)處理裝置異常;以及其通過(guò)以下操作對(duì)所述多個(gè)數(shù)據(jù)處理裝置中發(fā)現(xiàn)異常的數(shù)據(jù)處理裝置進(jìn)行處理保存所述多個(gè)數(shù)據(jù)處理裝置的加電時(shí)初始狀態(tài),將所述異常的數(shù)據(jù)處理裝置恢復(fù)到所保存的所述異常數(shù)據(jù)處理裝置的所述加電時(shí)初始狀態(tài);以及當(dāng)判定所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)異常時(shí),判定所述異常數(shù)據(jù)處理裝置所處理的上一個(gè)數(shù)據(jù)異常,將所述異常數(shù)據(jù)丟棄,在將所述異常的數(shù)據(jù)處理裝置恢復(fù)到所保存的所述異常數(shù)據(jù)處理裝置的所述加電時(shí)初始狀態(tài)后,使恢復(fù)到所述加電時(shí)初始狀態(tài)的所述數(shù)據(jù)處理裝置處理下一個(gè)數(shù)據(jù)。
7.根據(jù)權(quán)利要求7所述的方法,其特征在于,判斷所述計(jì)算機(jī)系統(tǒng)內(nèi)所述多個(gè)數(shù)據(jù)處理裝置是否正常運(yùn)行還包括對(duì)所述多個(gè)數(shù)據(jù)處理裝置的調(diào)度機(jī)制進(jìn)行監(jiān)測(cè),如果發(fā)現(xiàn)所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)的調(diào)度不符合所述計(jì)算機(jī)系統(tǒng)中的預(yù)定機(jī)制,則判定所述數(shù)據(jù)處理裝置異常。
8.根據(jù)權(quán)利要求6或7所述的方法,其特征在于,還包括設(shè)置監(jiān)控時(shí)間參數(shù),用于調(diào)控安全監(jiān)管的級(jí)別,所述監(jiān)控時(shí)間參數(shù)規(guī)定了對(duì)所述多個(gè)數(shù)據(jù)處理裝置進(jìn)行監(jiān)測(cè)的時(shí)間間隔,其中,通過(guò)增大所述監(jiān)控時(shí)間參數(shù),以降低所述安全監(jiān)管的級(jí)別;或者通過(guò)減小所述監(jiān)控時(shí)間參數(shù),以提高所述安全監(jiān)管的級(jí)別。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于,還包括對(duì)要輸入所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)的數(shù)據(jù)進(jìn)行預(yù)先過(guò)濾,其包括以下步驟建立異常數(shù)據(jù)數(shù)據(jù)庫(kù),用于保存丟棄的所述異常數(shù)據(jù);以及在數(shù)據(jù)輸入所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)之前,將所述數(shù)據(jù)先與所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中保存的所述錯(cuò)誤數(shù)據(jù)進(jìn)行比較,如果所述數(shù)據(jù)和所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中的所述錯(cuò)誤數(shù)據(jù)中的一個(gè)一致,就判定所述數(shù)據(jù)是異常數(shù)據(jù),并丟棄所述異常數(shù)據(jù)。
10.根據(jù)權(quán)利要求6所述的方法,其特征在于,當(dāng)所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中的所述異常數(shù)據(jù)的數(shù)量超過(guò)所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)所預(yù)定的數(shù)量時(shí),將所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中相關(guān)聯(lián)的所述異常數(shù)據(jù)進(jìn)行特征提取,并將所提取的特征代替所述異常數(shù)據(jù)存入所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中;以及在數(shù)據(jù)輸入所述多個(gè)數(shù)據(jù)處理裝置中的一個(gè)之前,將所述數(shù)據(jù)先與所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中保存的所述錯(cuò)誤數(shù)據(jù)和所提取的特征進(jìn)行比較,如果所述數(shù)據(jù)和所述異常數(shù)據(jù)數(shù)據(jù)庫(kù)中的所述錯(cuò)誤數(shù)據(jù)和所提取的特征中的一個(gè)一致,就判定所述數(shù)據(jù)是異常數(shù)據(jù),并丟棄所述異常數(shù)據(jù)。
全文摘要
本發(fā)明公開(kāi)了一種能夠容忍運(yùn)行代碼錯(cuò)誤的計(jì)算機(jī)系統(tǒng)及其實(shí)現(xiàn)方法,其中,該計(jì)算機(jī)系統(tǒng)是面向數(shù)據(jù)的,不關(guān)心代碼本身的對(duì)錯(cuò),而認(rèn)為引起系統(tǒng)出錯(cuò)的原因是某個(gè)數(shù)據(jù)。通過(guò)對(duì)系統(tǒng)中各個(gè)部分處理數(shù)據(jù)的情況進(jìn)行監(jiān)控和檢查,可以獲得系統(tǒng)運(yùn)行狀態(tài)的信息。系統(tǒng)某個(gè)部分進(jìn)行數(shù)據(jù)處理時(shí),如果出現(xiàn)非正?,F(xiàn)象,就認(rèn)為是該數(shù)據(jù)引起錯(cuò)誤,使該部分回到初始的起點(diǎn)重新運(yùn)行。
文檔編號(hào)G06F9/44GK1949167SQ20051011285
公開(kāi)日2007年4月18日 申請(qǐng)日期2005年10月14日 優(yōu)先權(quán)日2005年10月14日
發(fā)明者荊繼武, 杜皎, 王晶 申請(qǐng)人:中國(guó)科學(xué)院研究生院