Abstract
In this paper we show 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. Fortunately, it turns out that adapting existing data race detectors to detect such bugs for sequential programs is straightforward. We present such a tool, and we describe the modifications that were necessary to detect data races in sequential programs. The experimental evaluation revealed a number of data races in some widely used programs.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Netzer, R.H., Miller, B.P.: What are race conditions? some issues and formalizations. ACM Letters on Programming Languages and Systems (1992)
Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: A dynamic data race detector for multithreaded programs. ACM Transactions on Computer Systems 15, 391–411 (1997)
Ronsse, M., De Bosschere, K.: An on-the-fly Data Race Detector for RECPLAY, a Record/Replay System for Parallel Programs. In: Proceedings of the 16th ACM Symposium on Operating Systems Principles, Saint-Malo (1997) (on CD)
Stevens, W.R.: Advanced Programming in the UNIX Environment. Addison-Wesley, Reading (1993)
Zalewski, M.: Delivering signals for fun and profit. RAZOR, BindView Corporation (2001), http://razor.bindview.com/publish/papers/signals.txt
Maebe, J., Ronsse, M., De Bosschere, K.: DIOTA: Dynamic instrumentation, optimization and transformation of applications. In: Charney, M., Kaeli, D. (eds.) Compendium of Workshops and Tutorials Held in conjunction with PACT 2002: Intl. Conference on Parallel Architectures and Compilation Techniques, Charlottesville, VA (2002)
Ronsse, M., De Bosschere, K.: Non-intrusive detection of synchronization errors using execution replay. Automated Software Engineering 9, 95–121 (2002)
Mattern, F.: Virtual time and global states of distributed systems. In: Cosnard, Q., Raynal, R. (eds.) Proceedings of the Intl. Workshop on Parallel and Distributed Algorithms, pp. 215–226. Elsevier Science Publishers B.V., North-Holland (1989)
Fidge, C.J.: Logical time in distributed computing systems. IEEE Computer 24, 28–33 (1991)
Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 21, 558–565 (1978)
Christiaens, M., De Bosschere, K.: Accordion clocks: Logical clocks for data race detection. In: Sakellariou, R., Keane, J.A., Gurd, J.R., Freeman, L. (eds.) Euro-Par 2001. LNCS, vol. 2150, pp. 494–503. Springer, Heidelberg (2001)
Ronsse, M., Stougie, B., Maebe, J., De Bosschere, K.: An efficient data race detector backend for diota. In: Proceedings of the International Conference ParCo 2003 (2004) (to be published)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ronsse, M., Maebe, J., De Bosschere, K. (2004). Detecting Data Races in Sequential Programs with DIOTA . In: Danelutto, M., Vanneschi, M., Laforenza, D. (eds) Euro-Par 2004 Parallel Processing. Euro-Par 2004. Lecture Notes in Computer Science, vol 3149. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-27866-5_11
Download citation
DOI: https://doi.org/10.1007/978-3-540-27866-5_11
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22924-7
Online ISBN: 978-3-540-27866-5
eBook Packages: Springer Book Archive