Abstract
Task Dependence and Termination in Ada
by: Laura K. Dillon
Abstract:
We use a contour model of Ada tasking to analyze the semantics of taskdependence and termination. Our analysis clarifies the complex definitions andrules that determine when procedures and tasks terminate during execution of anAda program and examines the implications of and possible motivation for thetermination rules.We show that the termination rules prevent the premature deallocation of dataassociated with the runtime-instances of scope units, but that the policy isunnecessarily conservative in this regard. For task instances created byinvoking a storage allocator, we show that the conservative termination policypermits more efficient management of heap storage than a less conservativepolicy.We also examine the impact of the termination rules in Ada on thesynchronization of concurrent unit instances. The rules are shown to supportboth master-slave and client-server applications. In particular, we show howthe rules governing distributed termination guarantee that the terminatinginstances can no longer affect the outcome of a computation.The analysis is intended give programmers a better understanding of Ada of thetermination model.
Keywords:
Ada tasking, Task Termination, master/dependent relations,distributed termination, run-time storage management, taskingexecution model
Date:
March 1994
Document: 1994-03