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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
ISO/IEC 8652. Ada Reference Manual, 1995.
S. Alstrup, D. Harel, P. W. Lauridsen, and M. Thorup. Dominators in linear time. SIAM Journal on Computing, 28(6):2117–2132, 1999.
G. R. Andrews. Concurrent Programming, Principles & Practice. Benjamin/Cummings, Redwood City, California, 1991.
A. V. Aho, R. Sethi, and J. D. Ullman. Compilers. Addison-Wesley, Reading, Massachusetts, 1986.
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.
E. W. Dijkstra. Solution of a problem in concurrent programming control. Communications of the ACM, 8(9):569, 1965.
E. W. Dijkstra. Co-operating sequential processes. In F. Genuys, editor, Programming Languages: NATO Advanced Study Institute, pages 43–112. Academic Press, 1968.
C. A. R. Hoare. Communicating Sequential Processes. Prentice Hall, Englewood Cliffs, NJ, 1985.
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.
P. Mantegazza et al. DIAPM RTAI Programming Guide 1.0. Lineo, Inc., Lindon, Utah 84042, US, 2000. http://www.rtai.org.
K. Mehlhorn. Graph Algorithms and NP-Completeness, volume 2 of Data Structures and Algorithms. Springer-Verlag, Berlin, 1984.
S. S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco, 2000.
G. Ramalingam. Identifying loops in almost linear time. ACM Transactions on Programming Languages and Systems, 21(2):175–188, March 1999.
R. Sedgewick. Algorithms. Addison-Wesley, Reading, MA, 2nd edition, 1988.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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