Report ID
1994-03
Report Date
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.
Document
1994-03.ps214.52 KB