DocumentCode
970768
Title
Monitoring for Deadlock and Blocking in Ada Tasking
Author
German, Steven M.
Author_Institution
Computer Science Laboratory, GTE Laboratories, Waltham, MA 02254.
Issue
6
fYear
1984
Firstpage
764
Lastpage
777
Abstract
We present a deadlock monitoring algodrithm for Ada tasking programs which is based on transforming the source program. The transformations introduce a new task called the monitor, which receives information from all other tasks about their tasking activities. The monitor detects deadlocks consisting of circular entry calls as well as some noncircular blocking situations. The correctness of the program transformations is formulated and proved using an operational state graph model of tasking. The main issue in the correctness proof is to show that the deadlock monitor algorithm works correctly without having simultaneous information about the state of the program. In the course of this work, we have developed some useful techniques for programming tasking applications, such as a method for uniformly introducing task identifiers. We argue that the ease of finding and justifying program transformations is a good test of the generality and uniformity of a programming language. The complexity of the full Ada language makes it difficult to safely apply transformational methods to arbitrary programs. We discuss several problems with the current semantics of Ada´s tasks.
Keywords
Computer science; Debugging; Detection algorithms; Monitoring; Multitasking; Signal processing; System recovery; Testing; Concurrent algorithms; concurrent programming languages; correctness proofs of concurrent programs; deadlock detection; exceptions; program transformations; semantics of Ada tasking; state graph models; task identifiers;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.1984.5010305
Filename
5010305
Link To Document