Skip to main content

Detecting High-Level Synchronization Errors in Parallel Programs

  • Conference paper
Reliable Software Technologies - Ada-Europe 2011 (Ada-Europe 2011)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6652))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. Artho, C., Havelund, K., Biere, A.: High-level data races. Software Testing, Verification and Reliability 13, 207–227 (2003)

    Article  Google Scholar 

  3. Havelund, K., Roşu, G.: An overview of the runtime verification tool java pathexplorer. Form. Methods Syst. Des. 24, 189–215 (2004)

    Article  MATH  Google Scholar 

  4. 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)

    Chapter  Google Scholar 

  5. 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)

    Chapter  Google Scholar 

  6. 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)

    Google Scholar 

  7. Andersen, L.O.: Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, University of Copenhagen (1994)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. Artho, C., Biere, A.: Applying static analysis to large-scale, multi-threaded java programs. In: Australian Software Engineering Conference, pp. 68–75 (2001)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics