2005 · 126 citations · 28 references
EngineeringComputer EngineeringComputer ScienceFault ToleranceFault-tolerant ComputingFault-tolerant SystemsError DetectionFailure DetectionSoftware Fault ToleranceAutomatic RecoveryExecution Trace AnalysisProgramming Software ErrorsSerializabilityShared Memory ProgrammingShared-memory Debugging
We aim to improve reliability of multithreaded programs by proposing a dynamic detector that detects potentially erroneous program executions and their causes. We design and evaluate a Serializability Violation Detector (SVD) that has two unique goals: (I) triggering automatic recovery from erroneous executions using backward error recovery (BER), or simply alerting users that a software error may have occurred; and (II) helping debug programs by revealing causes of error symptoms.Two properties of SVD help in achieving these goals. First, to detect only erroneous executions, SVD checks serializability of atomic regions, which are code regions that need to be executed atomically. Second, to improve usability, SVD does not require a priori annotations of atomic regions; instead, SVD approximates them using a heuristic. Experimental results on three widely-used multithreaded server programs show that SVD finds real bugs and reports modest false positives. The goal of this paper is to develop a detector suitable for (I) BER-based avoidance of erroneous program executions; and (II) alerting users as software errors occur. We argue that such a detector should have the following two properties.
28
Simics: A full system simulation platform
Peter Magnusson, Magnus Christensson, J. Eskilson et al. · Computer · 2002 · 2.1K citations
The notions of consistency and predicate locks in a database system
Kapali P. Eswaran, Jim Gray, Raymond A. Lorie et al. · Communications of the ACM · 1976 · 2K citations · Full text
Stefan Savage, Michael T. Burrows, Greg Nelson et al. · ACM Transactions on Computer Systems · 1997 · 1.6K citations · Full text