priority inversion


Also found in: Wikipedia.

priority inversion

(parallel)
The state of a concurrent system where a high priority task is waiting for a low priority task which is waiting for a medium priority task. The system may become unstable and crash under these circumstances.

In an operating system that uses multiple tasks, each task (or context) may be given a priority. These priorities help the scheduler decide which task to run next. Consider tasks, L, M, and H, with priorities Low, Medium, and High. M is running and H is blocked waiting for some resource that is held by L. So long as any task with a priority higher than L is runable, it will prevent task L, and thus task H, from running.

Priority inversion is generally considered either as a high-level design failure or an implementation issue to be taken into account depending on who is talking. Most operating systems have methods in place to prevent or take inversion into account. Priority inheritance is one method.

The most public instance of priority inversion is the repeated 'fail-safe' rebooting of the Mars Pathfinder. base station ('Sagan Memorial Station').
References in periodicals archive ?
If a high priority task is blocked by a transaction in a less important task, it can force a roll back to prevent priority inversion.
Real-Time Interprocess Communications: MINIX4RT IPC uses unidirectional communication channels called Message Queues that handle messages in priority order and guarantee message delivery in a timely fashion and avoid the Priority Inversion problem [5].
Applications can take advantage of ThreadX's preemption-threshold to eliminate excessive context switching, un-deterministic priority inversion, and enhance responsiveness.
Summary of Key Capabilities of TimeSys Linux RTOS - High availability, carrier-grade capabilities like hot-swap, real-time support, resilient file system support - Single-kernel Linux RTOS with priority inversion avoidance mechanisms and high resolution timers - Support on embedded carrier-grade platforms like SBE, Artesyn, Motorola, Kontron, ADI - "Ready to run" delivery reduces engineering startup time - Complete range of development tools to maximize developer productivity
as long as priority inversion (see below) is absent).
The disadvantages of this model stem from the excessive context switching and the synchronization required to manage the request queue, as well as request-level priority inversion caused by connection multiplexing.
A priority inversion exists when a given task must wait on a task of lower priority to release a critical section.

Full browser ?