Priority Ceiling Protocol in Ada
MetadataShow full item record
The priority ceiling protocol (PCP) is an effective protocol for minimizing priority inversions in real-time scheduling. Priority inversion occurs 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 looking (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 desigu of the implementation and some related issues.