Priority Inverse Solutions

Priority Inverse

  • Bounded Priority Inverse: happen when higher priority process is waiting for resource (ex. critical section protected by mutex and semaphor) which is currently used by lower priority process. High priority process need to wait until low process pass the critical section.
  • Unbounded Priority Inverse: happen when a middle priority process further preempty the low priority process, therefore the high priority process need to further wait for the middle priority process.

Solutions

  • Priority Inheritance Protocol: when low priority process accesses the resource, boost its priority to be the same as the highest priority process which is waiting for the resource. This is not very practical because we need to track all processes which are waiting for semaphor at run time.
  • Priority Ceiling Protocol: when low priority process accesses the resource, boost its priority to a predefined level which must be higher than all processes which are possible to access the critical section. Therefore we don't need to track what processes are waiting for resource at run time. The disadvantage is that we need to predefine the level before run time.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License