Society depends heavily on computers functioning correctly and securely. Unfortunately, software continues to be plagued by bugs and security vulnerabilities, and these problems are likely to get worse as multicore processors become ubiquitous and more programs become multithreaded. Yet multicore technology also provides the opportunity to use parallelism on commodity computers to improve software robustness. This research seeks to improve the reliability and security of software by using multicore processors to enable new types of powerful, run-time checks. The project will make it possible to run checks in parallel on multicore systems, while preserving the same strong safety guarantees and simple programming model of running checks sequentially. The project will also study how to enable online data race detection and deterministic replay for multithreaded programs running on multiprocessors by offloading the work of data race detection onto other cores. Finally, the project will study powerful, new classes of run-time checks that are enabled by speculative parallel checks, multicore processors, and deterministic replay. This research will benefit society by developing techniques to make software systems more reliable and secure and by producing open-source software artifacts that can be used by other groups. The project will also contribute material for courses that teach how to program multicore computers.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Network Systems (CNS)
Application #
0905149
Program Officer
M. Mimi McClure
Project Start
Project End
Budget Start
2009-09-01
Budget End
2014-08-31
Support Year
Fiscal Year
2009
Total Cost
$1,200,000
Indirect Cost
Name
University of Michigan Ann Arbor
Department
Type
DUNS #
City
Ann Arbor
State
MI
Country
United States
Zip Code
48109