priority inversion

from The Free On-line Dictionary of Computing (8 July 2008)
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
   
(http://research.microsoft.com/~mbj/Mars_Pathfinder/Mars_Pathfinder.html).
   base station ('Sagan Memorial Station').

   (2003-06-04)
    

[email protected]