(3.236.228.250) 您好!臺灣時間:2021/04/17 06:46
字體大小: 字級放大   字級縮小   預設字形  
回查詢結果

詳目顯示:::

我願授權國圖
: 
twitterline
研究生:譚地
研究生(外文):Ti Tan
論文名稱:遠端檢查點系統實作
論文名稱(外文):Development of Remote Checkpointing System
指導教授:蔡智強蔡智強引用關係
指導教授(外文):Jichiang Tsai
學位類別:碩士
校院名稱:國立中興大學
系所名稱:電機工程學系
學門:工程學門
學類:電資工程學類
論文種類:學術論文
論文出版年:2004
畢業學年度:92
語文別:中文
論文頁數:62
中文關鍵詞:檢查點軟體容錯通透攔截技術多緒行程Client/Server架構TCP/IP網路
外文關鍵詞:CheckpointSoftware Fault-TolerantTransparently InterceptionMultithreading ProcessClient/Server ModelTCP/IP Network
相關次數:
  • 被引用被引用:4
  • 點閱點閱:75
  • 評分評分:系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔系統版面圖檔
  • 下載下載:0
  • 收藏至我的研究室書目清單書目收藏:0
檢查點的容錯技術在許多的研究中被廣泛的討論,尤其在通訊與資料庫的設計中使用的最多。檢查點的基礎概念可以簡單的解釋為將被檢查程式當時的狀態與資料紀錄並保留下做為將來發生錯誤後程式回復當時狀態的依據。雖然檢查點的錯誤回復機制可以在硬體或者是軟體上實作,也可以由軟硬體協同運作來實施,但是以軟體容錯的方式來實作檢查點錯誤回復的這一項技術,在個人電腦上的實作研究並不多。大多數的相關研究都是選擇在Unix/Linux平台上實作,而選擇以Windows為平台的實作研究就相對的更少了。
本研究選擇在Windows作業平台上以軟體實作檢查點錯誤回復機制,同時以TCP/IP網路建立與遠端檢查點伺服端互動的整合作業模式,主要的目的在建構出一個在Windows平台上以Client/Server架構運作的遠端檢查點的基礎模型。與其他分散式的檢查點系統除了網路作業的模式不同之外,採用通透攔截技術(Transparently Interception)對Windows平台上的多緒行程作檢查點資訊的收集與還原也與其他分散式檢查點系統不同。整個的系統的實作依其功能劃分為四個部分,分別為網路監控伺服端、系統API攔截器、檢查點錯誤還原、以及檢查點主控台。四個部分的實作程式碼全部從零開始一步步的以C/C++程式語言建構起來。其中除了網路監控伺服端的部分在Linux作業平台上實作外,其他三個部分皆在Windows作業平台上實作。遠端檢查點錯誤回復系統的測試由四台個人電腦以TCP/IP網路連線所組成,一台為Linux平台,三台為Windows平台。
由於本實作研究的目的在建立一個以Client/Server方式運作的遠端檢查點的基礎模型供未來更進一步的研究或應用,因此並未對執行效能作分析與比對,希望未來能在針對此部分作更近一步的分析與研究。

The checkpoint technique has wildly discussed in many fault-tolerant research studies, especially at communications and databases designing and implementing. The basic conception of checkpoint is to preserve the good state of running program which can be used as recovering data when program has failed. The checkpoint/recovery can be implemented via software or hardware, cooperating with both is also a usual way, but the software solution seldom found at personal computing environment. There are many of the checkpoint/recovery studies chose Unix/Linux OS as the developing platform, in the other way select the MicrosoftR Windows OS as the developing platform is comparably much less than common.
This research to implement the checkpoint/recovery mechanism in the MicorsoftR Windows platform by software, simultaneously by TCP/IP networking and remote checkpointing server interaction work pattern, the main goal is to construct a Client/Server checkpoint foundation model in Windows networking environment. With other distribution-like checkpoint systems besides network work pattern different, uses the transparently interception technology to collect the checkpoint information in multithreading process and schedules the collection rollback to original state also is different from other distribution-like checkpoint systems. The entire system according to its function division is four parts, respectively be remote checkpoint server, Windows system API interceptor, Windows checkpoint/recovery agent, as well as remote checkpoint console. All the source code completely to start from scratch uses C/C++ programming language. The implementation besides the remote checkpointing server in the Linux platform, other three parts all implement in the Windows platform. The remote checkpoint/recovery system test by four personal computers connected with TCP/IP network, one is the Linux platform, three are the Windows platforms.
Because the goal of the research is to implement a Client/Server checkpoint foundation model for future research or application, therefore we don't carries out the performance analysis and comparison at this implementation, hoped the future will be able to aim at this part to make a further step of the research.

摘要 …………………………………………………………i
Abstract …………………………………………………iii
誌謝 …………………………………………………………v
目錄…………………………………………………………vi
圖目錄………………………………………………………ix
表目錄………………………………………………………xi
第一章 緒論…………………………………………………1
1.1 研究動機與背景 ………………………………………1
1.2 論文章節安排 …………………………………………3
第二章 遠端檢查點軟體實作之簡介………………………4
2.1 Windows平台上的檢查點資料收集…………………5
2.1.1 Windows作業系統的架構………………………6
2.1.2 Win32 Subsystem的API ………………………8
2.1.3 行程的記憶體空間……………………………10
2.1.4 行程中的執行緒………………………………11
2.2 Windows平台上的檢查點還原 ……………………12
2.2.1 植入檢查點功能模組的時機…………………12
2.2.2 攔截系統API的考量 …………………………13
2.2.3 篩選記憶體區塊的條件………………………16
2.2.4 系統資源的回復………………………………17
第三章 遠端檢查點伺服器實作 …………………………20
3.1 伺服端的功能需求…………………………………20
3.2 伺服端程式架構……………………………………22
3.3 伺服端程式資料結構………………………………24
3.3.1 伺服端API Hooker資料結構…………………24
3.3.2 伺服端Watch Client資料結構………………25
3.3.3 多緒架構中共享資料的保護機制……………26
3.3.4 伺服端的資料結構關聯………………………28
第四章 Windows API攔截實作……………………………29
4.1 對正在執行中的程式植入攔截程式碼……………30
4.2 攔截執行程式所呼叫的動態連結函式……………32
4.2.1 找出執行模組的Import Address Table……33
4.2.2 PE Header的資料節構 ………………………37
4.2.3 搜尋IAT找出要攔截的API函式指標…………39
4.3 與遠端檢查點伺服器整合…………………………41
第五章 檢查點實作 ………………………………………43
5.1 行程的堆積(Heap)與堆疊(Stack)區段 ……43
5.2 執行緒的暫停(Suspend)與繼續(Resume) …45
5.3 執行緒的狀態資訊…………………………………47
第六章 檢查點主控台 ……………………………………48
6.1 外觀與功能…………………………………………48
6.1.1 伺服端資訊與功能按鈕………………………49
6.1.2 伺服端事件紀錄………………………………50
6.1.3 API攔截紀錄 …………………………………51
6.2 主控台整合功能測試………………………………51
6.2.1 網路連線測試…………………………………52
6.2.2 植入攔截模組與攔截API ……………………53
6.2.3 檢查點儲存與還原……………………………55
第七章 結論與未來工作 …………………………………60
7.1 結論…………………………………………………60
7.2 未來工作……………………………………………60
參考文獻……………………………………………………61

[1] Chung, P.E.; Woei-Jyh Lee; Yennun Huang; Liang, D.; Chung-Yih Wang, "Winckp: a transparent checkpointing and rollback recovery tool for Windows NT applications", Fault-Tolerant Computing, 1999. Digest of Papers. Twenty-Ninth Annual International Symposium on , 15-18 June 1999 Pages:220 - 223.
[2] Boyd, T.; Dasgupta, P., "Process migration: a generalized approach using a virtualizing operating system", Distributed Computing Systems, 2002. Proceedings. 22nd International Conference on , 2-5 July 2002 Pages:385 - 392.
[3] Jin-Min Yang; Da-Fang Zhang; Xue-Dong Yang, "User-level implementation of checkpointing for multithreaded applications on Windows NT", Test Symposium, 2003. ATS 2003. 12th Asian , 16-19 Nov. 2003 Pages:496 - 499.
[4] Srouji, J.; Schuster, P.; Bach, M.; Kuzmin, Y., "A Transparent Checkpoint Facility On NT", 2nd USENIX Windows NT Symposium, August 1998.
[5] "Microsoft Platform SDK February 2003", Microsoft Corporation, February 2003.
[6] "Microsoft Portable Executable and Common Object File Format Specification", Microsoft Corporation, Rev. 6.0, February 1999.
[7] Thuan Q. Pham; Pankaj K. Garg., "Multithreaded programming with Win32", Prentice Hall PTR, 1999.
[8] David A. Solomon, Mark E. Russinovich., "Inside Microsoft Windows 2000", 3rd Edition, Microsoft Press, 2000.
[9] Sean Walton, "Linux Socket Programming", SAMS, January 26, 2001
[10] W. Richard Stevens, "Advanced Programming in the UnixR Environment", Addison-Wesley Pub. Co., 1993.
[11] Mark Mitchell, Jeffrey Oldham, and Alex Samuel, "Advanced Linux programming", New Riders Pub., 2001.
[12] Nichols, Buttlar, Farrell等著 蕭伯剛 譯, "Pthreads多緒程式設計", 松格資訊, 1997.
[13] Seung-Woo Kim , "Intercepting System API Calls", http://www.devx.com/Intel/Article/21023
[14] Costa, D.; Carreira, J.; Silva, J.G, "WinFT: using off-the-shelf computers on industrial environments", Emerging Technologies and Factory Automation Proceedings, 1997. ETFA '97., 1997 6th International Conference on , 9-12 Sept. 1997 Pages:39 - 44

QRCODE
 
 
 
 
 
                                                                                                                                                                                                                                                                                                                                                                                                               
第一頁 上一頁 下一頁 最後一頁 top
系統版面圖檔 系統版面圖檔