What is the scheduling algorithm used in Windows 7?
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.
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.
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.