Intel Research Seminar

DATE: August 25, 2003
TIME: Noon - 1:30 pm
PLACE: Intel Seminar (417 S. Craig Street - 3rd Floor)

Aaron Greenhouse

A Programmer-Oriented Approach to Safe Concurrency

Assuring and evolving concurrent programs requires understanding the concurrency-related design decisions used in their implementation. In Java-style shared-memory programs, these decisions include which state is shared, how access to it is regulated, and the policy that distinguishes desired concurrency from race conditions. Source code often does not reveal these design decisions because they rarely have purely local manifestations in the code, or because they cannot be inferred from code. Many programmers believe it is too difficult to explicate the models in ordinary practice. As a result, this design intent is usually not expressed, and it is therefore generally infeasible to assure that concurrent programs are free of race conditions.

In this talk, I present a practicable approach to capturing and expressing this design intent, and, through the use of annotations and composable static analyses, assuring consistency of code and intent as both evolve. Annotations express "mechanical" properties that programmers must already be considering, such as lock-state associations, pointer uniqueness, and conceptual aggregations of state. Our analyses reveal race conditions in a variety of case study samples that were drawn from library code and production open source projects. Novel features of this approach include (1) named aggregations of state that can cross object boundaries, (2) analyses to track the association of locks with regions, (3) policy descriptions for allowable method interleavings, and (4) an incremental process for inserting, validating, and exploiting annotations.

Aaron Greenhouse received his Ph.D. in Computer Science from Carnegie Mellon University in May 2003, and his B.A. in Computer Science from Brandeis University. He is currently a Post-Doctoral Fellow in the Fluid Group at CMU where he is continuing to develop software tools and techniques for assured program evolution.

For Further Seminar Info:
Contact Kim Kaan, 412-605-1203, or visit

SDI Home: