Dynamic Ceiling Priorities: A Proposal for Ada0Y

Jorge Real, Alan Burns, Edmond Schonberg, Alfons Crespo

Research output: Contribution to conferencePaperpeer-review


In Ada 95, the ceiling priority of a protected object is a static value that can only be assigned once, when the protected object is declared. This restriction coexists with the ability to dynamically change the priorities of tasks, which indeed is a flexible mechanism for programming adaptable real-time systems. Ceiling priorities being static, it is not possible to adequately implement the dynamic nature of multi-moded systems or systems scheduled with dynamic priorities. It is possible to work around this problem (e.g, by using the so-called ceiling of ceilings) but there is an added cost in terms of blocking times.
The next revision of the Ada 95 Standard, known as Ada 0Y, is considering the inclusion of dynamic ceiling priorities in the language. This paper presents the arguments for dynamic ceilings and discusses the approach proposed by the International Real-Time Ada Workshop consensus group. An experimental implementation is also discussed in order to evaluate the impact of this feature on the GNAT Ada compiler and run-time system which, in a nutshell, has turned out to be very low.
Original languageUndefined/Unknown
Publication statusPublished - 2004

Cite this