簡易檢索 / 詳目顯示

研究生: 陳漢書
論文名稱: 最小化監控影響-基於多核心架構與輔助執行緒
Minimum Probing-Effect Program Monitoring by Multi-Core Helper Threads
指導教授: 鄭永斌
學位類別: 碩士
Master
系所名稱: 資訊工程學系
Department of Computer Science and Information Engineering
論文出版年: 2007
畢業學年度: 95
語文別: 中文
論文頁數: 48
中文關鍵詞: Hleper ThreadMulti-coreProbing
論文種類: 學術論文
相關次數: 點閱:122下載:46
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 軟體開發的經驗告訴我們,軟體測試並沒有辦法確保軟體完全沒有問題存在。有時候在除錯與測試階段,程式開發人員會在軟體中插入額外的程式碼(Instrumentation Code)來收集所需資訊,這意味著將對軟體的效能產生一定程度的影響。所以通常軟體業界在軟體釋出前,就會移除這些Instrumentation Code。但是,從實際的經驗來看,總是會有錯誤在龐大的測試過程中殘存下來,然而,軟體進入使用階段之後,軟體本身的偵錯機制(非例外處理)早就被移除殆盡,除了少數不影響效能的 log 。

    在許多實際的應用中,就算軟體已經正是上線,持續的軟體品質監控的需求,從來沒有消失。本研究提出了SoftMon,一個利用多核心架構來運行的軟體監測工具,可以有效的降低監測所需要的代價,減少監測行為對軟體的影響,以期能在軟體釋出運作後,持續監控軟體品質。SoftMon使用了Helper Thread的概念,利用閒置的運算資源運行監測行為,有效的將監控代價轉移到Helper Thread中,並且提供簡單的語言MCML(Multi-Core Monitoring Language)給使用者來描述監控的變數與事件,完全自動化程式碼的修改過程,借此達到SoftMon對使用者軟體的透明化與模組化。因此,SoftMon可以借由減少監控代價的方式,將品質監控延續到軟體使用階段,更可以在獲得一定的軟體品質後,快速的將Instrumentation Code自軟體中抽離。所有插入Instrumentation Code的行為,都是利用MCML撰寫,再透過SoftMon來運行,所以使用者可以輕易的保有不含任何Instrumentation Code的原始碼,只要不透過SoftMon修改程式碼即可。

    第一章 簡介 1 第一節 問題描述 3 第二節 論文組織 5 第二章 相關研究探討 6 第一節 SMP 6 第二節 軟體錯誤偵測與分析 7 第三章 SoftMon的概念與實作 9 第一節 硬體環境設定 9 第二節 初步設計與實驗 9 第三節 SoftMon 的基本架構 11 第四章 MCML語言說明 13 第一節 變數的監控方式 13 第二節 MCML範例 15 第三節 宣告區 17 第四節 指令區 17 第五節 程式增修區 18 第六節 監測性質區 21 第七節 監控變數 22 第八節 Race Condition 25 第五章 實例與問題 29 第一節 Philosopher dining problem 29 第二節 Profiler 38 第六章SoftMon的未來展望與結論 46 參考著作 48

    [1] T.-R. Chuang, Y. S. Kuo, and C.-M. Wang. Non-intrusive object introspection in c++: architecture and application. In ICSE ’98: Proceedings of the 20th international conference on Software engineering, pages 312–321, Washington, DC, USA, 1998. IEEE Computer Society.

    [2] A. Eustace and A. Srivastava. ATOM: A flexible interface for building high performance program analysis tools. In USENIX Winter, pages 303–314, 1995.

    [3] I. Ganusov and M. Burtscher. Efficient emulation of hardware prefetchers via event-driven helper threading. In E. Altman, K. Skadron, and B. G. Zorn, editors, Proceedings of the 15th International Conference on Parallel Architecture and Compilation Techniques (15th PACT’06), pages 144–153, Seattle, Washington, USA, Sept. 2006. ACM.

    [4] R. Gupta and M. Spezialetti. Dynamic techniques for minimizing the intrusive effect of monitoring actions. In ICDCS, pages 368–376, 1995.

    [5] R. Hastings and B. Joyce. Purify: Fast detection of memory leaks and access errors. In Proceedings of the Winter 1992 USENIX Conference, pages 125–136, 1992.

    [6] J. Lu, A. Das, W.-C. Hsu, K. Nguyen, and S. G. Abraham. Dynamic helper threaded prefetching on the sun ultraSPARC CMP processor. In MICRO, pages 93–104. IEEE Computer Society, 2005.

    [7] M. K. McKusick. gprof:A call graph execution profiler. In Proceedings of the USENIX Summer Conference, pages 81–88, Berkeley, July 1983. USENIX Association.

    [8] N. Nethercote and J. Seward. Valgrind: A program supervision framework. Electr. Notes Theor. Comput. Sci, 89(2), 2003.

    [9] M. Ronsse and K. D. Bosschere. Non-intrusive on-the-fly data race detection using execution replay. In AADEBUG, 2000.

    [10] J. Seward and N. Nethercote. Using valgrind to detect undefined value errors with bit-precision. In USENIX Annual Technical Conference, General Track, pages 17–30. USENIX, 2005.
    [11] R. Shetty, M. Kharbutli, Y. Solihin, and M. Prvulovic. Heapmon: A helper-thread approach to programmable, automatic, and low-overhead memory bug detection. IBM Journal of Research and Development, 50(2/3):261–275, Mar./May 2006.

    [12] Y. Song, S. Kalogeropulos, and P. Tirumalai. Design and implementation of a compiler framework for helper threading on multi-core processors. In IEEE PACT, pages 99–109. IEEE Computer Society, 2005.

    [13] M. Spezialetti and R. Gupta. Perturbation analysis: A static analysis approach for the non-intrusive monitoring of distributed programs. In ICPP, pages 81–88, 1994.

    [14] A. Srivastava and A. Eustace. ATOM - A system for building customized program analysis tools. In PLDI, pages 196–205, 1994.

    [15] W. Wu, M. Spezialetti, and R. Gupta. Guaranteed intrusion removal from monitored distributed applications. In Eighth IEEE Symposium on Parallel and Distributed Processing (SPDP’96), pages 422–427, Washington - Brussels - Tokyo, Oct. 1996. IEEE Computer Society.

    [16] J. Yang, D. Evans, D. Bhardwaj, T. Bhat, and M. Das. Perracotta: mining temporal API rules from imperfect traces. In L. J. Osterweil, H. D. Rombach, and M. L. Soffa, editors, ICSE, pages 282–291. ACM, 2006.

    [17] M. Young and R.N. Taylor, "Rethinking the taxonomy of fault detection techniques," In Proc. 11th Int. Conf. Software Eng. Los Alamitos, CA: IEEE Computer Soc., 1989, pp. 53-62.

    QR CODE