A semantics for dynamic ceiling priorities in Ada

Several arguments have been given to justify the exclusion of dynamic ceiling priorities for protected objects in Ada. These arguments center on semantic complexity, the risks that can be derived from an erroneous usage of dynamic ceilings, and efficiency. But dynamic ceilings are very convenient for multi-moded systems and to dynamically adapting existing program libraries containing protected objects to new applications. This paper proposes a semantics for dynamic ceilings that does not add complexity to the language semantics or inefficiency to the run time system.