|
If computers had a single program and a single processor, there would be no need for a scheduler to implement resource management policies. The program would run until completion, and then the machine would halt. Computers today, however, seldom run a single program and a single processor. More often, the "single program" is an operating system that provides a variety of system services, implements a number of resource management policies, and generally never runs to completion. Linux is such an operating system. Although it can be used for some very specific purposes, a more typical situation is where Linux is managing multiple tasks, with each utilizing one or more processors. Ensuring that each task gets a fair slice of time on a processor is the job of a scheduler. Included in this chapter is an examination of the policies and issues that arise in granting a level of fairness to a task, and a discussion of symmetric multiprocessing and NUMA architectures. A discussion of the Linux 2.6 scheduler and an examination of its tunable parts are also included here. We'll begin our discussion with the less demanding scheduling for the single processor. |
|