Priority ceiling protocol

In real-time computing, the priority ceiling protocol is a synchronization protocol for shared resources to avoid unbounded priority inversion and mutual deadlock due to wrong nesting of critical sections.

The worst-case behaviour of the two ceiling schemes is identical from a scheduling view point.

Both variants work by temporarily raising the priorities of tasks.

[2] In ICPP, a task's priority is immediately raised when it locks a resource.

This ensures the OCPP property that "A task can only lock a resource if its dynamic priority is higher than the priority ceilings of all resources locked by other tasks".