Login


 
Newsletter
Werbung

Di, 15. Januar 2002, 21:35

Software::Kernel

Entwicklerkernel 2.5.2 mit neuem Scheduler

Linus Torvalds hat den Entwicklerkernel 2.5.2 freigegeben, der unter anderem eine völlig neue und sehr effiziente Implementierung des Schedulers enthält.

Der Scheduler ist eine im Prinzip einfache Funktion im Kernel, die immer dann aufgerufen wird, wenn ein Prozeß auf etwas warten muß oder seine Zeitscheibe abgelaufen ist. Ihre Aufgabe ist es, nach Möglichkeit auf einen anderen Prozeß umzuschalten. Falls mehrere Prozesse dafür in Frage kommen, muß einer davon nach sinnvollen Kriterien ausgewählt werden.

Linus Torvalds verkündete noch kürzlich, daß er kein Interesse an einem neuen Scheduler habe. Es sei eine einfache Funktion von 100 Zeilen, also vernachlässigbar gegenüber der Gesamtgröße des Kernel von 3,8 Mio. Zeilen, und ziemlich trivial. Doch mehrere Entwickler wiesen darauf hin, daß der Scheduler einige unerwünschte Eigenschaften hat und auf SMP-Systemen mit mehr als 4 Prozessoren auch ziemlich ineffizient sein kann.

Wenige Tage danach stellte Ingo Molnar einen völlig neuen Scheduler vor, den O(1)-Scheduler. Die Bezeichnung kommt daher, daß die Zeit zur Auswahl des nächsten Prozesses unabhängig von der Zahl der Prozesse immer gleich bleibt. Die vorgelegten Benchmark-Werte belegen eine enorme Verbesserung gegenüber dem alten Scheduler für SMP-Systeme. Einprozessor-Systeme werden dadurch normalerweise nicht schneller, aber auch nicht langsamer.

Die erste Version des O(1)-Schedulers führte bei zahlreichen Testern zu Abstürzen, doch die Probleme wurden schnell behoben. Nach wenigen Tagen integrierte Linus den Patch in den Kernel. Wer den neuen Scheduler testen möchte, sollte aber bei Ingo Molnars Homepage nach der neuesten Version Ausschau halten, die bereits wieder etliche Verbesserungen gegenüber der Version im Kernel hat.

Weitere wichtige Änderungen im Kernel sind

  • Anpassungen an die neue Block I/O (weitgehend abgeschlossen)
  • Der Datentyp für Device-Nummern, kdev_t, wurde sauberer vom äquivalenten Datentyp dev_t der C-Library getrennt
  • Private Namespaces für Prozesse
  • Updates von Netzwerk, USB, IrDA, Funk-LAN, ISDN
  • Updates der Architekturen Sparc und ARM

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung