Process scheduling in the linux kernel
Like any time-sharing system, Linux achieves the magical effect of an apparent simultaneous execution of multiple processes by switching from one process to another in a very short time frame. This sample chapter from Oreilly's book “Understanding the Linux Kernel” by Daniel P. Bovet & Marco Cesati deals with scheduling, which is concerned with when to switch and which process to choose.
The chapter consists of three parts. The section “Scheduling Policy” introduces the choices made by Linux to schedule processes in the abstract. The section “The Scheduling Algorithm” discusses the data structures used to implement scheduling and the corresponding algorithm. Finally, the section “System Calls Related to Scheduling” describes the system calls that affect process scheduling.

Comment