Graph of Computer Activity
Graph of overhead activity for self-monitoring software

Computer Science Receives $830,000 NSF Grant to Develop Self-Monitoring Software
Erez Zadok, Radu Grosu, Yanhong A. Liu, Scott A. Smolka, and Scott D. Stoller are the recipients of an $830,000 NSF grant from the Division of Computer and Network Systems to develop advanced model-checking techniques, coupled with operating-system code instrumentation, to achieve always-on monitoring of system software.

System software provides the critical infrastructure (libraries, operating systems, embedded systems, and more) on which all other applications run. Such software, however, is often difficult to develop and maintain. Primarily for efficiency reasons, system software is developed using the C/C++ programming languages; unfortunately, these very popular programming languages are prone to programming errors that may not be detected for weeks and even months after deployment at production sites.

The end goal of this project is to develop tools and techniques that will build self-monitoring mechanisms into future software. Because self-monitoring may impose performance overheads, the degree of monitoring will be adjusted automatically based on the level of confidence the system has in its stability and reliability. This will produce systems that may initially run slower due to self monitoring, but whose performance will increase over time as statistical confidence in these systems grows. In short, this project aims to combine the best of both worlds by producing software that is at once (a) highly reliable and (b) minimally impacted performance-wise by the overhead due to self monitoring.

As a case study, this project will examine several components of the Linux operating system, the open-source Unix-like system which is receiving increasing attention as a potential competitor to Windows. Initially, the project will focus on the Linux virtual file system, which is responsible for organizing and protecting the confidential and proprietary information users store in disk files.

The lessons learned and the tools developed in this project will be applicable to any complex software system. Society as a whole will benefit by having tools and techniques to produce much more reliable software than is currently available to end-users. Professors Zadok, Grosu, and Stoller also hold NSF CAREER Awards.