priority inversion


priority inversion

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

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

Priority inversion is generally considered either as ahigh-level design failure or an implementation issue to betaken into account depending on who is talking. Mostoperating systems have methods in place to prevent or takeinversion 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').