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
FOAL 2003 Proceedings Foundations of Aspect-Oriented Langauges Workshop at AOSD 2003
Gary T. Leavens,Curtis Clifton +1 more
TL;DR: This paper shows how to automatically identify and validateSpectative aspects in augmented systems, and imply absence of harm for all safety and liveness properties involving only the variables and fields of the original system.
Journal ArticleDOI
Modeling and preventing TOCTTOU vulnerabilities in Unix-style file systems
Jinpeng Wei,Calton Pu +1 more
TL;DR: This paper presents a model of the TOCTTOU problem, which enumerates all the potential file system call pairs that form the check/use steps, and proposes a defense mechanism (called EDGI) that prevents an attacker from tampering with the file condition between exploitable TOctTOU pairs during a vulnerable program's execution.
Proceedings ArticleDOI
Replay Debugging for Multi-threaded Embedded Software
TL;DR: The Replay Debugger, based on Lamport clock, offers a user controlled debugging environment in which the program execution follows the identical partially ordered happened-before dependency among threads and IO events as that of the recorded run.
Proceedings ArticleDOI
An Automation-Assisted Empirical Study on Lock Usage for Concurrent Programs
TL;DR: This paper reports an empirical study on lock usage in concurrent programs based on the automatic lock analysis tool called LUPA, which analyzes how lock is used in concurrent Programs and how lock usage changes throughout the product environment.
Book ChapterDOI
Detecting Data Races in Sequential Programs with DIOTA
TL;DR: It is shown that data races, a type of bug that generally only causes havoc in parallel programs, can also occur in sequential programs that use signal handlers, and a tool is presented to detect such bugs.
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.