Both of these concepts come under Priority scheduling in Operating System. But are they same ?
In one line, Priority Inversion is a problem while Priority Inheritance is a solution. Literally, Priority Inversion means that priority of tasks get inverted and Priority Inheritance means that priority of tasks get inherited. Both of these phenomena happen in priority scheduling. Basically, in Priority Inversion, higher priority task (H) ends up waiting for middle priority task (M) when H is sharing critical section with lower priority task (L) and L is already in critical section. Effectively, H waiting for M results in inverted priority i.e. Priority Inversion. One of the solution for this problem is Priority Inheritance. In Priority Inheritance, when L is in critical section, L inherits priority of H at the time when H starts pending for 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 critical section.
More details on these can be found here.
Please do Like/Tweet/G+1 if you find the above useful. Also, please do leave us comment for further clarification or info. We would love to help and learn 🙂
- Priority Inversion : What the heck !
- Program for Priority Scheduling | Set 1
- Program for Preemptive Priority CPU Scheduling
- Operating System | Priority Scheduling with different arrival time - Set 2
- Difference between ++*p, *p++ and *++p
- Web 1.0, Web 2.0 and Web 3.0 with their difference
- What's difference between MMU and MPU?
- What is the difference between GUI and CUI?
- Difference between SSH and Telnet
- Difference between x++ and x=x+1 in Java
- Difference Between HTML and ASP
- Difference between while(1) and while(0) in C language
- Difference between Where and Group By
- Difference between JSON and XML
- Difference between SQL and NoSQL