Training
×

Dynamic Priority Adjustment

With a priority region:
1-3. As above.
4. Thread C then waits for the region. Since thread A is in control of the region and thread C is a higher priority thread, the INtime kernel dynamically adjusts the priority of thread A to match that of thread C. Thread C then goes to sleep to wait for the region and thread A is scheduled ahead of thread B because it has a higher priority (temporarily) than thread B.
5. Thread A runs and eventually releases control of the region; now the priority of thread A is restored, and thread C runs because it can now get control of the region and it has the higher priority.