EngineeringMachine LearningSoftware EngineeringAccess ConflictsDetection TechniqueObject Race DetectionSoftware AnalysisFormal VerificationHardware SecurityImage AnalysisData SciencePattern RecognitionStatic CheckingCompilersDynamic CompilationRuntime OverheadMachine VisionRuntime VerificationObject DetectionConcurrent ProgrammingObject RacesComputer ScienceStatic Program AnalysisData SecurityComputer VisionProgram AnalysisObject RecognitionSoftware TestingFormal MethodsParallel ProgrammingSystem Software
We present an on-the-fly mechanism that detects access conflicts in executions of multi-threaded Java programs. Access conflicts are a conservative approximation of data races. The checker tracks access information at the level of objects (object races) rather than at the level of individual variables. This viewpoint allows the checker to exploit specific properties of object-oriented programs for optimization by restricting dynamic checks to those objects that are identified by escape analysis as potentially shared. The checker has been implemented in collaboration with an "ahead-of-time"Java compiler. The combination fo static program analysis (escape-analysis) and inline instrumentation during code generation allows us to reduce the runtime overhead of detecting access conflicts. This overhead amounts to about 16-129% in time and less than 25% in space for typical benchmark applications and compares favorably to previously published on-the-fly mechanism that incurred an overhead of about a factor of 2-80 in time and up to a factor of 2 in space.
23
Stefan Savage, Michael T. Burrows, Greg Nelson et al. · ACM Transactions on Computer Systems · 1997 · 1.6K citations · Full text
Jong-Deok Choi, Manish Gupta, Maurício Serrano et al. · 1999 · 499 citations · Full text
Robert H. B. Netzer, Barton P. Miller · ACM Letters on Programming Languages and Systems · 1992 · 452 citations · Full text
Ethnicity, Engineering, Race Law +26
Type-based race detection for Java
Cormac Flanagan, Stephen N. Freund · 2000 · 441 citations
Compositional pointer and escape analysis for Java programs
John Whaley, Martin Rinard · 1999 · 438 citations