Digital Repository at the University of MarylandUniversity of Maryland (College Park, Md.)

Subjects:

Computer engineeringComputer scienceElectrical engineering

Keywords:

AtomicityCritical SectionMemory

Issue Date:

2012

Abstract:

Parallel programming introduces new types of bugs that are notoriously difficult to find. As a result researchers have put a significant amount of effort into creating tools and techniques to discover parallel bugs. One of these bugs is the violation of the assumption of <bold>atomicity</bold>-- the assumption that a region of code, called a <bold>critical section</bold>, executes without interruption from an outside operation.
In this thesis, we introduce a new heuristic to infer critical sections using the temporal and spatial locality of critical sections and provide empirical results showing that the heuristic can infer critical sections in shared memory programs. Real critical sections in benchmark programs are completely covered by inferred critical sections up to 75% to 80% of the time. A programmer can use the reported critical sections to inform his addition of locks into the program.