Random boosting

Random boosting is a strategy used by the scheduler in Microsoft Windows to avoid deadlock due to priority inversion. Ready threads holding locks are randomly boosted in priority and allowed to run long enough to exit the critical section. If the thread doesn't get enough time to release the lock, it will get another chance.[1][2]

References

  1. Priority Inversion (Windows), Microsoft, retrieved December 12, 2012, The scheduler solves this problem by randomly boosting the priority of the ready threads (in this case, the low priority lock-holders). The low priority threads run long enough to exit the critical section, and the high-priority thread can enter the critical section. If the low-priority thread does not get enough CPU time to exit the critical section the first time, it will get another chance during the next round of scheduling.
  2. Cohen, Aaron; Woodring, Mike (1998), Win32 Multithreaded Programming, O'Reilly & Associates, p. 30, Windows NT solves the priority inversion problem by randomly boosting the dynamic priorities of threads that are ready to run.
This article is issued from Wikipedia - version of the 1/21/2013. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.