Symbolic Data Flow Analysis for Detecting Deadlocks in Ada Tasking Programs
It is well accepted that designing and analyzing concurrent software-components are tedious tasks. Assuring the quality of such software requires formal methods, which can statically detect deadlocks. This paper presents a symbolic data flow analysis framework for detecting deadlocks in Ada programs with tasks. The symbolic data flow framework is based on symbolic evaluation – an advanced technique to statically determine properties of programs.
The framework can guarantee the deadlock-freeness for an arbitrary hardware environment. Our approach differs from existing work in that tasks can be dynamically created and completed in the program. Examples are used to illustrate our approach.
KeywordsIntermediate Node Symbolic Execution Select Statement Symbolic Evaluation Exit Node
Unable to display preview. Download preview PDF.
- 1.Blieberger, J.: Data-flow frameworks for worst-case execution time analysis, Real-Time Systems (2000) (to appear)Google Scholar
- 4.Blieberger, J., Fahringer, T., Scholz, B.: Symbolic cache analysis for real-time systems. Real-Time Systems, Special Issue on Worst-Case Execution Time Analysis (2000) (to appear)Google Scholar
- 9.Duesterwald, E.: Static concurrency analysis in the presence of procedures, Tech. Report #91-6, Department of Computer Science, University of Pittsburgh (1991)Google Scholar
- 10.Duesterwald, E., Soffa, M.L.: Concurrency analysis in the presence of procedures using a data-flow framework. In: Proceedings of the 4th Symp. on Testing, Analysis and Verification (TAV4), pp. 36–48Google Scholar
- 11.Duri, S., Buy, U., Devarapalli, R., Shatz, S.M.: Application and experimental evaluation of state space reduction methods for deadlock analysis in Ada. ACMTrans. on Software Engineering and Methodology 3(4), 161–180 (1994)Google Scholar
- 12.Fahringer, T., Scholz, B.: Symbolic Evaluation for Parallelizing Compilers. In: Proc. of the ACM International Conference on SupercomputingGoogle Scholar
- 13.Long, D., Clarke, L.A.: Data flow analysis of concurrent systems that use the rendezvous model of synchronization. In: Proceedings of the ACM Symp. on Testing, Analysis, and Verification, pp. 21–35Google Scholar
- 14.Masticola, S.P.: Static detection of deadlocks in polynomial time, Ph.D. thesis, Graduate School—New Brunswick, Rutgers, The State University of New Jersey (1993)Google Scholar
- 15.Masticola, S.P., Ryder, B.G.: Static infinite wait anomaly detection in polynomial time. In: Proceedings of the 1990 International Conference on Parallel Processing, pp. II78–II87 (1990)Google Scholar
- 17.Scholz, B., Blieberger, J., Fahringer, T.: Symbolic Pointer Analysis for Detecting Memory Leaks. In: ACM SIGPLAN Workshop on ”Partial Evaluation and Semantics- Based Program Manipulation (PEPM 2000), Boston (2000)Google Scholar
- 18.Stoltz, E., Srinivasan, H., Hook, J., Wolfe, M.: Static single assignment form for explicitly parallel programs: Theory and practice, Tech. report, Dept. of Computer Science and Engineering, Oregon Graduate Institute of Science and Technology, Portland, Oregon (1994)Google Scholar