Open In App
Related Articles

Difference between Priority Inversion and Priority Inheritance

Improve Article
Save Article
Like Article

Both of these concepts come under Priority scheduling in Operating System. But are they the same?

In one line, Priority Inversion is a problem while Priority Inheritance is a solution. Priority Inversion means that the priority of tasks gets inverted and Priority Inheritance means that the priority of tasks gets inherited. Both of these phenomena happen in priority scheduling. Basically, in Priority Inversion, the higher priority task (H) ends up waiting for the middle priority task (M) when H is sharing a critical section with the lower priority task (L) and L is already in the critical section. Effectively, H waiting for M results in inverted priority i.e. Priority Inversion. One of the solutions to this problem is Priority Inheritance. In Priority Inheritance, when L is in the critical section, L inherits the priority of H at the time when H starts pending for the critical section. By doing so, M doesn’t interrupt L and H doesn’t wait for M to finish. Please note that inheriting of priority is done temporarily i.e. L goes back to its old priority when L comes out of the critical section.

Let us see the differences in a tabular form:


Priority Inversion

Priority Inheritance

1. In priority inversion, a higher-priority process is preempted by a lower-priority process. It is a method that is used to eliminate the problems of Priority inversion.
2. It is the inversion of the priorities of the two processes With the help of this, a process scheduling algorithm increases the priority of a process, to the maximum priority of any other process waiting for any resource.
3. It can cause a system to malfunction in our system. Priority inheritance can lead to poorer worst-case behavior when there are nested locks.
4. Priority inversions can lead to the implementation of corrective measures. Priority inheritance can be implemented such that there is no penalty when the locks do not contend,

To deal with the problem of priority inversion we can have several techniques such as 

Priority ceiling, Random boosting, etc.

It is the basic technique at the application level for managing priority inversion.
Unlock the Power of Placement Preparation!
Feeling lost in OS, DBMS, CN, SQL, and DSA chaos? Our Complete Interview Preparation Course is the ultimate guide to conquer placements. Trusted by over 100,000+ geeks, this course is your roadmap to interview triumph.
Ready to dive in? Explore our Free Demo Content and join our Complete Interview Preparation course.

Last Updated : 02 Nov, 2022
Like Article
Save Article
Similar Reads