I've recently been looking in to the process scheduler linux uses. I found a good write up here:http://en.wikipedia.org/wiki/Process_scheduler which includes a list by kernel version. The process scheduler is different from the IO scheduler and much harder the change.
Here is the linux scheduler history from the wikipedia:
Linux pre-2.6 Multilevel feedback queue
Linux 2.6-2.6.23 O(1) scheduler
Linux post-2.6.23 Completely Fair Scheduler