In this paper, we introduce the new technique of High-Confidence Software Monitoring (HCSM), which allows one to perform software monitoring with bounded overhead and concomitantly achieve high confidence in the observed error rates. HCSM is formally grounded in the theory of supervisory control of finite-state automata: overhead is controlled, while maximizing confidence, by disabling interrupts generated by the events being monitored-and hence avoiding the overhead associated with processing these interrupts-for as short a time as possible under the constraint of a user-supplied target overhead o. HCSM is a general technique for software monitoring in that HCSM-based instrumentation can be attached at any system interface or API. A generic controller implements the optimal control strategy described above. As a proof of concept, and as a practical framework for software monitoring, we have implemented HCSM-based monitoring for both bounds checking and memory leak detection. We have further conducted an extensive evaluation of HCSM's performance on several real-world applications, including the Lighttpd Web server, and a number of special-purpose micro-benchmarks. Our results demonstrate how confidence grows in a monotonically increasing fashion with the target overhead, and that tight confidence intervals can be obtained for each target-overhead level.
In Proc. of NGS'08, the Next Generation Software Workshop at IPDPS, Miami, Florida, USA, April, 2008, pp. 1-8.
*This work was supported by the NSF Faculty Early Career
Development Award CCR01-33583 and the NSF CSR-AES05-09230 Award.