Chapter 3. Scheduling Classes and the Dispatcher


Contributions by Jonathan Chew, Eric Saxe, and Andrei Dorofeev

One of the core functions of any modern multitasking operating system is the management and scheduling of runnable threads onto available processors. The kernel's primary goal is to maintain fairness: allowing all threads to get processor cycles while ensuring that critical work, such as interrupt handling, gets done as needed. This is the function of the kernel dispatcherselecting threads and dispatching them to available system processors. The threads will be in one of several possible scheduling classes, by which the thread's priority is established relative to all other threads on the system. Multiple scheduling classes provide a powerful and flexible mechanism for managing various workloads with different scheduling requirements and making efficient use of the system's processors.

In this chapter, we look in detail at the kernel dispatcher, examining run queue management, thread selection, and several other functions performed by the dispatcher. We discuss the supported scheduling classes and describe the scheduling algorithms and how they differ across the various scheduling classes and where they fit in the systemwide global priority scheme. The thread sleep and wakeup mechanism is an integral part of the scheduling management subsystem, and we cover it in this chapter as well.




SolarisT Internals. Solaris 10 and OpenSolaris Kernel Architecture
Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture (2nd Edition)
ISBN: 0131482092
EAN: 2147483647
Year: 2004
Pages: 244

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net