Programiści Linuksa starają się, aby system ten był postrzegany jako doskonały do serwerów, ale chcą także zwiększyć jego popularność w segmencie stacji roboczych. Podejście takie wymagało zmian także w schedulerze, który w wersji z jądra 2.4 nie był do nowej roli wystarczająco przygotowany. Należało usunąć następujące wady:
- Czas działania O(n) - każde wywołanie schedulera wymagało przejrzenia całej kolejki procesów gotowych w celu znalezienia tego jednego - oczywisty problem przy dużej ilości procesów.
- Nienajlepsza interaktywność - mimo że scheduler pozwalał nagradzać procesy, które długo czekały na sygnał od użytkownika (procesy interaktywne), zwiekszeniem ich priorytetu, to nie pozwalał obniżyć priorytetu procesom wykonyjącym dużo obliczeń (procesy zachłanne), które zmniejszały czas reakcji systemu.
- Okresowe przestoje - gdy wszystkim procesom kończyły się kwanty czasu, następował koniec epoki - procesom przeliczane były priorytety dynamiczne, co trwało O(n) względem liczby procesów.
Powyższe problemy dość dobrze rozwiązuje wersja schedulera z jądra 2.6, która została przepisana od nowa przez Ingo Molnara, w celu ogólnej poprawy wydajności i interaktywności.
Jej działanie będzie zaprezentowane poprzez pokazanie zmian względem starej wersji, bez.