Article: Yodaiken: Against Priority Inheritance
Jun 22, 2002 — by LinuxDevices Staff — from the LinuxDevices Archive — 5 viewsIn this technical whitepaper, RTLinux originator Victor Yodaiken details what he perceives to be the disadvantages of dealing with the issue of priority inversion in real-time systems by means of a commonly used software technique known as priority inheritance. Priority inversion refers to the situation when a scheduled task must wait for a lower priority task to complete.
Yodaiken describes “the classical nightmare case” of priority inversion as being “when a low priority task owns a resource, a high priority task is blocked waiting for the resource, and intermediate priority tasks keep preempting the low priority task so it cannot make progress towards releasing the resource.”
Priority inheritance is intended to allow “a task that is blocked waiting for a resource [to pass] its priority down to the owner. The low priority task is [thus] considered to be acting on behalf of the highest priority blocked task and inheritance prevents intermediate priority tasks from interfering,” says Yodaiken. However, “priority inheritance is neither efficient nor reliable”, the paper argues, and its “implementations are either incomplete (and unreliable) or surprisingly complex and intrusive.”
Read whitepaper (70KB PDF download)
[Note: A 'rebuttal' to this whitepaper, written by TimeSys VP of Technology Doug Locke, is available here.]
About the author: Victor Yodaiken is the creator of RTLinux and President of FSMLabs, a software development company headquartered in New Mexico. Yodaiken has been working on operating systems in both industry and academia since the early 1980s, when he was one of the developers of one of the first commercial distributed fault tolerant UNIX systems.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.