Priority ceiling protocol
A locking rule for real-time systems that gives every resource a priority ceiling, so priority inversion and deadlock cannot happen in the first place.
Each mutex is assigned a ceiling ahead of time: the highest priority of any task that will ever take it. In the simplest form, the immediate ceiling or "highest locker" protocol, a task that acquires the lock is bumped straight to the ceiling and dropped back only when it releases it. No other task that wants the same resource can even become runnable in the meantime.
Sha, Rajkumar and Lehoczky described it in 1990, in the same paper that introduced priority inheritance. Inheritance reacts once a conflict has already happened; the ceiling prevents it. The payoff is provable: a task blocks at most once, for at most one critical section, and circular waits are impossible. The cost is that you must know statically who uses what — exactly the kind of knowledge safety-certified systems demand anyway. Ada calls it Ceiling_Locking, POSIX calls it PTHREAD_PRIO_PROTECT, and OSEK/AUTOSAR builds its resource model on it.