<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 雙機容錯實(shí)時(shí)嵌入式系統設計與分析

雙機容錯實(shí)時(shí)嵌入式系統設計與分析

作者: 時(shí)間:2005-11-25 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:為滿(mǎn)足對安全關(guān)鍵領(lǐng)域日益增長(cháng)的可靠性需求,提出一種基于松耦合多處理器體系結構的方案。該方案無(wú)縫整合了計算機硬件級、操作級、應用級的技術(shù),以達到從整體上提高可靠性的目的。


關(guān)鍵詞: 熱備份 可靠性 系統

引 言

  系統的基本特性是任務(wù)響應時(shí)間的確定和系統處理任務(wù)的高吞吐量。相對于其他計算機系統而言,實(shí)時(shí)系統對可靠性和防危要求十分嚴格。特別是所謂的安全關(guān)鍵系統SCS(Safety Critical Systems),這類(lèi)系統失效,將帶來(lái)災難性的后果。在實(shí)時(shí)系統的運行過(guò)程中,容錯是最重要的可靠性保障手段。

  容錯實(shí)時(shí)系統的研究主要集中在兩個(gè)方面[1]:① 改進(jìn)實(shí)時(shí)調度算法,使之確保實(shí)時(shí)任務(wù)在正常運行和遇到錯誤時(shí),均能在規定時(shí)限到來(lái)以前獲得正確的輸出。② 將過(guò)去應用于普通計算機系統中的冗余容錯策略移植到實(shí)時(shí)系統中。

  在具有硬件容錯能力的計算機系統中,其失效65%來(lái)自軟件[2],僅有8%來(lái)自于硬件。因此,軟件容錯能力成為決定計算機系統可靠性的關(guān)鍵。為了在出現硬件或軟件的暫時(shí)或永久故障的情況下,保證關(guān)鍵任務(wù)仍能在規定的時(shí)限范圍內完成運算,并輸出正確的結果,提出一種雙處理器實(shí)時(shí)嵌入式容錯系統體系結構。該系統結構采用多處理器體系結構,實(shí)現計算機之間的通信,并無(wú)縫整合了計算機硬件、操作系統、應用軟件級的軟件容錯,達到從整體上提高系統可靠性的目的。

1 容錯實(shí)時(shí)系統的體系結構

  本系統采用圖1所示的雙機容錯系統硬件結構模型。該系統在雙機比較系統的基礎上,結合多處理機的松耦合與緊耦合系統結構,在不同的處理機間通過(guò)通道互連實(shí)現通信,為在硬件容錯中結合軟件容錯提供可能。

      
                圖1 雙機容錯系統結構模型

  A機和B機各有獨自的外圍控制邏輯和外設,這樣不會(huì )引起系統資源的競爭,增加整體系統的穩定性。當然,這樣是以花費更多的硬件設施為代價(jià)的。比較器及不一致檢測用專(zhuān)門(mén)的仲裁檢測電路來(lái)實(shí)現,其根據A機與B機周期向其發(fā)送的自檢測信號來(lái)判斷A機系統和B機系統運行的狀況。

  雙機系統的運行狀態(tài)如下:
 ?、?如果A機與B機均正常運行,則將計算機A作為主系統,計算機B作為備份使用,A機的運行結果作為系統輸出,A機運行到檢測點(diǎn),向B機發(fā)送日志,B機更新日志列表。
 ?、?如果A機正常而B(niǎo)機故障,亦將A機的運行結果作為系統輸出,同時(shí)將B機的運行故障狀態(tài)報告給A機,并向B機進(jìn)行復位控制操作。
 ?、?如果A機故障,B機正常,則進(jìn)行開(kāi)關(guān)切換操作,B機進(jìn)行系統備份任務(wù)重調度,B機運行結果作為系統輸出,并向A機進(jìn)行復位控制操作,在檢測點(diǎn)更新A機日志,保持需要備份的任務(wù)狀態(tài)一致。

2 軟件設計與實(shí)現

  圖2所示模型結合嵌入式實(shí)時(shí)系統的體系結構,采用層次結構和模塊結構相結合,無(wú)縫整合了計算機硬件、操作系統、應用軟件級的軟件容錯設計。在整體上采用分層的結構模型,克服了軟、硬件分離和脫節的問(wèn)題,提高系統的靈活性和可移植性。模型的每一層均可以看作是一個(gè)相對獨立的系統。在每一層中按照系統功能,劃分不同的功能模塊。

    
                圖2 雙機容錯系統軟件體系結構

  該系統采用對稱(chēng)結構,為支持容錯處理,每個(gè)節點(diǎn)從下到上分為3個(gè)主要部分,即MCFT(Multiprocessor Communication for Fault?Tolerance)、RTOS系統級容錯組件、任務(wù)級動(dòng)態(tài)冗余組件。

  2.1 多機容錯通信模塊MCFT

  在操作系統與硬件之間加入MCFT層,MCFT作為BSP(Board Support Package)的一部分,作為硬件平臺的抽象層,為操作系統提供統一的界面,提高系統的可移植性。有容錯需求的任務(wù),通過(guò)MCFT所提供的功能傳遞日志,保持主系統和備份系統的關(guān)鍵任務(wù)的狀態(tài)和數據一致。MCFT屏蔽了底層通信的具體實(shí)現細節,使系統的實(shí)現與連接介質(zhì)無(wú)關(guān)。

  MPFT管理著(zhù)一些數據包,并且在各個(gè)節點(diǎn)之間發(fā)送和接收這些數據包,數據包的結構如下:
  typedef struct{?
    MP_packet_Classes the_class;?
    Ob jects_Id id;?
    Ob jects_Id source_tid;?
    Priority_Control source_priority;?
    unsigned32 return_code;?
    unsigned32 length;?
    unsigned32 to_convert;?
    Watchdog_Interval timeout;?
    }MP_packet_Prefix;?

  2.2 RTOS系統級容錯組件

  RTOS系統級容錯組件,包括系統內核級容錯支持組件、系統自診斷組件和主/備用機切換支持組件。

  (1) 內核級容錯支持組件

  為支持操作系統級和應用級通信,在該系統中,每個(gè)節點(diǎn)上保存兩個(gè)對象表,一個(gè)本地任務(wù)表,一個(gè)容錯任務(wù)表。本地任務(wù)表在每個(gè)節點(diǎn)上都是不同的,它包含在此節點(diǎn)上創(chuàng )建的所有任務(wù)。容錯對象表包含系統中所有的容錯任務(wù),在所有節點(diǎn)上是一樣的。為保持在所有節點(diǎn)上容錯任務(wù)表的一致性,每個(gè)節點(diǎn)對容錯對象的創(chuàng )建、刪除等都必須通知給備份節點(diǎn)。利用檢查點(diǎn)技術(shù)和傳遞日志法,保持主系統和備份系統的備份任務(wù)的狀態(tài)和數據一致。一旦主機發(fā)生故障,系統程序自動(dòng)進(jìn)行主/備用機切換,備用機系統使備份任務(wù)就緒,利用實(shí)時(shí)任務(wù)的調度策略,使備份任務(wù)在備份機上發(fā)生重調度,成為主機。

  (2) 系統自診斷組件

  如圖3所示,系統中采用自診斷的方法來(lái)診斷系統級的故障,用任務(wù)級的檢測來(lái)診斷應用級的故障。

  自診斷劃分為幾個(gè)不同的測試階段,系統啟動(dòng)自檢測階段和周期自檢測階段。自動(dòng)啟動(dòng)診斷的因素有:主/備用機定時(shí)切換和主機發(fā)生故障。周期自檢測階段根據系統需求,周期性檢測外設和通信口。每個(gè)階段對應設備的幾種功能塊,包括CPU的自診斷、中斷響應自診斷、串口自診斷、定時(shí)器自診斷、離散量自診斷、RAM自診斷等。

  由于結果比較是實(shí)時(shí)系統中任何事務(wù)處理都需要經(jīng)歷的步驟,因此把任務(wù)級的故障檢測放到結果判別部分進(jìn)行。

  (3) 主/備用機切換支持組件

  仲裁檢測電路中對主/備用機設置了“看門(mén)狗”監視器。當主/備用機處于正常工作狀態(tài)時(shí),運行于CPU上的某一任務(wù)周期性地對“看門(mén)狗”施加復位信號,這樣,“看門(mén)狗”計數器就不可能產(chǎn)生溢出觸發(fā)信號;當CPU出現故障時(shí),“看門(mén)狗”會(huì )輸出一個(gè)離散觸發(fā)信號并發(fā)出報警,此時(shí),系統進(jìn)行自動(dòng)切換,讓備用的系統機工作。


                      圖3 主控流程

  2.3 任務(wù)級動(dòng)態(tài)冗余

  在實(shí)時(shí)多任務(wù)系統中,采用另一種軟件冗余方法――任務(wù)級動(dòng)態(tài)冗余[3]。任務(wù)級動(dòng)態(tài)冗余方法是實(shí)時(shí)系統中瞬間故障的恢復方法之一。

  在實(shí)時(shí)多任務(wù)的環(huán)境下,充分利用操作系統提供的功能,對各個(gè)基本任務(wù)建立后備任務(wù)作為冗余,并對后備任務(wù)進(jìn)行容錯調度,從而起到類(lèi)似于重試或卷回恢復的作用。利用檢查點(diǎn)技術(shù)和傳遞日志法保持主系統和備份系統的狀態(tài)的一致性,實(shí)現錯誤恢復,有較高的性?xún)r(jià)比。
  
  根據應用程序,結合實(shí)時(shí)性要求,采用以下的措施:

 ?、?把應用程序分解成多個(gè)任務(wù),任務(wù)以過(guò)程的形式出現,各個(gè)任務(wù)進(jìn)入運行的順序是從1到?n,并在每個(gè)任務(wù)的最后設置檢查點(diǎn),傳遞日志。
 ?、?根據應用程序的要求事先給各個(gè)任務(wù)安排優(yōu)先級,使得任務(wù)可以根據要求及時(shí)占有處理器,實(shí)現實(shí)時(shí)處理。
 ?、?為各基本任務(wù)準備一個(gè)后備任務(wù)存放在內存中,平時(shí)后備任務(wù)不建立,不占有系統資源,僅在需要時(shí)才激活使用,后備任務(wù)的優(yōu)先級比相應的優(yōu)先級要高。馬上建立就搶占執行,是某種意義上的重試或程序卷回。
 ?、?為實(shí)現恢復功能的后備任務(wù),可以和原有任務(wù)完全一樣,也可以是替換算法。

  下面的算法能為各個(gè)任務(wù)產(chǎn)生容錯調度,從而實(shí)現任務(wù)冗余:

  Step1: 建立任務(wù) T1,T2,…,Tn;??
  Step2: while N=1;N=Nmax;?
?   N=N+1; ?
    運行任務(wù)Ti; ?
    檢測Ti的結果; ?
    IF結果通過(guò)THEN輸出結果,刪除任務(wù)Ti; ?
    ELSE激活任務(wù)Ti
   ??;break; ?
    END
  Step3:N>Nmax 系統報警

  當后備任務(wù)執行了Nmax次之后還通不過(guò)檢測,就認為系統出現永久故障,系統報警。Nmax是個(gè)閥門(mén)值,是由實(shí)時(shí)要求所決定的。

3 可靠性

  在考慮了雙機的切換問(wèn)題(包括切入成功率,與此相關(guān)的切入時(shí)間和再次切入的時(shí)間及其故障判別問(wèn)題)后,完整的雙機容錯系統的穩態(tài)可用度為[4]

        

  其中:λ為平均失效率,β為故障診斷率,是平均診斷時(shí)間的倒數;μ為平均維修率,是平均維修時(shí)間的倒數;α為加入失效率,是平均切入時(shí)間的倒數;C為故障判別率;α′為再次切入失效率,是再次切入時(shí)間的倒數(重啟雙工時(shí)間的倒數);D為切入成功率。

  采用對稱(chēng)雙機系統,在典型值的計算中可以獲得99.999 95%的可用度。

4 結論?

  隨著(zhù)實(shí)時(shí)系統在安全領(lǐng)域內越來(lái)越多的應用,可靠性已經(jīng)成為衡量系統優(yōu)劣的重要因素之一。傳統的實(shí)時(shí)系統容錯只滿(mǎn)足了系統某一方面的容錯需求。為了在出現硬件或軟件的暫時(shí)或永久故障的情況下,系統仍能在規定的時(shí)限范圍內完成運算,并輸出正確的結果,本文提出一個(gè)軟、硬件結合的完整的解決方案,能滿(mǎn)足系統的強實(shí)時(shí)性、高可靠性、服務(wù)不斷流的要求。此方案應用于RTEMS中,具有很高的可靠性。

                參考文獻

1 陳宇. 高可靠容錯實(shí)時(shí)系統的支撐技術(shù)研究:[博士研究生論文]. 成都:電子科技大學(xué),2003-05
2 Kim K. The Distrubuted Recovery Block Scheme, in Software Fault Tolerance, M.R.Lyu, ed. Wiley,1995:189~2104?
3 KrishnaC, Shin K. On Scheduling Tasks with a Quick Recovery from Failure. IEEE Trans. Computer.May,1986, C-35:448~454?
4 金士堯,胡華平,李宏亮. 具有容錯結構的高可用計算機雙系統研究.中國工程科學(xué),1999,1 (3) : 46~50


陳筠:碩士研究生,主要研究方向為嵌入式多處理器操作系統、嵌入式可靠性技術(shù)。桑楠:副教授,主要研究方向為可信性計算理論與應用。熊光澤:教授,博士生導師,主要研究方向為實(shí)時(shí)計算系統與應用。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>