August 25, 2003
Noon - 1:30 pm
Intel Seminar (417 S. Craig Street - 3rd Floor)
EVENTS PAGE: http://www.intel-research.net/pittsburgh/events.htm
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.
Contact Kim Kaan, 412-605-1203,
or visit http://www.intel-research.net.
SDI Home: http://www.pdl.cmu.edu/SDI/