Proceedings ArticleDOI
Eraser: a dynamic data race detector for multi-threaded programs
Stefan Savage,Michael Burrows,Greg Nelson,Patrick G. Sobalvarro,Thomas Anderson +4 more
- Vol. 31, Iss: 5, pp 27-37
Reads0
Chats0
TLDR
Eraser as mentioned in this paper uses binary rewriting techniques to monitor every shared memory reference and verify that consistent locking behavior is observed in lock-based multi-threaded programs, which can be used to detect data races.Abstract:
Multi-threaded 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 paper describes a new tool, called Eraser, for dynamically detecting data races in lock-based multi-threaded programs. Eraser uses binary rewriting techniques to monitor every shared memory reference and verify that consistent locking behavior is observed. We present several case studies, including undergraduate coursework and a multi-threaded Web search engine, that demonstrate the effectiveness of this approach.read more
Citations
More filters
Proceedings ArticleDOI
Types for atomicity
Cormac Flanagan,Shaz Qadeer +1 more
TL;DR: It is proposed that a stronger non-interference property is required, namely the atomicity of code blocks, and a type system for specifying and verifying such atomicity properties is presented, which is sufficient to verify a number of interesting examples.
Journal ArticleDOI
Testing Concurrent Java Programs using Randomized Scheduling
TL;DR: The approach discussed here is more scalable but less systematic, which transforms a given Java program by inserting calls to a scheduling function at selected points, ensuring that for each reachable deadlock and assertion violation, there is a sequence of choices by the scheduling function that leads to it.
Proceedings ArticleDOI
The Linux scheduler: a decade of wasted cores
TL;DR: New tools that check for violation of the invariant online and visualize scheduling activity are built that are simple, easily portable across kernel versions, and run with a negligible overhead to help keep this type of bug at bay.
Book ChapterDOI
Bauhaus: a tool suite for program analysis and reverse engineering
TL;DR: Bauhaus is described, a comprehensive tool suite that supports program understanding and reverse engineering on all layers of abstraction, from source code to architecture.
Journal ArticleDOI
MultiRace: efficient on‐the‐fly data race detection in multithreaded C++ programs
Eli Pozniansky,Assaf Schuster +1 more
TL;DR: A novel testing tool, called MultiRace, which combines improved versions of Djit and Lockset—two very powerful on‐the‐fly algorithms for dynamic detection of apparent data races, and shows that the overheads imposed by MultiRace are often much smaller (orders of magnitude) than those obtained by other existing tools.
References
More filters
Book ChapterDOI
Time, clocks, and the ordering of events in a distributed system
TL;DR: In this paper, the concept of one event happening before another in a distributed system is examined, and a distributed algorithm is given for synchronizing a system of logical clocks which can be used to totally order the events.
Journal ArticleDOI
Time, clocks, and the ordering of events in a distributed system
TL;DR: In this article, the concept of one event happening before another in a distributed system is examined, and a distributed algorithm is given for synchronizing a system of logical clocks which can be used to totally order the events.
Journal ArticleDOI
Monitors: an operating system structuring concept
TL;DR: In this paper, the authors develop Brinch-Hansen's concept of a monitor as a method of structuring an operating system and describe a possible method of implementation in terms of semaphores and give a suitable proof rule.
Proceedings ArticleDOI
Extensibility safety and performance in the SPIN operating system
Brian N. Bershad,Stefan Savage,Przemysław Pardyak,Emin Gün Sirer,Marc E. Fiuczynski,David Becker,Craig Chambers,Susan J. Eggers +7 more
TL;DR: This paper describes the motivation, architecture and performance of SPIN, an extensible operating system that provides an extension infrastructure together with a core set of extensible services that allow applications to safely change the operating system's interface and implementation.
Proceedings ArticleDOI
ATOM: a system for building customized program analysis tools
Amitabh Srivastava,Alan Eustace +1 more
TL;DR: ATOM as mentioned in this paper is a single framework for building a wide range of customized program analysis tools, including block counting, profiling, dynamic memory recording, instruction and data cache simulation, pipeline simulation, evaluating branch prediction, and instruction scheduling.