東南大學(xué) 自動(dòng)化 實(shí)時(shí)系統(tǒng)與控制研討課報(bào)告.docx_第1頁
東南大學(xué) 自動(dòng)化 實(shí)時(shí)系統(tǒng)與控制研討課報(bào)告.docx_第2頁
東南大學(xué) 自動(dòng)化 實(shí)時(shí)系統(tǒng)與控制研討課報(bào)告.docx_第3頁
東南大學(xué) 自動(dòng)化 實(shí)時(shí)系統(tǒng)與控制研討課報(bào)告.docx_第4頁
東南大學(xué) 自動(dòng)化 實(shí)時(shí)系統(tǒng)與控制研討課報(bào)告.docx_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

實(shí)時(shí)系統(tǒng)中的容錯(cuò)技術(shù)呂陽 080111摘要 隨著實(shí)時(shí)計(jì)算技術(shù)的飛速發(fā)展,越來越多的安全關(guān)鍵應(yīng)用依賴實(shí)時(shí)系統(tǒng)作為核心控制部件,實(shí)時(shí)系統(tǒng)成為影響安全關(guān)鍵應(yīng)用性能和可靠性的決定性因素。顯然,提高實(shí)時(shí)系統(tǒng)的可靠性與提高實(shí)時(shí)系統(tǒng)的性能具有同樣重要的意義。隨著硬件可靠性的大幅度提高,實(shí)時(shí)軟件的可靠性成為限制系統(tǒng)可信性的瓶頸。容錯(cuò),作為保障實(shí)時(shí)軟件可靠性的重要技術(shù),已經(jīng)成為實(shí)時(shí)系統(tǒng)研究的熱點(diǎn)問題。本論文介紹了以冗余為基礎(chǔ)的容錯(cuò)技術(shù),并詳細(xì)講解了軟件冗余。關(guān)鍵詞: 實(shí)時(shí)系統(tǒng) 容錯(cuò) 冗余Abstract Due to the development of real-time systems, more and more safety-critical applications is becoming to use real-time system as the kernel of the control system, and real-time systems become an affectable factor to determine the dependability of the safety-critical application. The dependable techniques of hardware of real-time have become mature enough, which makes the software of real-time systems become the bottleneck of system dependability. As a very important technique for system reliability, software fault tolerance has become a very hot topic. This paper introduces the redundancy-based fault-tolerant technology.Explain in detail the software redundancy. Keyword: real-time system tolerance Redundancy 0引言 隨著實(shí)時(shí)計(jì)算技術(shù)的飛速發(fā)展,越來越多的安全關(guān)鍵應(yīng)用依賴實(shí)時(shí)系統(tǒng)作為核心控制部件,實(shí)時(shí)系統(tǒng)成為影響安全關(guān)鍵應(yīng)用性能和可靠性的決定性因素。容錯(cuò),作為保障實(shí)時(shí)系統(tǒng)可靠性的重要技術(shù),已經(jīng)成為實(shí)時(shí)系統(tǒng)研究的熱點(diǎn)問題。容錯(cuò)技術(shù)主要用于保證系統(tǒng)在出現(xiàn)錯(cuò)誤的情況下仍然能夠繼續(xù)運(yùn)行。本文研究的是系統(tǒng)層次上的容錯(cuò)技術(shù)。容錯(cuò)的基礎(chǔ)是冗余,數(shù)據(jù)差異性可以對冗余技術(shù)起到輔助作用。1冗余容錯(cuò)技術(shù)都會(huì)包含使用和適當(dāng)?shù)毓芾砣哂唷Q句話說,如果系統(tǒng)希望在某些部件出現(xiàn)故障的時(shí)候繼續(xù)運(yùn)行,那么它在開始運(yùn)行的時(shí)候必需具有冗余的能力。由于實(shí)時(shí)系統(tǒng)的故障中,暫時(shí)故障占大多數(shù),所以冗余技術(shù)就顯得很有效。硬件冗余硬件冗余是采用附加的硬件來彌補(bǔ)所發(fā)生的故障。硬件冗余的結(jié)構(gòu)有很多種,比較典型的是N模冗余(NMR)結(jié)構(gòu)。冗余是昂貴的,2或3倍的硬件是非常奢侈的。例:馮諾依曼提出了三重模塊冗余機(jī)制(TMR)。TMR 包括三個(gè)完全一致的運(yùn)算電路,三者的輸出與一個(gè)比較電路相連,采用少數(shù)服從多數(shù)的比較原則決定最終的輸出。比較電路進(jìn)行錯(cuò)誤檢測,并保證無錯(cuò)模塊的運(yùn)行不受出錯(cuò)模塊干擾,是 TMR 實(shí)現(xiàn)的關(guān)鍵。通常N模冗余系統(tǒng)都被設(shè)計(jì)成可以清除發(fā)生故障的單元。也就是當(dāng)檢測到故障的時(shí)候,會(huì)判斷這個(gè)故障是否是暫時(shí)性的,如果不是就隔開,換新的。時(shí)間冗余任務(wù)調(diào)度在時(shí)間上留有余地,這樣如果必要的話就可以運(yùn)行一些任務(wù),而不會(huì)超過嚴(yán)格的時(shí)間限。是后向錯(cuò)誤恢復(fù)的實(shí)現(xiàn)。最簡單的就是在錯(cuò)誤的地方重試,其他的方法還包括使計(jì)算回到前一個(gè)檢查點(diǎn),在那點(diǎn)繼續(xù)軟件冗余隨著軟件功能和性能的飛速提升,軟件變得越來越復(fù)雜,由于軟件設(shè)計(jì)缺陷或誤操作而引發(fā)的錯(cuò)誤也不斷提高。統(tǒng)計(jì)表明,大型實(shí)時(shí)系統(tǒng)中,由于軟件缺陷造成的系統(tǒng)失效是硬件缺陷的 10 倍。對于同一任務(wù)使用不同軟件,如果由不同的人員編寫就更好,這樣一個(gè)軟件出錯(cuò)的話,其他的還可以繼續(xù)工作。軟件冗余不是簡單把軟件復(fù)制N份,因?yàn)閷τ谙嗤妮斎?,這N份軟件都會(huì)產(chǎn)生錯(cuò)誤。所以這N個(gè)版本軟件必須是不同的。影響軟件各版本差異度的因素:1.編程語言2.使用的數(shù)值運(yùn)算法則3.程序員所受訓(xùn)練和他們素質(zhì)以及管理模式。運(yùn)行多版本軟件有兩種方法。一種叫N-版本程序,一種叫塊恢復(fù)方法。塊恢復(fù)(RB):程序體按照執(zhí)行順序分為主模塊和N-1 個(gè)備份模塊,通常 RB 的備份模塊數(shù)不超過三個(gè)。主模塊的運(yùn)算結(jié)果由驗(yàn)收測試檢驗(yàn),若結(jié)果通過測試,則輸出,否則運(yùn)行備份模塊。多版本技術(shù)(NVP):按 NMR 的基本原理,NVP 由多個(gè)具有相同功能的程序版本和比較(或投票)算法構(gòu)成。比較算法根據(jù)少數(shù)服從多數(shù)的原則選擇 NVP 的有效輸出。3軟件冗余實(shí)際應(yīng)用軌道車輛人機(jī)界面軟件冗余設(shè)計(jì)(1)電氣系統(tǒng)狀態(tài)顯示 此模塊實(shí)時(shí)地顯示連接到列車通信網(wǎng)絡(luò)中的各個(gè)電氣系統(tǒng)的狀態(tài)!列車通信網(wǎng)絡(luò)中連接的電氣系統(tǒng)很多,該功能模塊需要處理的數(shù)據(jù)比較多,而且電氣系統(tǒng)狀態(tài)的表現(xiàn)形式有很多種( 網(wǎng)壓等數(shù)據(jù)采用柱狀條來表示,設(shè)定速度等數(shù)據(jù)用數(shù)字的變化來表示等) ,因此電氣系統(tǒng)狀態(tài)顯示模塊的復(fù)雜度較高,單個(gè)版本不容易達(dá)到較高的可靠性!而電氣系統(tǒng)的狀態(tài)信息是司機(jī)把握列車當(dāng)前運(yùn)行狀況的重要依據(jù),因此該模塊具有很高的可靠性要求,必須對此模塊實(shí)施冗余設(shè)計(jì)!考慮到模塊本身的特點(diǎn),可以實(shí)施恢復(fù)塊技術(shù)!其冗余設(shè)計(jì)結(jié)構(gòu)如圖 2所示!進(jìn)入恢復(fù)塊之前,將當(dāng)前顯示的狀態(tài)存儲(chǔ)起來,若結(jié)果通過接受性測試,則顯示成功,進(jìn)行后續(xù)程序的運(yùn)行; 若結(jié)果沒有通過接受性測試,則用存儲(chǔ)的狀態(tài)重新進(jìn)行顯示,然后調(diào)用另一個(gè)恢復(fù)塊!當(dāng)兩個(gè)恢復(fù)塊都調(diào)用完后結(jié)果均沒有通過測試,則電氣系統(tǒng)狀態(tài)顯示功能模塊失效!(2)電氣系統(tǒng)控制 司機(jī)可以通過該模塊控制受電弓的升降空調(diào)的開關(guān)等,這些控制功能的錯(cuò)誤會(huì)直接影響列車的安全行駛旅客的舒適度,因此該模塊具有很高的可靠性要求!另一方面,該模塊可以控制的電氣系統(tǒng)較多,控制方式也不相同,因此這個(gè)模塊的復(fù)雜度較高,不容易達(dá)到較高的可靠性!采用3版本程序設(shè)計(jì)來提高這個(gè)模塊的可靠性!在軟件運(yùn)行過程中,當(dāng)司機(jī)按下控制某個(gè)電氣系統(tǒng)的軟鍵,則電氣系統(tǒng)控制功能模塊的3個(gè)版本都接收輸入,經(jīng)過處理,每個(gè)版本形成一個(gè)它認(rèn)為應(yīng)當(dāng)發(fā)送的電氣系統(tǒng)控制命令,通過多數(shù)選舉決定是否發(fā)控制消息,發(fā)什么控制消息!其冗余設(shè)計(jì)結(jié)構(gòu)如圖3所示。4結(jié)語本文討論了基于系統(tǒng)層次上的容錯(cuò)技術(shù)。以冗余為基礎(chǔ),介紹了硬件冗余,時(shí)間冗余,軟件冗余。并詳細(xì)講了,軟件冗余在軌道車輛人機(jī)界面上的應(yīng)用。由于實(shí)時(shí)系統(tǒng)的實(shí)時(shí)性,人們對于系統(tǒng)在時(shí)間限內(nèi)的錯(cuò)誤處理有較高的要求,但受限于系統(tǒng)成本和載重量的限制,無法真正做到零錯(cuò)誤。而且在硬實(shí)時(shí)系統(tǒng)中,錯(cuò)誤的發(fā)生將是災(zāi)難性的,我們?nèi)孕枰趯?shí)時(shí)容錯(cuò)領(lǐng)域不斷努力,將錯(cuò)誤的發(fā)生盡量減小,不僅在軟硬件的冗余方面有所突破,希望也可在調(diào)度方法上提高實(shí)時(shí)系統(tǒng)的容錯(cuò)。參考文獻(xiàn)實(shí)時(shí)系統(tǒng) C.M.Krishna Kang G.Shin 著 戴海瓊譯 清華大學(xué)出版社陳進(jìn)進(jìn) 鄭剛. 軌道車輛人機(jī)界面軟件冗余設(shè)計(jì)與可靠性分析. 計(jì)算機(jī)應(yīng)用與軟件,2011.12馮春輝. 艦船計(jì)算機(jī)測控系統(tǒng)中的軟件冗余方法研究. 艦船科學(xué)技術(shù),2009.4 實(shí)時(shí)系統(tǒng)問題回答08011111 呂陽1. 運(yùn)行中的軟件如何檢測故障?答:可以利用軟件任務(wù)的相對獨(dú)立性和優(yōu)先級(jí)不同進(jìn)行監(jiān)測,并確定發(fā)生故障的任務(wù)位置.1軟件監(jiān)視例行任務(wù)前臺(tái)例行任務(wù)優(yōu)先級(jí)最低,各任務(wù)模塊單獨(dú)或聯(lián)合設(shè)置運(yùn)行標(biāo)志(計(jì)數(shù)器),并離線測定最大運(yùn)行周期。每次運(yùn)行使標(biāo)志置位(或增減軟件計(jì)數(shù)值),由高優(yōu)先級(jí)定時(shí)中斷任務(wù)每隔一定周期定時(shí)檢查,運(yùn)行正常時(shí)則清除標(biāo)志(計(jì)數(shù)器),當(dāng)某一任務(wù)發(fā)生軟件局部故障(如死循環(huán),誤跳轉(zhuǎn)等),則在下一檢查周期內(nèi)無法完成規(guī)定的計(jì)數(shù)而測定其軟件故障。如例行任務(wù)為應(yīng)用控制計(jì)算,并采用功能模塊(內(nèi)部儀表)結(jié)構(gòu)時(shí),更為方便實(shí)用,可測定控制模塊內(nèi)部的全部軟件故障(圖1).其它結(jié)構(gòu)的例行任務(wù),也可按此合理設(shè)計(jì)調(diào)度管理模塊,使之方便地記錄各模塊運(yùn)行狀態(tài)。2合理使用WDT硬件 實(shí)時(shí)控制系統(tǒng)通常由基本實(shí)時(shí)中斷提供準(zhǔn)確的時(shí)鐘,以及必要的系統(tǒng)管理服務(wù)。一般由中斷程序定時(shí)輸出復(fù)位脈沖使硬件監(jiān)視定時(shí)器WDT復(fù)位實(shí)現(xiàn)中斷任務(wù)運(yùn)行監(jiān)視,但合理使用WDT使之不僅能監(jiān)視定時(shí)中斷處理,也能監(jiān)視更高優(yōu)先級(jí)的任務(wù)(如通信收、發(fā)報(bào)文處理)。圖2為采用可編程定時(shí)/計(jì)數(shù)器作為WDT時(shí),正確的中斷服務(wù)處理過程。其中T:為中斷服務(wù)程序運(yùn)行最大限時(shí),中斷服務(wù)過程異常超時(shí)則使WDT動(dòng)作;T:為定時(shí)中斷間隔最大限時(shí),當(dāng)更高優(yōu)先級(jí)任務(wù)占用CPU超時(shí)或其它任務(wù)異常使中斷關(guān)閉超時(shí)則WDT起作用。對于采用模擬電路wDT(如74LS123,NE555構(gòu)成RC定時(shí)的可重觸發(fā)式單穩(wěn)電路,適用于小型簡單系統(tǒng)),由于WDT限時(shí)由硬件RC確定,故必須在定時(shí)中斷返回之前輸出WDT復(fù)位信號(hào),以有效地監(jiān)視中斷處理任務(wù)。圖3為錯(cuò)誤的WDT使用方法,當(dāng)中斷處理任務(wù)較復(fù)雜時(shí),處理過程發(fā)生軟件故障則下次定時(shí)中斷仍可能響應(yīng),而wDT和例行任務(wù)異常輸出均不動(dòng)作,直到堆棧滋出系統(tǒng)崩潰。3適當(dāng)?shù)男畔⑷哂?可用于監(jiān)視重要的數(shù)據(jù)或程序區(qū),或可用于故障自動(dòng)恢復(fù)后的控制現(xiàn)場恢復(fù)。2. C/C+語言中定時(shí)任務(wù)實(shí)現(xiàn)方法?答:基于WM_TIMER消息的定時(shí): Windows提供了一個(gè)系統(tǒng)定時(shí)器,調(diào)用SetTimer()函數(shù)為程序分配一個(gè)定時(shí)器,應(yīng)用程序響應(yīng)SetTimer()函數(shù)發(fā)送來的消息WM)TIMER,在回調(diào)函數(shù)中完成相應(yīng)操作。windows系統(tǒng)定時(shí)器是IBMPC硬件和ROM BIOS構(gòu)造的定時(shí)器邏輯的一個(gè)相當(dāng)簡單的擴(kuò)展。PC的ROM初始化8253定時(shí)器芯片產(chǎn)生硬件中斷08H。中斷08H每隔541915 ms產(chǎn)生一次或1812次/s,所以Windows系統(tǒng)定時(shí)器的最小周期為55ms左右,即應(yīng)用程序每秒只能處理18個(gè)實(shí)時(shí)任務(wù)。此外,這個(gè)定時(shí)器消息的優(yōu)先級(jí)太低,只有在所有的消息(除了消息WM PAINT)被處理后才能被處理。因此setTimer()函數(shù)只能用于一般的定時(shí),它遠(yuǎn)遠(yuǎn)不能滿足定時(shí)周期較小和精確要求的應(yīng)用系統(tǒng)?;贕etTickCount()函數(shù)的定時(shí)在精度要求較高的情況下,如要求誤差不大于1ms時(shí),可以利用GetTickCount()函數(shù)。該函數(shù)的返回值是DWORD型,表示以ms為單位的計(jì)算機(jī)啟動(dòng)后經(jīng)歷的時(shí)間間隔。精度比WM)TIMER消息映射要高,在較短的定時(shí)中其計(jì)時(shí)誤差為15ms,在較長的定時(shí)中其計(jì)時(shí)誤差較小。但若定時(shí)時(shí)間太長,就可能出現(xiàn)死機(jī)一樣的現(xiàn)象, CPU占用率非常高,一般只能用于要求不高的延時(shí)程序中,如要求誤差不大于1ms的情況。下面的代碼可以實(shí)現(xiàn)50ms的精確定時(shí),其誤差小于1msDWORD dwStar,t dwStop; /起始值和中止值dwStop =GetTickCount();while(TRUE)dwStart= dwStop; /上一次的中止值變成新的起始值do dwStop =GetTickCount(); while(dwStop -50 dwStart);基于Query Performance Frequency( )和QueryPerformance Counter()的定時(shí)對于精確度要求很高的定時(shí)操作,可以使用Query Performance Frequency( )和Query Performance Counter()函數(shù)。這兩個(gè)函數(shù)是VC /C+提供的僅供windows95及其后續(xù)版本使用的精確時(shí)間系統(tǒng)函數(shù),并要求計(jì)算機(jī)從硬件上支持精確定時(shí)器。現(xiàn)在通用的計(jì)算機(jī)的軟硬件環(huán)境一般都支持該功能。該方法實(shí)現(xiàn)的精確定時(shí)器的具體工作機(jī)制是:首先調(diào)用Query Performance Frequency()函數(shù)獲得機(jī)器內(nèi)部定時(shí)器的時(shí)鐘頻率,然后在需要嚴(yán)格定時(shí)的事件發(fā)生之前和發(fā)生之后分別調(diào)用Query Performance counter()函數(shù),利用兩次獲得的計(jì)數(shù)之差及時(shí)鐘頻率,計(jì)算出事件經(jīng)歷的精確時(shí)間。其定時(shí)誤差不超過1us,精度與CPU等機(jī)器配置有關(guān)。3多核處理器軟件如何運(yùn)行(設(shè)計(jì)開發(fā))?答:當(dāng)設(shè)計(jì)要在多核或多處理器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論