朱怡安, 史佳龍
(西北工業(yè)大學 計算機學院, 陜西 西安 710072)
基于補償回滾的操作系統(tǒng)故障自恢復技術
朱怡安, 史佳龍
(西北工業(yè)大學 計算機學院, 陜西 西安710072)
摘要:操作系統(tǒng)故障根據(jù)傳播特性可分為process-local和kernel-global 2類,分別造成進程局部數(shù)據(jù)和內核全局狀態(tài)的錯誤。現(xiàn)有技術通過重啟系統(tǒng)或故障進程實現(xiàn)對進程局部數(shù)據(jù)錯誤的恢復,但未考慮內核全局狀態(tài)的不一致問題,不能保證對kernel-global類型故障的恢復效果。針對以上問題,提出了一種基于補償回滾的故障自恢復技術。該技術通過監(jiān)測內核全局方法調用,在進程局部數(shù)據(jù)被正確恢復的前提下,利用補償操作對不一致的內核全局狀態(tài)進行恢復,控制了故障的傳播效應,減小了單點故障造成的影響。此外,該技術以內核模塊的形式實現(xiàn),不需要對目標操作系統(tǒng)進行修改,可便捷地實現(xiàn)功能擴展和移植。故障注入實驗結果表明,在保證系統(tǒng)功能正常的前提下,該技術能對91.6%的故障進行有效恢復,且?guī)淼南到y(tǒng)負載較小。
關鍵詞:操作系統(tǒng);內核補償;進程狀態(tài)回滾;故障自恢復
操作系統(tǒng)作為重要的系統(tǒng)軟件之一,負責管理軟硬件資源,為系統(tǒng)軟硬件交互提供接口,充當TCB(trusting computing base)的角色[1]。在軟件系統(tǒng)的開發(fā)過程中,操作系統(tǒng)大都以COTS(commercial off-the-shelf)的形式提供[2]。由于操作系統(tǒng)與上層的應用軟件和底層硬件均存在耦合交互,軟硬件故障均會影響其運行狀態(tài),對其進行故障診斷、定位和恢復難度較大。故障自恢復技術可以使操作系統(tǒng)及時發(fā)現(xiàn)故障,并采取一定策略恢復系統(tǒng)正常執(zhí)行狀態(tài)。這對于減少系統(tǒng)失效時間和數(shù)據(jù)狀態(tài)丟失,提高整體系統(tǒng)可靠性、減少故障損失具有重要作用[3]。
1相關研究
操作系統(tǒng)在出現(xiàn)嚴重內部錯誤時大都采取fail-stop行為模式,如Windows的藍屏和Linux的kernel panic狀態(tài),因此故障的出現(xiàn)等價于系統(tǒng)失效。研究[4]將操作系統(tǒng)故障根據(jù)其傳播范圍分為process-local和kernel-global 2類。其中process-local類型故障的影響范圍僅限于故障進程上下文,而kernel-global類型故障則會影響到其他進程的執(zhí)行上下文和全局數(shù)據(jù)結構。由于kernel-global類型故障不僅會帶來進程數(shù)據(jù)的丟失,還會引起系統(tǒng)其他模塊甚至整體的失效,故其故障危害要大于process-local故障。如Linux 內核,其本身存在很多防范機制,包括對指針數(shù)據(jù)結構的檢查,在發(fā)現(xiàn)數(shù)據(jù)不一致時終止故障進程的執(zhí)行。該類機制雖然可以縮小錯誤傳播的范圍,控制故障的傳播,但進程功能的失效也是不可接受的[5]?;谝陨戏治?,故障恢復策略應該在完成進程執(zhí)行狀態(tài)恢復的同時,保證共享數(shù)據(jù)的一致性,消除故障傳播的影響。
故障恢復技術的設計涉及2個問題:①如何清除系統(tǒng)的錯誤狀態(tài);②如何恢復系統(tǒng)失效前的執(zhí)行狀態(tài)。需要滿足以下幾點要求:①搶占性,可以在程序執(zhí)行過程中的任意一點執(zhí)行checkpoint操作;②透明性,對于已有的程序不需要對原有的代碼進行修改就能支持備份重啟機制;③低負載,不能造成顯著的系統(tǒng)負載;④易于移植,不需要對操作系統(tǒng)代碼或結構進行修改,能夠較為便利地集成到現(xiàn)有操作系統(tǒng)中;⑤安全性,機制避免系統(tǒng)程序的優(yōu)先級和權限被惡意提升[9]。針對操作系統(tǒng)故障,除重新啟動外,其他方法都無法將系統(tǒng)從故障狀態(tài)完全恢復。但對于安全關鍵應用,重新啟動帶來的損失是無法接受的。因此,在不對系統(tǒng)進行重啟的前提下,設計有效的恢復策略是十分有意義的。
對于process-local類型故障,傳播途徑主要是錯誤調用參數(shù)和函數(shù)返回值,通過重啟故障進程是一種有效的手段。kernel-global類型故障會造成內核共用數(shù)據(jù)錯誤,如導致內核中負責管理堆棧的紅黑樹數(shù)據(jù)結構污染,則需要對全局的數(shù)據(jù)操作進行跟蹤記錄相關信息來實現(xiàn)故障修復。當前操作系統(tǒng)通過冗余設計或重啟的方法實現(xiàn)故障自恢復。此外,對故障系統(tǒng)、組件或操作進行重啟是簡單有效的局部數(shù)據(jù)錯誤恢復策略,如微重啟[6-7]、transactional recovery[8]等,典型代表為Berkeley Lab開發(fā)的BLCR[8]系統(tǒng),但未考慮kernel-global類型故障帶來的全局數(shù)據(jù)狀態(tài)錯誤。
針對以上問題,本文提出了一種基于補償回滾的故障自恢復方法。該方法對內核全局數(shù)據(jù)或方法進行監(jiān)測,在進程局部數(shù)據(jù)被正確恢復的前提下,通過控制故障的傳播效應,保證了全局數(shù)據(jù)狀態(tài)的一致性,兼顧了對2類故障的恢復效果。
2故障自恢復模型
process-local類型故障會造成當前進程執(zhí)行狀態(tài)的丟失,可通過周期性備份進程執(zhí)行狀態(tài),定義為該進程的執(zhí)行鏡像,在出現(xiàn)故障時通過重新載入備份鏡像的方法完成快速重啟,降低失效時間。對于kernel-global類型的故障,利用備份的信息,重啟某個進程在某些情形下無法達到故障恢復的目的。如圖1所示,在連續(xù)2次進程狀態(tài)備份操作之間,進程A在執(zhí)行過程中需要獲取自旋鎖SPIN-LOCK-A,獲取后在執(zhí)行過程中出現(xiàn)故障導致程序崩潰,此時系統(tǒng)會使用進程A的狀態(tài)備份信息執(zhí)行恢復操作。但此時SPIN-LOCK-A仍然處于被占用狀態(tài),進程A在嘗試獲取SPIN-LOCK-A時會在內核態(tài)進入死循環(huán)狀態(tài),系統(tǒng)將再次載入進程鏡像并重啟進程A,但仍無法達到恢復的效果。因此對于該類型故障,在進程恢復時只考慮本進程相關的信息是不能夠保證恢復效果的。
圖1 kernel-global故障恢復失效實例
基于以上分析,在設計恢復機制時,必須考慮內核全局狀態(tài)的一致性。內核調用會導致操作系統(tǒng)全局狀態(tài)變化,該類型操作大都包含對應的逆操作,如加鎖與釋放鎖操作、分配與釋放內存操作,在程序代碼中表現(xiàn)為成對出現(xiàn)的內核方法調用,本文中將其定義為關鍵方法和補償方法。kernel-global類型故障會導致內核狀態(tài)不一致問題,通過執(zhí)行關鍵方法對應的補償方法來消除不一致狀態(tài)是簡單可行的思路。本文設計了補償棧結構,存儲進程已執(zhí)行的關鍵方法調用對應的補償方法,用于故障恢復時消除內核的不一致狀態(tài)。
2.1進程級checkpoint機制
進程備份機制對進程相關的文件句柄、內存信息、寄存器等信息進行保存,實現(xiàn)process-local類型故障的恢復,此外還需記錄進程對全局數(shù)據(jù)的修改操作。
圖2 進程級Checkpoint恢復機制
操作系統(tǒng)中,進程對內核全局數(shù)據(jù)的操作通過特定的系統(tǒng)調用實現(xiàn),因此對全局數(shù)據(jù)修改的記錄可轉化為對系統(tǒng)調用序列的記錄。如圖2所示,在每個備份周期內,進程級checkpoint機制主要包括進程信息備份和內核調用追蹤2個階段。
進程信息備份階段,圖2中t0到t1時間段,將與該進程相關的全局寄存器、內存指針、進程局部寄存器等信息保存到非易失存儲器中。在每個checkpoint周期結束時,需要更新進程備份鏡像。
內核調用追蹤階段,圖2中t1到t2時間段,內核動態(tài)追蹤技術,將能夠導致全局數(shù)據(jù)修改的操作及其參數(shù)等信息存儲到內核補償棧結構中,該結構常駐于系統(tǒng)內存中,實現(xiàn)快速地增加刪除內核系統(tǒng)調用信息。
2.2內核補償機制
對于kernel-global類型故障,需要記錄該進程對內核全局數(shù)據(jù)的修改操作,在使用備份鏡像恢復進程執(zhí)行時,首先需要消除故障對內核全局數(shù)據(jù)狀態(tài)的影響。內核補償機制的工作流程分為如下幾個階段,內核調用監(jiān)測階段、補償操作映射階段、補償棧數(shù)據(jù)維護階段和故障補償修復階段,具體功能可描述如下:
1) 內核方法調用監(jiān)測:應用基于動態(tài)追蹤的故障監(jiān)測方法,對內核執(zhí)行流中關鍵方法調用進行監(jiān)測,將采集到的信息傳輸至補償操作映射階段,當監(jiān)測到補償方法調用時則直接修改補償棧數(shù)據(jù)。
2) 補償操作映射:根據(jù)監(jiān)測到的內核調用信息,映射出可以消除該調用導致的全局數(shù)據(jù)變化的補償調用,并將該信息傳輸?shù)綏?shù)據(jù)維護階段。
3) 棧數(shù)據(jù)維護階段:對內核調用信息及其對應的補償操作信息進行維護,為故障恢復階段提供數(shù)據(jù)支持,若無故障,則執(zhí)行完棧數(shù)據(jù)操作后返回內核執(zhí)行流,若收到故障監(jiān)測器故障報警,則進入故障補償恢復階段。
4) 故障補償恢復階段:通過補償棧中的數(shù)據(jù)生成補償操作序列,恢復內核全局數(shù)據(jù)一致性。
由于補償棧為內核全局共享結構,執(zhí)行時會觸發(fā)大量的讀寫操作,故其提供的數(shù)據(jù)操作應具有較高的執(zhí)行效率。
圖3 內核補償棧工作流程
圖3中描述了內核補償棧的工作流程,ci為ai對應的補償操作,補償操作映射模塊可以根據(jù)ai映射出對應的ci。若某一執(zhí)行的進程中包含a1、a2、a3、…、ak-1、ak關鍵方法調用,在該進程順次執(zhí)行該操作序列時,補償映射模塊根據(jù)補償操作映射獲得其補償操作,同時將補償操作信息加入補償棧中保存。若在當前備份周期內操作流執(zhí)行完后無故障正常退出,則在監(jiān)測到補償調用時,會依次出棧相應的補償操作信息,補償棧應為空。若執(zhí)行過程中出現(xiàn)故障,則需依次出棧當前補償棧中與該操作流相關的補償操作,生成補償操作序列并依次執(zhí)行,完成對系統(tǒng)全局不一致狀態(tài)的修復。
圖4 補償棧故障恢復示例
圖4中給出了一個使用補償棧進行故障恢復的示例。該示例中,進程執(zhí)行過程中需要獲取S1、S2、S33個共享資源,對應的關鍵方法和補償方法分別為a1、a2、a3、c1、c2、c3。程序執(zhí)行a1、a2操作獲取S1、S2資源后,補償棧中的數(shù)據(jù)為c2、c1,此時程序由于故障崩潰,由于沒有釋放S1、S2,導致共享資源處于不一致狀態(tài)。當監(jiān)測到該不一致狀態(tài)后,補償回滾機制會順次出棧c2、c1,并執(zhí)行相應的補償操作,使共享資源狀態(tài)恢復一致。
3故障自恢復技術實現(xiàn)
恢復技術基于BLCR工具集[10]和Kprobes機制[11]在Linux(內核版本3.5)操作系統(tǒng)中實現(xiàn)。BLCR在設計時沒有考慮全局數(shù)據(jù)狀態(tài)的恢復,如對系統(tǒng)IPC對象的占用,本文通過增加內核補償機制,實現(xiàn)基于補償回滾的故障自恢復技術。
3.1進程級Checkpoint實現(xiàn)
BLCR提供了cr-run、cr-checkpoint、cr-restart 3個調用接口,完成進程的啟動、備份和重啟操作,核心功能以內核模塊的形式實現(xiàn),在使用前需要加載到內核中?;贐LCR提供的基本操作和支持備份類型,利用進程樹粒度的備份機制,進程級checkpoint機制以Python腳本的方式為用戶提供接口。用戶需指定進程pid和備份周期,對某個進程應用checkpoint機制。
進程級checkpoint機制執(zhí)行流程是:在計時器累加后會判斷當前是否處于新的checkpoint周期,若處于新的周期,則對原有的進程鏡像進行更新。若處于舊的的周期,則會監(jiān)測內核關鍵方法的調用,在內核補償棧中記錄關鍵方法、補償方法調用信息。用戶可以在不需要恢復模塊時將其卸載。在每個checkpoint周期完成調用信息記錄或進程鏡像更新操作后,會檢查該加載的自恢復模塊是否有效,若無效則會退出整個checkpoint機制;否則執(zhí)行計時器進行累加,進入后續(xù)信息記錄更新過程。
3.2內核補償實現(xiàn)
內核補償機制可分為3層,分別為關鍵方法監(jiān)測層、補償棧操作層、棧數(shù)據(jù)層,以內核模塊的形式實現(xiàn)。
關鍵方法監(jiān)測層主要完成監(jiān)測關鍵方法調用,獲取調用參數(shù)和全局寄存器數(shù)據(jù),其核心為關鍵方法到補償方法的映射機制。該層基于Kprobes機制實現(xiàn),可監(jiān)測到對關鍵方法調用并獲取相應調用參數(shù)。當監(jiān)測到某一關鍵方法調用時,利用映射機制可獲取其對應的補償方法,構建結構體存儲相關信息,并加入補償棧。表1中描述了部分當前版本中內核關鍵方法的標識、關鍵方法以及補償方法的對應關系,其中每個關鍵方法都對應唯一的標識,程序中用枚舉變量表示。
表1 內核補償操作映射
通過在關鍵方法處設置監(jiān)測斷點,獲取相應信息構建補償方法記錄結構體,利用調用棧操作層提供的接口,完成補償方法數(shù)據(jù)信息入棧出棧的操作。根據(jù)關鍵方法監(jiān)測層采集到的數(shù)據(jù),補償棧操作層提供對棧內數(shù)據(jù)進行操作的接口,包括在棧內加入、刪除補償操作信息以及出現(xiàn)故障時順次出棧完成故障恢復的接口。例如,add-kr-object方法完成向棧內增加補償信息的操作,其參數(shù)包括補償方法信息數(shù)據(jù)結構體、補償操作類型、當前寄存器內信息、調用該方法的進程結構體指針。
棧數(shù)據(jù)層存儲補償操作相關信息,提供入棧、出棧、棧數(shù)據(jù)查詢等基本操作接口。由于程序以內核模塊形式實現(xiàn),對操作的效率有較高要求,故在實現(xiàn)棧是使用了Linux內核中內置的list-head類型來實現(xiàn)基本棧操作。數(shù)據(jù)以鏈表的形式進行存儲,在數(shù)據(jù)結構體中加入list-head提供其存儲順序信息。入棧操作通過在頭結點后插入節(jié)點實現(xiàn),出棧操作通過反向遍歷鏈表刪除頭結點實現(xiàn)。
補償棧數(shù)據(jù)為全局數(shù)據(jù),且對其訪問操作較短,且不能被中斷或搶占,故設置了自旋鎖保證其數(shù)據(jù)一致性。每次進行棧數(shù)據(jù)操作時需要首先獲取相應的自旋鎖,操作補償棧操作流程如圖5所示。
圖5 補償棧操作流程
3.3故障自修復流程
通過動態(tài)追蹤技術監(jiān)測到故障后,會進入故障修復流程,包括內核補償階段和進程狀態(tài)恢復階段。
內核補償階段完成恢復內核一致性狀態(tài)的功能,流程如圖6所示。在對故障進程進行修復時,首先將檢查內核補償棧。若棧中信息不為空,說明當前進程在出錯退出時對全局數(shù)據(jù)造成的影響未被消除,則從補償棧中依次出棧補償操作,根據(jù)其操作標識調用補償方法,使內核狀態(tài)恢復到一致狀態(tài)。若補償棧為空,則直接進入進程狀態(tài)恢復階段。
圖6 補償回滾機制故障自恢復流程
進程狀態(tài)恢復階段完成具體應用程序執(zhí)行狀態(tài)和數(shù)據(jù)的恢復。首先需要載入故障進程執(zhí)行鏡像文件,調用進程級checkpoint機制提供的重啟接口,完成故障恢復恢復。
4驗證分析
通過故障注入實驗的方法對補償回滾故障自恢復方法的有效性進行驗證。實驗計算機配置為AMD 速龍II雙核 P360(2.3GHz 雙核),2.0G內存,500G硬盤,內核版本為Linux 3.5。為了模擬系統(tǒng)真實的運行環(huán)境,在進行故障注入實驗時選取了Unixbench 5.1.2[12]測評集模擬系統(tǒng)運行負載,選用了多個負載測試集以保證對內核關鍵方法調用的覆蓋率。故障庫以內核模塊的形式實現(xiàn),在實驗中以一定的時間間隔動態(tài)注入負載流,同時記錄監(jiān)測到的故障數(shù)。表2中給出了實驗中使用的負載集程序功能說明。
通過注入process-local和kernel-global 2類型的故障各50次到不同系統(tǒng)負載中,以驗證補償回滾機制的有效性。分別統(tǒng)計其在注入故障后的系統(tǒng)的3類反應出現(xiàn)的次數(shù):分別為成功恢復、panic、System Hang,后兩者本文認為其恢復失敗。其中process-local類型的故障包括程序運行過程中出現(xiàn)異常導致其直接崩潰,實驗中通過控制進程向其發(fā)送特定的異常信號實現(xiàn)。kernel-global類型的故障則通過內核模塊的形式注入,故障類型主要包括資源競爭和內存泄露2類。實驗結果如圖7所示,可知補償回滾機制能對91.6%的故障進行有效恢復,對于操作全局狀體較多負載集如fstime,kernel-global類型故障恢復次數(shù)低于proces-local類型故障。部分故障未恢復的原因包括操作系統(tǒng)已有對某些故障的保護機制,補償棧操作反而會造成系統(tǒng)不一致狀態(tài),大量進程并發(fā)執(zhí)行時系統(tǒng)資源耗盡導致系統(tǒng)崩潰等。
表2 負載程序功能表
圖7 故障恢復實驗結果
實驗中通過對備份重啟不同的負載集程序來對補償回滾機制的有效性進行評估,表3中為補償回滾機制開銷及性能測試結果。選取的指標包括備份文件的存儲開銷、checkpoint延時、重啟延時以及其運行時所占內存大小。checkpoint延時為執(zhí)行一次進程信息備份操作所需要的時間,在此期間相應的進程無法提供服務,該時間的長度同進程占用資源多少、程序鏡像文件大小和執(zhí)行操作的類型相關,可對機制造成的系統(tǒng)負載進行評估。重啟延時為使用備份的進程鏡像恢復程序執(zhí)行狀態(tài)需要的時間,可以對故障恢復的效率進行評估。
表3 補償回滾機制開銷及性能測試結果
如表3中數(shù)據(jù)所示,備份文件大小以及負載集類型會影響恢復機制的性能。較大的進程鏡像和較多的內核全局信息會帶來更多的備份開銷和恢復延時,如context1負載集由于需要創(chuàng)建多個進程來完成上下文切換功能,其備份開銷要高于其他負載。fstime負載由于涉及較多的文件拷貝操作,重啟時需要恢復文件句柄等較多內核全局信息,其恢復延時要高于其余的負載集。
BLCR是checkpoint機制的典型代表,對其機制進行故障注入實驗,比較其與補償回滾機制的故障恢復效果,結果如圖8所示。由于BLCR 工具庫中沒有對kernel-global類型故障設計相應的恢復機制,在該類型故障出現(xiàn)時只能依靠操作系統(tǒng)中原有機制進行處理,其故障恢復率低于本文中提出的補償回滾機制。
圖8 故障恢復率對比實驗結果
較傳統(tǒng)的Checkpoint機制,補償回滾機制增加了內核補償階段,會帶來額外的系統(tǒng)負載。圖9和圖10中為BLCR機制與補償回滾機制Checkpoint延時與故障恢復延時對比實驗結果。從圖中可知,增加內核補償機制后,恢復延時和Checkpoint延時增長較少,證明了補償棧結構設計的高效性。
圖9 checkpoint延時對比實驗結果圖圖10 故障恢復延時對比實驗結果
5結論
本文提出了一種基于補償回滾操作的故障自恢復方法,該方法通過對內核全局數(shù)據(jù)或方法的監(jiān)測,在保證進程局部數(shù)據(jù)被正確恢復的前提下,控制了故障的傳播效應,保證了全局數(shù)據(jù)狀態(tài)的一致性。故障注入實驗結果表明,該技術能夠有效地完成對故障的監(jiān)測、恢復,且?guī)淼南到y(tǒng)負載較小。
參考文獻:
[1]Deshpande B D. System and Methods for Self-Healing from Operating System Faults in Kernel/Supervisory Mode[P]US8930764 B2, 2014
[2]Hamann P S, Perry R L. Compensation Recommendations[P]US20140032382 A1, 2014
[3]Asghari S A, Kaynak O, Taheri H. An Investigation Into Soft Error Detection Efficiency at Operating System Level[J]. The Scientific World Journal, 2014(1): 1-9
[4]Yoshimura T, Yamada H, Kono K. Is Linux Kernel Oops Useful or Not?[C]//Proceedings of the Eighth USENIX Conference on Hot Topics in System Dependability, 2012: 2-7
[5]Frei R, McWilliam R, Derrick B, Purvis A, Tiwari A, Serugendo G D M. Self-Healing and Self-Repairing Technologies[J]. The International Journal of Advanced Manufacturing Technology, 2013, 69(5/6/7/8): 1033-1061
[6]Davis T A, Bishop A K, Cruzan C J. Detecting and Recovering from Process Failures[P]US8103905 B2, 2013
[7]Kato Y, Saito S, Mouri K, Matsuo H. Faster Recovery From Operating System Failure and File Cache Missing[C]//Proceedings of the International Multi Conference of Engineers and Computer Scientists, 2012
[8]Mousa N M. Avida Checkpoint/Restart Implementation[J]. McNair Scholars Research Journal, 2014, 10: 10-14
[9]Schneider C, Barker A, Dobson S. Autonomous Fault Detection in Self-Healing Systems: Comparing Hidden Markov Models and Artificial Neural Networks[C]//Proceedings of International Workshop on Adaptive Self-Tuning Computing Systems, ACM, New York, 2014: 24-33
[10] Hargrove P H, Duell J C. Berkeley Lab Checkpoint/Restart (blcr) for Linux Clusters[J]. Journal of Physics: Conference Series, IOP Publishing, 2006(46): 494-503
[11] Zhu Y, Li Y, Xue J, Tan T, Shi J, Shen Y, Ma C . What Is System Hang and How to Handle It[C]//2012 IEEE 23rd International Symposium on Software Reliability Engineering, 2012: 141-150
[12] Slaby J, Strej?ek J, Trtík M. Clabure DB: Classified Bug-Reports Database[C]//Verification, Model Checking, and Abstract Interpretation, Springer, 2013, 268-274
A New Operating System Fault Recovery Technique Based on Kernel
Compensation and Process State Roll-Back
Zhu Yian, Shi Jialong
(Department of Computer Science and Engineering, Northwestern Polytechnical University, Xi′an 710072, China)
Abstract:Sections 1 through 4 of the full paper explain and evaluate a new fault recovery technique based on kernel motion compensation and process state roll-back. The core of our thinking and that of sections 1 through 4 consists of: (1) past research papers on operating system fault recovery mainly focus on the data loss caused by process-local faults and the global state inconsistency caused by kernel-global faults is neglected; we propose a new fault recovery technique based on kernel motion compensation and process state roll-back model; it can minimize the propagation of faults and ensure the consistency of global state; this technique is implemented as loadable kernel module which makes it easy to expand functionality;(2) section 2 presents the design of kernel motion compensation and process state roll-back model; (3) section 3 presents the implementation details of this technique in Linux operating system; (4) evaluation results presented in section 4 and their analysis show preliminarily the effectiveness of the proposed technique.
Key words:adaptive algorithms, approximation algorithms, backstepping, conception design, cost functions, computer simulation, computer software, design, dynamic models, efficiency, embedded software, embedded systems, estimation, failure modes, fault detection, fault tolerance, global optimization, intelligent systems, mathematical models, models, motion compensation ,real time control, reliability analysis, safety engineering, software reliability; fault recovery,kernel compensation, operating system, process state roll-back
中圖分類號:TP391
文獻標志碼:A
文章編號:1000-2758(2015)05-0709-07
作者簡介:朱怡安(1961-),西北工業(yè)大學教授,主要從事高性能計算、云計算及普適計算的研究。
收稿日期:2015-03-12基金項目:航天支撐技術基金(2013-HT-XGD(10))、陜西省科學技術研究發(fā)展計劃項目(2014K05-25)、陜西省科學技術研究發(fā)展計劃項目(2015GY035)與航空科學基金(20130753006)資助。