Abstract
Synchronization errors in parallel programs are not limited to race conditions involving accesses to single variables. Absence of these errors does not guarantee that programs are error free. However, many of the remaining errors cannot be recognized without a higher level of abstraction for the communication patterns. This paper discusses two types of high-level error scenarios, namely non-atomic protection and lost-updates, and presents a static framework to detect situations where such synchronization anomalies can manifest themselves.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Netzer, R.H.B., Miller, B.P.: What are race conditions? some issues and formalizations. LOPLAS 1992: ACM Letters on Programming Languages and Systems 1, 74–88 (1992)
Artho, C., Havelund, K., Biere, A.: High-level data races. Software Testing, Verification and Reliability 13, 207–227 (2003)
Havelund, K., Roşu, G.: An overview of the runtime verification tool java pathexplorer. Form. Methods Syst. Des. 24, 189–215 (2004)
Raza, A., Vogel, G.: RCanalyser: A Flexible Framework for the Detection of Data Races in Parallel Programs. In: Kordon, F., Vardanega, T. (eds.) Ada-Europe 2008. LNCS, vol. 5026, pp. 226–239. Springer, Heidelberg (2008)
Raza, A., Vogel, G., Plödereder, E.: Bauhaus - A Tool Suite for Program Analysis and Reverse Engineering. In: Pinho, L.M., González Harbour, M. (eds.) Ada-Europe 2006. LNCS, vol. 4006, pp. 71–82. Springer, Heidelberg (2006)
Engler, D., Ashcraft, K.: RacerX: Effective, Static Detection of Race Conditions and Deadlocks. In: SOSP 2003: Proceedings of the 19th ACM Symposium on Operating Systems Principles, pp. 237–252. ACM Press, New York (2003)
Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen (1994)
Steensgaard, B.: Points-to Analysis in Almost Linear Time. In: POPL 1996: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 32–41. ACM Press, New York (1996)
Das, M.: Unification-based Pointer Analysis with Directional Assignments. In: PLDI 2000: Proceedings of the ACM SIGPLAN 2000, Conference on Programming Language Design and Implementation, pp. 35–46 (2000)
Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: A Dynamic Data Race Detector for Multi-Threaded Programs. In: SOSP 1997: Proceedings of the 16th ACM Symposium on Operating Systems Principles, pp. 27–37. ACM Press, New York (1997)
Harrow, J.J.: Runtime checking of multithreaded applications with visual threads. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 331–342. Springer, Heidelberg (2000)
Artho, C., Biere, A.: Applying static analysis to large-scale, multi-threaded java programs. In: Australian Software Engineering Conference, pp. 68–75 (2001)
Detlefs, D.L., Rustan, K., Leino, M., Nelson, G., Saxe, J.B.: Extended static checking. SRC Research Report 159, Compaq Systems Research Center (December 1998)
Visser, W., Havelund, K., Brat, G.P., Park, S.: Model checking programs. In: ASE 2000: Proceedings of the Fifteenth IEEE International Conference on Automated Software Engineering, Grenoble, France, pp. 3–12. IEEE Computer Society, Los Alamitos (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Raza, S.A., Franke, S., Ploedereder, E. (2011). Detecting High-Level Synchronization Errors in Parallel Programs. In: Romanovsky, A., Vardanega, T. (eds) Reliable Software Technologies - Ada-Europe 2011. Ada-Europe 2011. Lecture Notes in Computer Science, vol 6652. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21338-0_2
Download citation
DOI: https://doi.org/10.1007/978-3-642-21338-0_2
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-21337-3
Online ISBN: 978-3-642-21338-0
eBook Packages: Computer ScienceComputer Science (R0)