CAREER: Hybrid Atomicity Checking
Williams College, Williamstown MA
Investigators
Abstract
The construction and validation of reliable multi-threaded programs is extremely difficult. Threads can improve performance on multi-processor machines and multi-core processors by enabling a program to execute more than one routine simultaneously, but unintended interactions between threads are hard to recognize during testing and are a common source of errors in deployed systems. This research develops hybrid checkers that prevent unintended thread interactions by ensuring that a program's routines are atomic. A routine is atomic if its execution is not affected by and does not interfere with concurrently-executing threads. Previous work on static atomicity checkers (that inspect source code) and dynamic atomicity checkers (that monitor running programs) demonstrate the potential advantages of enforcing atomicity requirements. However, these approaches have precision or coverage limitations that reduce their ability to check large systems effectively. Hybrid checkers synthesize the best aspects of both techniques without suffering from these limitations. The impacts of hybrid atomicity checkers, and their integration into a broad educational program, include improved software quality and better software engineering practices. Specifically, hybrid checkers provide a cost-effective mechanism for finding errors resistant to testing, are more usable and scalable than existing tools, and support a design methodology that encourages precisely specifying interactions between threads.
View original record on NSF Award Search →