Kurz nach der Veröffentlichung des jüngsten Linux-Kernels, hat die Community einen neuen Scheduler für die nächste, in etwa acht Wochen fällige Version des Kernels angekündigt. Der Completely Fair Scheduler (CFS) ist das Werk des Redhat-Mitarbeiters Ingo Molnar. 80 Prozent des CFS-Designs lassen sich laut Molnar in einem Satz zusammen fassen: Der Scheduler modelliert grundsätzlich eine ideale, präzise Multitasking-CPU auf realer Hardware.
Den Regelsatz, der verwendet wird, um festzulegen, wann und wie ein neuer Prozess laufen soll, nennt man Scheduling Policy. Der Scheduler beruht auf der Technik der CPU-Zeitvergabe, wobei die CPU-Zeit in Abschnitte für jeden laufenden Prozess aufgeteilt ist. Der neue Scheduler erzeugt für jede CPU Warteschlangen, verfolgt, was Prozesse tun und korrigiert immer wieder deren Prioritäten. Auf diese Weise erhalten Prozesse, denen für eine längere Zeit keine CPU-Zeit gewährt worden war, dynamisch eine höhere Priorität. Prozesse werden traditionell in I/O- und CPU-orientierte eingeteilt.
Molnar zufolge unterscheidet sich CFS von seinen Vorgängern durch eine sehr gerechte Policy, wenn zwei Prozesse mit derselben Priorität um einen Prozessor konkurrieren – jeder erhält die Hälfte der verfügbaren CPU-Zeit. Das Design sei ziemlich radikal und nutzt keine Warteschlangen, so der Programmierer, sondern einen auf Zeit ausgerichteten rbtree, um eine Zeitachse für die Ausführung von Aufgaben zu erzeugen. Der Scheduler besitzt eine Nanosekunden-Granularität und nutzt keine Jiffies oder andere HZ-Einzelheiten. Es gibt eine einzige zentrale Tune-Möglichkeit von Desktop- bis zu Server-Workloads. "Aufgrund seines Designs ist der CFS gegen die heute vorhandenen Angriffe auf die Heuristik des Stock-Schedulers immun", stellt Molnar fest. Der Programmierer sagte auch, Con Kolivas gebühre der Dank für den allgemeinen Ansatz, denn er habe über RSDL/SD bewiesen, dass "Fair Scheduling" möglich sei und dass damit ein besseres Desktop-Scheduling möglich sei.
Rob Enderle von der Enderle Group lobte die gute Sicherheit von CFS, die es Entwicklern ermögliche, sowohl normale Verzeichnisse über ein Kennwort für eine gewisse Zeit zu ver- und zu entschlüsseln, während sie an damit zusammenhängenden Dateien arbeiten. "Das Schöne daran ist, dass die Entschlüsselung nach einiger Zeit abläuft und es nicht nötig ist, die Datei nach der Arbeit wieder zu verschlüsseln", erklärte Enderle. "Dieser Schutz ist für Laptops ideal, den im Fall eines Verlusts sind die Daten für den Dieb nutzlos, da sie nach einiger Zeit automatisch wieder verschlüsselt werden.".
Zu den weiteren Funktionen gehört, dass der Scheduler die CPU-Nutzung kontinuierlich verfolgt, um tatsächliche "Knotenpunkte" im System aufzuspüren. Zudem gibt es Scheduling-Klassen, eine erweiterbare Hierarchie von Modulen, die der Scheduler verwaltet, ohne dass der Core-Code davon viel mitbekommt. Molnar veröffentlichte eine Reihe neuer Patches namens "Modular Scheduler Core and Completely Fair Scheduler", wo er das Projekt als komplette Überarbeitung des Task Schedulers beschreibt. Der CFS Scheduler ersetzt Molnars eigenen 0(1)-Scheduler aus dem Januar 2002.
Barbara Gengler/CZ/jos