Modeling the Ada Task System by Petri Nets (original) (raw)

Design and implementation of a Petri net based toolkit for Ada tasking analysis

IEEE Transactions on Parallel and Distributed Systems, 1990

As computer systems have become more and more decentralized and parallel in operation, interest in concurrent and distributed software has grown. One very important and challenging problem for distributed-software engineering is program behavior analysis. We have advocated the use of Petri nets to d e h e a general static analysis framework for Ada tasking. The framework has evolved into a collection of tools that have proven to be a very valuable platform for experimental research. In this paper, we d e h e and discuss the design and implementation of tools that make up our Tasking-Oriented Toolkit for the Ada Language (TOTAL). Both modeling and query /analysis methods and tools are discussed. Example Ada tasking programs are used to demonstrate the utility of each tool individually as well as the way the tools integrate together.

The Ada task system and real-time applications: an implementation schema

Computer Languages, 1985

The Ada task system is critically evaluated from the point of view of real-time applications. Based on such an evaluation an abstract machine, supplying both an operational semantics and an implementation schema for it, is derived. Such a schema, depending on parameters, may supply a standard implementation following the Ada Reference Manual specifications, or may allow the user to implement ad hoc policies required by the time constraints of the specific application.

On developing and verifying design abstractions for reliable concurrent programming in Ada

2001

Ada 95 is an expressive concurrent programming language, which allows building large multi-tasking applications. Much of the complexity of these applications stems from the interactions between the tasks. Design abstractions (such as atomic actions, conversations etc.) have been proposed to deal with such complexity. This paper argues that Petri nets offer a promising, tool-supported, technique for checking the logical correctness of abstractions. The paper illustrates the effectiveness of this approach by showing the correctness of an Ada implementation of the atomic action protocol using a variety of Petri net tools.

A Model of Intertask Communication in Ada

Language-level concurrency is becoming more widely available in programming languages, placing parallel programming features in the hands of many programmers for the rst time. Unfortunately, the precise semantics of these features is frequently not well understood, principally because of the informal way in which such features are described. Typical of such informal description techniques is the manner in which technical English is used in the Ada Language Reference Manual to de ne the tasking facilities of Ada.

Modelling the semantics of multitasking facilities in Concurrent C using Petri nets

Information and Software Technology, 1996

Concurrent C (ConcC) [ 1 ] is a relatively new language that extends the C programming language [ 21 by incorporating multitasking facilities. These facilities are mainly based on the bidirectional rendezvous concept, and they offer flexible and efficient mechanisms for the specification of concurrency, communication and synchronization often required in real-time systems. However, as for most real-time and concurrent programming languages such as Ada [ 3 ] , the description of multitasking facilities in ConcC is lacking a rigorous and formal semantical definition. Most existing introductory materials to ConcC by its authors are informally described, and cannot be easily understood. In this paper, we explain the semantics of multitasking facilities in ConcC using the Petri net model. As is well known, the Petri net model is a formal graphical model that can describe concurrent behaviours of systems in a natural and intuitive manner, and yet it is based on strong mathematical and semantical foundations. Timed, inhibitor arc and predicate Petri nets are extensions that are used to enhance the expressive power of the basic Petri net to model and explain all ConcC multitasking features.

An application of Petri net reduction for Ada tasking deadlock analysis

IEEE Transactions on Parallel and Distributed Systems, 1996

As part of our continuing research on using Petri nets to support automated analysis of Ada tasking behavior, we have investigated the application of Petri net reduction for deadlock analysis. Although reachability analysis is an important method to detect deadlocks, it is in general inefficient or even intractable. Net reduction can aid the analysis by reducing the size of the net while preserving relevant properties. We introduce a number of reduction rules and show how they can be applied to Ada nets, which are automatically generated Petri net models of Ada tasking. We define a reduction process and a method by which a useful description of a detected deadlock state can be obtained from the reduced net's information. A reduction tool and experimental results from applying the reduction process are discussed.

Formal modeling of synchronization methods for concurrent objects in Ada 95

ACM SIGAda Ada Letters, 1999

One important role for One important role for Ada programming is Ada programming is to aid engineering of concurrent and to aid engineering of concurrent and distributed software. In a concurrent and distributed software. In a concurrent and distributed environment, objects may distributed environment, objects may execute concurrently and need to be execute concurrently and need to be synchronized to serve a common goal. Three synchronized to serve a common goal. Three basic methods by which objects in a basic methods by which objects in a concurrent environment can be constructed concurrent environment can be constructed and synchronized have been identified [1]. and synchronized have been identified [1]. To formalize the semantics of these methods To formalize the semantics of these methods and to provide a formal model of their core and to provide a formal model of their core behavior, we provide some graphic models behavior, we provide some graphic models based on the based on the Petri net formalism. The Petri net formalism. The purpose of this formal modeling is to purpose of this formal modeling is to illustrate the possibility of automatic illustrate the possibility of automatic program analysis for object-oriented program analysis for object-oriented features in Ada-95. Models for the three features in Ada-95. Models for the three distributed-object synchronization methods distributed-object synchronization methods are discussed, and a potential deadlock are discussed, and a potential deadlock situation for one of the methods/models is situation for one of the methods/models is illustrated. We conclude with some illustrated. We conclude with some comparison of the three methods in terms of comparison of the three methods in terms of the model abstractions. the model abstractions.

Re-designing tasking structures of Ada programs for analysis: A case study

Software Testing, Verification and Reliability, 1994

In previous publications the authors described a compositional (hierarchical) approach to reachability analysis of Ada tasking programs based on process algebra. The abstraction capabilities of process algebra provide an effective means to control state explosion in automated state-space analysis, but only if a design is carefully modularized to encapsulate details of behaviour. This paper reports experience modifying an existing design (a remote temperature sensor system described by Sanden) to make it more amenable to hierarchical analysis. Redesign for analysis was effective in improving the design in other ways as well: flaws uncovered in the analysis (and present in the original design) were easy to understand and correct because of the increased understandability of the revised design. This also suggests that these flaws might have been avoided, and the design generally improved, had 'design for analysis' been applied from the start.

Techniques for semi-automated implementation of state-oriented, real-time formal specifications in Ada

Proceedings of the ninth Washington Ada symposium on Ada Empowering software users and developers - WADAS '92, 1992

This paper describes salient features of a formal spedlcdon technique called State Architecture Notation (SAN), that is @cularly suited to the specification of functional properties as welI as Concurrency/real-time aspcta of large soflware. The issues involved in automatically mmsladng SAN specifications into Ada programs are discussed in this paper. Finally, we present our experiences with a spwiilc application of this specificatiodiiplement.ation process to a conventional realtime scheduling technique.