Priority inheritance
![]() | This article may require copy editing for grammar, style, cohesion, tone, or spelling. (January 2014) |
![]() | This article's tone or style may not reflect the encyclopedic tone used on Wikipedia. (January 2014) |
In real-time computing, priority inheritance is a method for eliminating priority inversion problems[citation needed]. Using this programming method, a process scheduling algorithm will increase the priority of a process to the maximum priority of any process waiting for any resource on which the process has a resource lock[citation needed].
The basic idea of the priority inheritance protocol is that when a job blocks one or more high-priority jobs[citation needed], it ignores its original priority assignment and executes its critical section at the highest priority level over all the jobs it blocks[citation needed]. After executing its critical section, the job returns to its original priority level[citation needed].
Example
Consider three jobs:
Job Name | Priority |
---|---|
H | High |
M | Medium |
L | Low |
Suppose H is blocked by L for some shared resource. The priority inheritance protocol requires that L executes its critical section at the (high) priority of H. As a result, M will be unable to preempt L and will be blocked. That is, the higher-priority job M must wait for the critical section of the lower priority job L to be executed, because L now inherits the priority of H. When L exits its critical section, it regains its original (low) priority and awakens H (which was blocked by L). H, having high priority, immediately preempts L and runs to completion. This enables M and L to resume in succession and run to completion[citation needed].
References
See also
External links
- Article "Priority Inheritance: The Real Story" by Doug Locke
- Article "Against Priority Inheritance" by Victor Yodaiken
- Article "Implementing Concurrency Control With Priority Inheritance in Real-Time CORBA" by Steven Wohlever, Victor Fay Wolfe and Russell Johnston
- Article "Priority Inheritance Spin Locks for Multiprocessor Real-Time Systems" by Cai-Dong Wang, Hiroaki Takada and Ken Sakamura
- Article "Hardware Support for Priority Inheritance" by Bilge E. S. Akgul, Vincent J. Mooney, Henrik Thane and Pramote Kuacharoen