Here are the answers to your questions: 1. If processors are in idle state, background processes that are not currently selected on screen are executed. 2. Fibers were unable to make calls to the Windows API. So they were unable to serve as a true user-mode scheduling system. 3. When the dispatcher boosts the priority of a variable-priority thread released from a wait operation, a thread that was waiting for keyboard I/O would get a large priority increase. 4. For processes in the normal priority class that are currently selected on screen (foreground processes), Windows XP increases the scheduling quantum by some factor, typically 75%. 5. The latest process scheduling feature used in Windows 8.