Starvation and critical race analyzers for Ada
- 1 January 1990
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 16 (8) , 829-843
- https://doi.org/10.1109/32.57622
Abstract
Starvation and critical race analysis tools for Ada designs are described. These tools are part of a temporal analysis toolset that includes an operational specification language, a language interpreter, and a deadlock analyzer for Ada. The starvation analyzer is based on a set-theoretic model of starvation. It uses a proof tree produced by the deadlock analyzer to define the possible computation space of the design. A preprocessing phase of the starvation tool optimizes the analysis so that the resulting analysis is efficient. Unlike livelock analysis in state machines, the starvation analyzer does not require a priori specification of home states to discern liveness. The critical race analysis tool provides semiautomatic proof of critical races by identifying nondeterministic rendezvous (races) from the proof tree generated by the deadlock analyzer, and then assisting the human operator in identifying which of these constitute critical races. Several design examples are used to demonstrate the capabilities of the two analysis methods.Keywords
This publication has 14 references indexed in Scilit:
- On the absence of livelocks in parallel programsPublished by Springer Nature ,2005
- Software CAD: a revolutionary approachIEEE Transactions on Software Engineering, 1989
- Critical races in Ada programsIEEE Transactions on Software Engineering, 1989
- Experience with the automatic temporal analysis of multitasking Ada designsPublished by Association for Computing Machinery (ACM) ,1987
- FairnessPublished by Springer Nature ,1986
- A general-purpose algorithm for analyzing concurrent programsCommunications of the ACM, 1983
- On Communicating Finite-State MachinesJournal of the ACM, 1983
- Finite state description of communication protocolsComputer Networks (1976), 1978
- Petri NetsACM Computing Surveys, 1977
- Concurrent control with “readers” and “writers”Communications of the ACM, 1971