Low priority task holds some resources which are needed by high priority task.
1. Low priority task is running and holding the key resource which is also needed by high priority task (high priority is in waiting state for an event to occur and another condition to run the high priority task is to have the key resource which is now holding by the low priority)
2. ISR occurs and the event needed by the high priority task is coming in. The high priority task begins to run, but the key resource is holding by low priority. Then high priority task releases the CPU control.
3. The OS scheduler finds a middle priority task in ready tasks list and give CPU control to middle priority task
4. Middle priority task completes and low priority task continues to run (since high priority task still waiting for the key resource which is still held by low priority task)
5. Low priority task finishes and releases the key resource. High priority task begins to run
This is priority inversion