透過您的圖書館登入
IP:3.149.243.32
  • 學位論文

最小化監控影響-基於多核心架構與輔助執行緒

Minimum Probing-Effect Program Monitoring by Multi-Core Helper Threads

指導教授 : 鄭永斌
若您是本文的作者,可授權文章由華藝線上圖書館中協助推廣。

摘要


軟體開發的經驗告訴我們,軟體測試並沒有辦法確保軟體完全沒有問題存在。有時候在除錯與測試階段,程式開發人員會在軟體中插入額外的程式碼(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修改程式碼即可。

關鍵字

Hleper Thread Multi-core Probing

參考文獻


[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.
[4] R. Gupta and M. Spezialetti. Dynamic techniques for minimizing the intrusive effect of monitoring actions. In ICDCS, pages 368–376, 1995.
[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.
[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.

延伸閱讀