The Linux® kernel continues to evolve, incorporating new technologies and gaining in reliability, scalability, and performance. One of the most important features of the 2.6 kernel is a scheduler implemented by Ingo Molnar. This scheduler is dynamic, supports load-balancing, and operates in constant time -- O(1). This article explores these attributes of the Linux 2.6 scheduler, and more.
I absolutely love IBM's DeveloperWorks documentation. I've read many of them, and even linked a few here before.
This article goes into detail as to how the Linux process scheduler works, and even the "O-notation" for those not familiar with algorithms.
The article also details the runqueues, the pointer swap trick for using 2 runqueues, elimination of "the big kernel lock", CPU affinity, etc. I give this article a 10 out of 10.