- Priority inheritance
In
real-time computing , priority inheritance is a method for eliminatingpriority inversion problems. 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 aresource lock .The basic idea of the priority inheritance protocol is that when a job blocks one or more high priority jobs, it ignores its original priority assignment and executes its critical section at the highest priority level of all the jobs it blocks. After executing its
critical section , the job returns to its original priority level.Example
Consider three jobs:
Suppose A is blocked by C for some shared resource. The priority inheritance protocol requires that C executes its
critical section at the (high) priority of A. As a result, B will be unable topreempt C and will beblocked . That is, the higher priority job B must wait for the critical section of the lower priority job C to be executed, because C now inherits the priority of A. When C exits its critical section, it regains its original (low) priority and awakens A (which was blocked by C). A, having high priority, immediately preempts C and runs to completion. This enables B and C to resume in succession and run to completion.Problems
The basic priority inheritance protocol has two problems:
#It does not prevent a
deadlock from happening in a program with circular lock dependencies.
#A chain of blocking may be formed; blocking duration can be substantial, though bounded.ee also
*
priority ceiling protocol References
*cite journal
author = Lui Sha, Ragunathan Rajkumar, and John P. Lehoczky
month = September
year = 1990
title = Priority Inheritance Protocols: An Approach to Real-Time Synchronization
journal =IEEE Transactions on Computers
volume = 39
issue = 9
pages = 1175–1185
issn = 0018-9340
url = http://www-md.e-technik.uni-rostock.de/ma/gol/rtsys-bib/90-toc-pcp.pdf
doi = 10.1109/12.57058External links
*Article " [http://www.linuxdevices.com/articles/AT5698775833.html The Real Story] " by
Doug Locke
*Article " [http://www.linuxdevices.com/articles/AT7168794919.html Against Priority Inheritance] " byVictor Yodaiken
*Article " [http://rtdoc.cs.uri.edu/downloads/wohlever_thesis.pdf Implementing Concurrency Control With Priority Inheritance in Real-Time CORBA] " bySteven Wohlever ,Victor Fay Wolfe andRussell Johnston
*Article " [http://www.sei.cmu.edu/publications/documents/89.reports/89.tr.015.html Implementing Priority Inheritance Algorithms in an Ada Runtime System] " byMark W. Borger andRagunathan Rajkumar
*Article " [http://citeseer.ist.psu.edu/108383.html Priority Inheritance Spin Locks for Multiprocessor Real-Time Systems] " byCai-Dong Wang ,Hiroaki Takada andKen Sakamura
*Article " [http://doi.ieeecomputersociety.org/10.1109/REAL.2003.1253271 Hardware Support for Priority Inheritance] " byBilge E. S. Akgul ,Vincent J. Mooney ,Henrik Thane andPramote Kuacharoen
Wikimedia Foundation. 2010.