Priority ceiling protocol in Ada
Kwok-Bun Yue, Sadegh Davari, Ted Leibfried · 1996
The priority ceiling protocol (PCP) is an effective protocol for minimizing priority inversions in real-time scheduling.Priority inversion occw-s when a high priority task is blocked by a low priority task, such as at a shared semaphore or a protected operation.PCP guarantees the absence of chained priority inversion or deadlock.The ceiling locking (CL) priority on protected objects of Ada-95 also has these properties but has some limitations.For example, tasks cannot suspend themselves inside a protected operation.PCP has no such restrictions.Thus, PCP is more appropriate for some real-time applications.PCP has not been implemented in any language, • including Ada.A guideline for emulating PCP using Ada-83 exists but it lacks generality and flexibility.This paper discusses an implementation of PCP in Ada-95, the Ada-95 features that enable the implementation, the design of the implementation and some related issues.