• 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