<
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 {
priority inversionmbj/Mars_Pathfinder/Mars_Pathfinder.html">Mars Pathfinder
(http://research.microsoft.com/priority inversionmbj/Mars_Pathfinder/Mars_Pathfinder.html)}.
base station ('Sagan Memorial Station').
(2003-06-04)