ACM Transactions on Computer Systems · 1997 · 1.6K citations · 16 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureOperating SystemsError DetectionRace Condition VulnerabilitiesSynchronization PrimitivesData Race AnalysisData Race ConditionsDynamic Race DetectionRace Condition DetectionRace Conditions
Multithreaded programming is difficult and error prone. It is easy to make a mistake in synchronization that produces a data race, yet it can be extremely hard to locate this mistake during debugging. This article describes a new tool, called Eraser, for dynamically detecting data races in lock-based multithreaded programs. Eraser uses binary rewriting techniques to monitor every shared-monory reference and verify that consistent locking behavior is observed. We present several case studies, including undergraduate coursework and a multithreaded Web search engine, that demonstrate the effectiveness of this approach.
16
C. A. R. Hoare · Communications of the ACM · 1974 · 1.5K citations · Full text
Amitabh Srivastava, Alan Eustace · 1994 · 1K citations · Full text
Extensibility safety and performance in the SPIN operating system
Brian N. Bershad, Stefan Savage, Przemysław Pardyak et al. · 1995 · 955 citations
Edward K. Lee, Chandramohan A. Thekkath · 1996 · 520 citations · Full text