NO.
Priority Inversion Problem :
Lets Consider one example: Tasks:
High Priority (H)
Medium Priority (M)
Low Priority (L)
and a lock X, may be semaphore_lock(X).(lock is required by only L and H but M does not require this lock)
Scenario:
1. L runs and acquires X
2. Then H tries to access X while L has it, because of semaphore, H sleeps.
3. M arrives, pre-empts L and runs. In effect, H & M were two processes waiting to run but M ran because H was waiting on lock and couldn't run.
4. M finishes, H can't enter because L has the lock, so L runs.
5. L finishes, relinquishes the lock. Now H gets the lock and executes.
H had the highest priority but ran after the lower priority processes had run. This is Priority Inversion.
see the story behind it:
http://research.microsoft.com/en-us/um/people/mbj/Mars_Pathfinder/Mars_Pathfinder.html