Analyzing Ada tasking deadlocks and livelocks using extended Petri nets
This paper presents a static analysis method based on extended Petri nets to detect tasking deadlocks and livelocks in a class of concurrent Ada programs. We model the tasking behavior of concurrent Ada programs using extended Petri nets and analyze the Petri net model of an Ada program using an algebraic method. We show that detection of a tasking deadlock or livelock in a concurrent Ada program can be reduced to getting a positive integer solution for a matrix equation concerning the Petri net model of the program. The method is effective for those concurrent Ada programs that include no dynamic creation of tasks, no abort statement, and no exception handler.
Unable to display preview. Download preview PDF.
- [Cheng-88a]J. Cheng and K. Ushijima: Modeling the Ada Tasking Using Extended Petri Nets, Memoirs of the Faculty of Engineering, Kyushu University, Vol. 48, No. 1, pp. 17–30, 1988.Google Scholar
- [Cheng-88b]J. Cheng and K. Ushijima: Analyzing Deadlocks and Livelocks in Concurrent Ada Programs Using Extended Petri Nets, Memoirs of the Faculty of Engineering, Kyushu University, Vol. 48, No. 2, pp. 153–165, 1988.Google Scholar
- [Cheng-90b]J. Cheng: Task-Wait-For Graphs and Their Application to Handling Tasking Deadlocks, Proc. of the ACM Third Annual TRI-Ada Conference, pp. 376–390, Baltimore, USA, December 1990.Google Scholar
- [DoD-83]United States Department of Defense: Reference Manual for the Ada Programming Language (ANSI/MIL-STD-1815A), 1983.Google Scholar
- [Peterson-81]J. L. Peterson: Petri Nets Theory and the Modeling of Systems, Prentice-Hall, 1981.Google Scholar
- [Stansifer-91]R. Stansifer and D. Marinescu: Petri Net Models of Concurrent Ada Programs, Microelectronics and Reliability, to appear, 1991.Google Scholar