Skip to main content

Busy Wait Analysis

  • Conference paper
  • First Online:
Reliable Software Technologies — Ada-Europe 2003 (Ada-Europe 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2655))

Included in the following conference series:

Abstract

A busy wait loop is a loop which repeatedly checks whether an event occurs. Busy wait loops for process synchronization and communication are considered bad practice because (1) system failures may occur due to race conditions and (2) system resources are wasted by busy wait loops. In general finding a busy wait loop is an undecidable problem. To get a handle on the problem, we introduce a decidable predicate for loops that will spot most important classes of busy waiting although false alarms may occur. The loop predicate for detecting busy wait loops is based on control flow graph properties (such as loops) and program analysis techniques.

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. ISO/IEC 8652. Ada Reference Manual, 1995.

    Google Scholar 

  2. S. Alstrup, D. Harel, P. W. Lauridsen, and M. Thorup. Dominators in linear time. SIAM Journal on Computing, 28(6):2117–2132, 1999.

    Article  MATH  MathSciNet  Google Scholar 

  3. G. R. Andrews. Concurrent Programming, Principles & Practice. Benjamin/Cummings, Redwood City, California, 1991.

    Google Scholar 

  4. A. V. Aho, R. Sethi, and J. D. Ullman. Compilers. Addison-Wesley, Reading, Massachusetts, 1986.

    Google Scholar 

  5. T. E. Cheatham, G. H. Holloway, and J. A. Townley. Symbolic Evaluation and the Analysis of Programs. IEEE Trans. on Software Engineering, 5(4):403–417, July 1979.

    Article  Google Scholar 

  6. E. W. Dijkstra. Solution of a problem in concurrent programming control. Communications of the ACM, 8(9):569, 1965.

    Article  Google Scholar 

  7. E. W. Dijkstra. Co-operating sequential processes. In F. Genuys, editor, Programming Languages: NATO Advanced Study Institute, pages 43–112. Academic Press, 1968.

    Google Scholar 

  8. C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, Englewood Cliffs, NJ, 1985.

    MATH  Google Scholar 

  9. T. Lengauer and R. E. Tarjan. A fast algorithm for finding dominators in a flow graph. ACM Transactions on Programming Languages and Systems, 1(1):121–141, July 1979.

    Article  MATH  Google Scholar 

  10. P. Mantegazza et al. DIAPM RTAI Programming Guide 1.0. Lineo, Inc., Lindon, Utah 84042, US, 2000. http://www.rtai.org.

    Google Scholar 

  11. K. Mehlhorn. Graph Algorithms and NP-Completeness, volume 2 of Data Structures and Algorithms. Springer-Verlag, Berlin, 1984.

    Google Scholar 

  12. S. S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco, 2000.

    Google Scholar 

  13. G. Ramalingam. Identifying loops in almost linear time. ACM Transactions on Programming Languages and Systems, 21(2):175–188, March 1999.

    Article  MathSciNet  Google Scholar 

  14. R. Sedgewick. Algorithms. Addison-Wesley, Reading, MA, 2nd edition, 1988.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Blieberger, J., Burgstaller, B., Scholz, B. (2003). Busy Wait Analysis. In: Rosen, JP., Strohmeier, A. (eds) Reliable Software Technologies — Ada-Europe 2003. Ada-Europe 2003. Lecture Notes in Computer Science, vol 2655. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44947-7_10

Download citation

  • DOI: https://doi.org/10.1007/3-540-44947-7_10

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40376-0

  • Online ISBN: 978-3-540-44947-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics