Diploma and Master Theses (authored and supervised):
"Detecting Busy Waiting by Means of Static Control Flow Analysis";
Supervisor: J. Blieberger;
Busy waiting occurs whenever a process repeatedly checks a condition until it becomes true without inﬂuencing that condition itself, thereby eﬀectively wasting system resources and introducing the risk of system failure due to race conditions. Hence, busy waiting is considered bad programming practice and can be avoided by the use of higher communication facilities.
In the development of critical systems, for which correctness and robustness are of vital importance, software quality assurance is of great value. However, it is diﬃcult and impractical to manually discover busy waiting in existing program code, which is why a static analysis tool is needed for that purpose.
Based on an existing algorithm that targets the detection of busy waiting using methods of static control ﬂow analysis, I developed such software and further improved the analysis methods to increase eﬃciency and sharpen the results.
Since the Ada programming language is often used for critical applications I selected it as target language for my analysis and also used it for the implementation of the analysis software itself.
The main results of my work are a static analysis tool for detecting busy waiting in Ada programs and a framework providing a powerful CFG-based representation of Ada source code facilitating comprehensive static control ﬂow analysis in general.
Electronic version of the publication:
Created from the Publication Database of the Vienna University of Technology.