Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is the scheduling algorithm used in Windows 7?

share|improve this question
This is an extremely vague and open-ended question. What do you want to know? – David Schwartz Jul 24 '12 at 5:13
Many scheduling algorithms like First come first serve, Priority based, Round Robin are there. Is there any specific algorithm is used in that OS? – arulappan Jul 24 '12 at 5:15
It is a multilevel feedback queue with some modifications. – David Schwartz Jul 24 '12 at 5:19
@akira: To schedule tasks for the processor in 'Multitasking' environment. – arulappan Jul 24 '12 at 7:00
@arulappan: put that into your question. – akira Jul 24 '12 at 7:02
up vote 11 down vote accepted

Windows uses a round-robin technique with a multi-level feedback queue for priority scheduling ever since NT, Though in Vista there were some smart heuristic improvements to ensure that some processes, such as the disk defragmenter, are at a lower priority in order to not interfer with foreground processes. To the best of my knowledge, Windows 7 uses the same scheduler as Vista, though there may have been minor improvements.

share|improve this answer
For details – to the extent they have been published – see Windows Internals by Mark Russinovich et al. – Richard Jul 24 '12 at 7:20

Windows NT-based operating systems use a multilevel feedback queue. So, I feel that Windows 7 must also be using the same scheduling algorithm.
The scheduler was modified in Windows Vista with the inclusion of a priority scheduler and also to use the cycle counter register of modern processors to keep track of exactly how many CPU cycles a thread has executed.
On similar lines, there may be some improvements in Windows 7 too. But the algorithm may be the same.

share|improve this answer

User-mode scheduling (UMS) is a light-weight mechanism that applications can use to schedule their own threads. An application can switch between UMS threads in user mode without involving the system scheduler and regain control of the processor if a UMS thread blocks in the kernel. UMS threads differ from fibers in that each UMS thread has its own thread context instead of sharing the thread context of a single thread. The ability to switch between threads in user mode makes UMS more efficient than thread pools for managing large numbers of short-duration work items that require few system calls.

share|improve this answer
What makes you think this question was about UMS? – David Schwartz Jul 24 '12 at 5:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .