Michael Hicks U of Maryland College Park
Scalable, Precise, and Effective Analyses for Detecting Race Conditions Michael W. Hicks Jeffrey S. Foster
Multi-threaded programming is an essential part of critical software such as operating systems and network servers. Multi-threaded programming is likely to become far more prevalent as hardware manufacturers are now building and shipping multi-CPU core machines. One common source of errors in multi-threaded programs is data races, which occur when two threads each concurrently access the same data. Race conditions are notoriously hard-to-find errors that can lead to incorrect behavior, data corruption, program failure, denial-of-service attacks, and/or security breaches. Because race conditions can be so pernicious, there has been widespread interest in developing tools for detecting and preventing them. However, these tools are still impractical. The research will develop tools that use static (whole-program) analysis to prove the absence of race conditions in C programs. The tools will be based on a common annotation and specification language that can describe commonly-used idioms for preventing data races. The goal is ultimately to develop techniques that scale to large software systems, and that are based on a sound foundation.