Abstract : This paper presents a high-level design-in the form of necessary data structures, mechanisms, and algorithms-for implementing the basic priority inheritance and priority ceiling protocols in an Ada runtime system. Both of these protocols solve the unbounded priority inversion problem, where a high- priority task can be forced to wait for a lower priority task for an arbitrary duration time. The protocols and their implementation also address the issues of non-deterministic selection of open alternatives and FIFO entry call queues. These protocols allow the timing analysis of a given set of Ada tasks in order to guarantee their deadlines in real-time systems. Importantly, it is possible to implement the protocols within the current semantics of the Ada language given the interpretations of Ada rules described by Goodenough and Sha in the Software Engineering Institute Technical Report 33 (1988). Strategies and possible alternatives are discussed for implementing these protocols in an Ada runtime system targeted to a uniprocessor execution environment.
[1]
L. Sha,et al.
The priority ceiling protocol: A method for minimizing the blocking of high priority Ada tasks
,
1988,
IRTAW '88.
[2]
Lui Sha,et al.
Priority inversion in Ada
,
1987,
ALET.
[3]
A. Burns,et al.
Real-time Ada issues
,
1987,
IRTAW '87.
[4]
Lui Sha,et al.
Real-time scheduling theory and Ada
,
1990,
Computer.
[5]
C. Douglass Locke,et al.
Problems in Ada runtime task scheduling
,
1987,
IRTAW '87.
[6]
Lui Sha,et al.
Priority Inheritance Protocols: An Approach to Real-Time Synchronization
,
1990,
IEEE Trans. Computers.
[7]
M. Klein,et al.
A testbed for investigating real-time Ada issues
,
1988,
IRTAW '88.
[8]
Lui Sha,et al.
Limitations of Ada for real-time scheduling
,
1987,
IRTAW '87.
[9]
A Burns.
Using large families for handling priority requests
,
1987,
ALET.
[10]
Frank McCormick.
Scheduling difficulties of Ada in the hard real-time environment
,
1987,
IRTAW '87.