Learning about the CPU scheduling internals – part 2
This section delves into kernel CPU scheduling internals in some detail, the emphasis being on the core aspect of modern design, modular scheduling classes.
Understanding modular scheduling classes
Ingo Molnar, a key kernel developer (along with others), redesigned the internal structure of the kernel scheduler, introducing a new approach called scheduling classes (this was back in October 2007 with the release of the 2.6.23 kernel).
As a side note, the word class
in scheduler classes
isn’t a coincidence; many Linux kernel features are intrinsically, and quite naturally, designed with an object-oriented nature. The C language, of course, does not allow us to express this directly in code (hence the preponderance of structures with both data and function pointer members, emulating a class). Nevertheless, the design is very often object-oriented (as you shall quite clearly see with the driver model...