priority inheritance

A technique for avoiding priority inversion by
temporarily raising the prioriry of all processes that want to
access a shared resource to the highest priority level of any
of them. Priority inversion occurs where a low priority
process, L is holding a resource required by a high priority
process, H, but L is not running because a medium priority
process, M is running. Under priority inheritance, L
temporarily inherits H's priority, allowing L to run and
release the resource H is waiting for.

For example, an ambulance (H) is stuck behind a lorry (L)
waiting at a junction (the shared resource) for a gap in a
line of cars (M) using the junction. Applying priority
inheritance, the cars give way to the lorry as they would to
the ambulance, thus allowing the lorry and then the ambulance
to use the junction.