專利名稱:基于3取2計算機系統(tǒng)的預執(zhí)行方法
技術領域:
本發(fā)明涉及一種基于3取2計算機系統(tǒng)的預執(zhí)行方法。
背景技術:
避錯和容錯技術是提高計算機系統(tǒng)可靠性的兩種主要技術手段。尤其是容錯技術,它是當系統(tǒng)中某些指定的硬件發(fā)生故障或軟件出現(xiàn)錯誤時,系統(tǒng)仍能正確地執(zhí)行規(guī)定的一組程序或算法,是構造高可靠和高安全計算機系統(tǒng)強有力的直接手段。三取二計算機系統(tǒng)就是采用容錯技術來實現(xiàn)其高可靠性、高安全性性能的,它是以“多數(shù)計算機的運行是正確的”為基礎,實行“少數(shù)服從多數(shù)的”的糾錯原理,即三臺計算機中只要有兩臺的輸出結果相同,系統(tǒng)就將該結果作為系統(tǒng)的正確輸出,這樣就可以屏蔽任意一個計算機的故障。在三取二計算機系統(tǒng)中,3臺進入運行狀態(tài)的計算機運行相同的應用程序,實現(xiàn)相同的數(shù)據處理流程,將其中間或最終數(shù)據結果進行比較,從而達到檢錯、容錯、提高系統(tǒng)可靠性的目的。為了保證3臺計算機在比較時刻所用的是同一次計算的結果,以維持冗余模塊計算數(shù)據的一致性,就必須使各冗余模塊計算任務的執(zhí)行進度相同。這種保持冗余模塊的相同任務具有相同的執(zhí)行進度的過程就是同步。同步技術是三取二系統(tǒng)故障檢測和恢復的前提和基礎。常見的同步方法有時鐘級同步、松散同步和任務級同步等。時鐘級同步是一種緊同步,可對各冗余模塊的時鐘級計算結果進行比較和表決, 因而具有故障發(fā)現(xiàn)及時、故障恢復快等優(yōu)點。松散同步是指系統(tǒng)中各冗余模塊在多個時鐘周期N -Tclock內(N為時鐘周期數(shù),Tclock為一個時間片或楨),使冗余模塊具有相同的執(zhí)行進度。采用這種方式的冗余模塊僅在時間片或楨邊界進行比較表決,維持數(shù)據一致性。任務同步是指系統(tǒng)中各冗余模塊在每個任務的操作系統(tǒng)調度周期內使冗余模塊具有相同的執(zhí)行進度。任務同步在冗余模塊中獨立運行,具有一定邏輯任務的一次執(zhí)行作為同步的基礎,在任務中設立1個或多個比較/表決點,對其中間結果和最終輸出結果進行表決, 維持冗余模塊任務級一致?!兑环N用于軌道交通的安全計算機平臺的設計與實現(xiàn)》采用了任務級同步方式,在一次執(zhí)行的任務中設立了 3個同步點和1個比較點,即輸入同步、結果分發(fā)同步、輸出同步和計算結果比較。3取2計算機擁有兩路輸入通道,而該算法只采用了其中的一路通道作為主通道,所以另一路只有在主通道發(fā)生故障的時候才啟用成為主通道。鑒于以上幾點,如何保障主通道輸入信息的正確性、如何檢測主通道的故障、如何減少因多次同步帶來的時間開銷就成為整個系統(tǒng)急需解決的問題。
發(fā)明內容
本發(fā)明提出的一種基于3取2計算機系統(tǒng)的預執(zhí)行方法,兩路輸入通道不分主次, 最大限度的保障了輸入通道傳輸信息的正確性、減少了因多次同步帶來的時間開銷,提高了 3取2系統(tǒng)的執(zhí)行效率。為了達到上述目的,本發(fā)明提供了一種基于3取2計算機系統(tǒng)的預執(zhí)行方法,該方法包含以下步驟
步驟1、信息輸入階段,每臺計算機判斷是否收到了輸入信息,若是,執(zhí)行步驟2 ; 步驟2、配置有輸入通道的計算機判斷輸入信息是否來自于本計算機的輸入通道,若是,將該輸入信息分發(fā)給其余兩臺計算機,然后執(zhí)行步驟3,若否,執(zhí)行步驟3 ;
步驟3、每臺計算機分別進行預執(zhí)行,執(zhí)行過程中判斷是否收到另一輸入通道的輸入信息,若是,執(zhí)行步驟4,若否,執(zhí)行步驟7 ;
步驟4、進行兩路輸入通道信息的比較,若一致,執(zhí)行步驟5,若不一致,執(zhí)行步驟6 ; 步驟5、清除緩存中保存的狀態(tài)、刪除定時器,并將該次輸入信息的執(zhí)行置為安全態(tài),執(zhí)行步驟8 ;
步驟6、刪除定時器、依據緩存中保存的狀態(tài)進行系統(tǒng)恢復,S卩,不執(zhí)行該輸入信息,執(zhí)行步驟1 ;
步驟7、判斷定時器中設置的時間是否到期,如未到期則等待到期,如到期則將另一輸入通道的故障次數(shù)加1,并清除緩存中保存的狀態(tài)、刪除定時器,將該次輸入信息置為安全態(tài),執(zhí)行步驟8 ;
步驟8、信息待輸出階段,每臺計算機將自己的計算結果向3取2系統(tǒng)中的另外兩臺機器進行分發(fā),同時接收來自另外兩臺計算機的計算結果;
步驟9、每臺計算機都對三個計算結果進行比較,若比較結果中有2者相同,則計算結果合法,執(zhí)行步驟10 ;
步驟10、信息輸出階段,每臺計算機將待輸出的信息發(fā)送給配置有輸出通道的計算機 (若本計算機有輸出通道也包括自己);
步驟11、配置有輸出通道的計算機在正常情況下會收到3份同樣的輸出信息,當接收到第一份的時候則進行輸出,另外兩份則直接拋棄,不作處理。所述的步驟3包含以下步驟
步驟3. 1、假設輸入信息正確,開始基于該輸入信息的程序預執(zhí)行; 步驟3. 2、啟動定時器,對該輸入信息開始計時,如超過一個時間計數(shù)值,則視為超時; 步驟3. 3、保存基于該輸入信息的程序預執(zhí)行過程中所改變的全局變量,并將兩者對應關聯(lián)起來。所述的步驟7中,如某通道的故障次數(shù)達到3次,則將該通道置為故障狀態(tài),系統(tǒng)進入1輸入通道狀態(tài)。本發(fā)明最大限度的保障了輸入通道傳輸信息的正確性、減少了因多次同步帶來的時間開銷,提高了 3取2系統(tǒng)的執(zhí)行效率。
圖1是3取2計算機系統(tǒng)的示意圖2是3取2計算機系統(tǒng)輸入信息分發(fā)的示意圖; 圖3是3取2計算機系統(tǒng)待輸出信息分發(fā)的示意圖; 圖4是3取2計算機系統(tǒng)輸出信息分發(fā)的示意圖。
具體實施方式
以下根據圖1 圖4,具體說明本發(fā)明的較佳實施例
如圖1所示,是3取2計算機系統(tǒng)的示意圖,輸入通道1連接計算機A,輸入通道2連接計算機B,輸出通道1連接計算機A,輸出通道2連接計算機B,計算機C未連接輸入通道和輸出通道。本發(fā)明提供了一種基于3取2計算機系統(tǒng)的預執(zhí)行方法,該方法包含以下步驟 步驟1、信息輸入階段,每臺計算機判斷是否收到了輸入信息,若是,執(zhí)行步驟2 ; 步驟2、配置有輸入通道的計算機判斷輸入信息是否來自于本計算機的輸入通道,若
是,將該輸入信息分發(fā)給其余兩臺計算機(如圖2所示),然后執(zhí)行步驟3,若否,執(zhí)行步驟3 ; 步驟3、每臺計算機分別進行預執(zhí)行,執(zhí)行過程中判斷是否收到另一輸入通道的輸入信息,若是,執(zhí)行步驟4,若否,執(zhí)行步驟7 ;
步驟3. 1、假設輸入信息正確,開始基于該輸入信息的程序預執(zhí)行; 步驟3. 2、啟動定時器,對該輸入信息開始計時,如超過一個時間計數(shù)值,則視為超時, 該時間計數(shù)值的設置需要考慮通信總線兩路輸入之間傳輸時間的差異以及分布式計算機因為系統(tǒng)調度策略所造成的程序執(zhí)行時間差異;
步驟3. 3、保存基于該輸入信息的程序預執(zhí)行過程中所改變的全局變量,并將兩者對應關聯(lián)起來。步驟4、進行兩路輸入通道信息的比較,若一致,執(zhí)行步驟5,若不一致,執(zhí)行步驟 6 ;
步驟5、清除緩存中保存的狀態(tài)、刪除定時器,并將該次輸入信息的執(zhí)行置為安全態(tài),執(zhí)行步驟8 ;
步驟6、刪除定時器、依據緩存中保存的狀態(tài)進行系統(tǒng)恢復,S卩,不執(zhí)行該輸入信息,執(zhí)行步驟1 ;
步驟7、判斷定時器中設置的時間是否到期,如未到期則等待到期,如到期則將另一輸入通道的故障次數(shù)加1,并清除緩存中保存的狀態(tài)、刪除定時器,將該次輸入信息置為安全態(tài),執(zhí)行步驟8 ;
如某通道的故障次數(shù)達到3次,則將該通道置為故障狀態(tài),系統(tǒng)進入1輸入通道狀態(tài); 步驟8、信息待輸出階段,每臺計算機將自己的計算結果向3取2系統(tǒng)中的另外兩臺機器進行分發(fā),同時接收來自另外兩臺計算機的計算結果(如圖3所示);
步驟9、每臺計算機都對三個計算結果進行比較,若比較結果中有2者相同,則計算結果合法,執(zhí)行步驟10 ;
步驟10、信息輸出階段,每臺計算機將待輸出的信息發(fā)送給配置有輸出通道的計算機 (若本計算機有輸出通道也包括自己)(如圖4所示);
步驟11、配置有輸出通道的計算機在正常情況下會收到3份同樣的輸出信息,當接收到第一份的時候則進行輸出,另外兩份則直接拋棄,不作處理。本發(fā)明主要提出了兩點技術上的創(chuàng)新 1、兩路輸入通道不分主次
兩路輸入通道不分主次,在兩路通道都有信息輸入的情況下,需要進行一致性比較,輸入信息才合法;在只有一路通道有信息輸入的情況下,正常的一路需要等待一個系統(tǒng)設定的時間后,輸入信息才合法得以繼續(xù)執(zhí)行,如果連續(xù)3次等待,則設定另一路通道故障,系統(tǒng)則變?yōu)橐宦份斎胪ǖ赖臓顟B(tài)。這樣的設計方式避免了因為主通道輸入信息錯誤而導致系統(tǒng)程序的錯誤執(zhí)行。2、基于預執(zhí)行的3取2方法
技術領域:
本發(fā)明設計了一種基于預執(zhí)行的2次同步,2次比較的方法分別為一次輸入同步、一次待輸出信息同步和一次輸入信息比較、一次待輸出信息比較。預執(zhí)行是指當系統(tǒng)接收到輸入信息后,先假設該輸入信息是正確的,開始進行基于此輸入的程序執(zhí)行,并記錄執(zhí)行過程中所改變的狀態(tài),在執(zhí)行過程中進行輸入信息同步和輸入信息比較過程,所以這一次同步和一次比較是“偽”同步和“偽”比較,在輸入信息正確的前提下,“偽”同步和“偽”比較所帶來的系統(tǒng)開銷就減低到最小。盡管本發(fā)明的內容已經通過上述優(yōu)選實施例作了詳細介紹,但應當認識到上述的描述不應被認為是對本發(fā)明的限制。在本領域技術人員閱讀了上述內容后,對于本發(fā)明的多種修改和替代都將是顯而易見的。因此,本發(fā)明的保護范圍應由所附的權利要求來限定。
權利要求
1.一種基于3取2計算機系統(tǒng)的預執(zhí)行方法,其特征在于,該方法包含以下步驟 步驟1、信息輸入階段,每臺計算機判斷是否收到了輸入信息,若是,執(zhí)行步驟2 ; 步驟2、配置有輸入通道的計算機判斷輸入信息是否來自于本計算機的輸入通道,若是,將該輸入信息分發(fā)給其余兩臺計算機,然后執(zhí)行步驟3,若否,執(zhí)行步驟3 ;步驟3、每臺計算機分別進行預執(zhí)行,執(zhí)行過程中判斷是否收到另一輸入通道的輸入信息,若是,執(zhí)行步驟4,若否,執(zhí)行步驟7 ;步驟4、進行兩路輸入通道信息的比較,若一致,執(zhí)行步驟5,若不一致,執(zhí)行步驟6 ; 步驟5、清除緩存中保存的狀態(tài)、刪除定時器,并將該次輸入信息的執(zhí)行置為安全態(tài),執(zhí)行步驟8 ;步驟6、刪除定時器、依據緩存中保存的狀態(tài)進行系統(tǒng)恢復,S卩,不執(zhí)行該輸入信息,執(zhí)行步驟1 ;步驟7、判斷定時器中設置的時間是否到期,如未到期則等待到期,如到期則將另一輸入通道的故障次數(shù)加1,并清除緩存中保存的狀態(tài)、刪除定時器,將該次輸入信息置為安全態(tài),執(zhí)行步驟8 ;步驟8、信息待輸出階段,每臺計算機將自己的計算結果向3取2系統(tǒng)中的另外兩臺機器進行分發(fā),同時接收來自另外兩臺計算機的計算結果;步驟9、每臺計算機都對三個計算結果進行比較,若比較結果中有2者相同,則計算結果合法,執(zhí)行步驟10;步驟10、信息輸出階段,每臺計算機將待輸出的信息發(fā)送給配置有輸出通道的計算機, 若本計算機有輸出通道也包括自己;步驟11、配置有輸出通道的計算機在正常情況下會收到3份同樣的輸出信息,當接收到第一份的時候則進行輸出,另外兩份則直接拋棄,不作處理。
2.如權利要求1所述的基于3取2計算機系統(tǒng)的預執(zhí)行方法,其特征在于,所述的步驟 3包含以下步驟步驟3. 1、假設輸入信息正確,開始基于該輸入信息的程序預執(zhí)行; 步驟3. 2、啟動定時器,對該輸入信息開始計時,如超過一個時間計數(shù)值,則視為超時; 步驟3. 3、保存基于該輸入信息的程序預執(zhí)行過程中所改變的全局變量,并將兩者對應關聯(lián)起來。
3.如權利要求1所述的基于3取2計算機系統(tǒng)的預執(zhí)行方法,其特征在于,所述的步驟 7中,如某通道的故障次數(shù)達到3次,則將該通道置為故障狀態(tài),系統(tǒng)進入1輸入通道狀態(tài)。
全文摘要
一種基于3取2計算機系統(tǒng)的預執(zhí)行方法,兩路輸入通道不分主次,在兩路通道都有信息輸入的情況下,需要進行一致性比較,輸入信息才合法;在只有一路通道有信息輸入的情況下,正常的一路需要等待一個系統(tǒng)設定的時間后,輸入信息才合法得以繼續(xù)執(zhí)行。這樣避免了因為兩路通道輸入信息錯誤而導致系統(tǒng)程序的錯誤執(zhí)行。本發(fā)明采用一次輸入同步、一次待輸出信息同步和一次輸入信息比較、一次待輸出信息比較。當系統(tǒng)接收到輸入信息后,先假設該輸入信息是正確的,開始進行基于此輸入的程序執(zhí)行,并記錄執(zhí)行過程中所改變的狀態(tài),在執(zhí)行過程中進行輸入信息同步和輸入信息的“偽”同步和“偽”比較,在輸入信息正確的前提下,所帶來的系統(tǒng)開銷就減低到最小。
文檔編號G06F11/00GK102193835SQ20111007315
公開日2011年9月21日 申請日期2011年3月25日 優(yōu)先權日2011年3月25日
發(fā)明者崔衛(wèi)麒, 林輝, 毛祺, 談長青, 謝冕, 陳義軍, 陳曉萍 申請人:上海磁浮交通發(fā)展有限公司, 上海磁浮交通工程技術研究中心