Login
Newsletter
Werbung

Di, 1. April 2008, 00:06

Weiterer Scheduler für Linux veröffentlicht

Ein neuer Scheduler von Roberto Pazzo soll die Fehleranalyse von Kernel- und Prozessorproblemen unter Linux drastisch erleichtern.

Mit der wachsenden Anzahl von Kerneltreibern und Funktionen schleichen sich zunehmend mehr Probleme in den Kernel ein. Während Ungereimtheiten in Applikationen eher vernachlässigbar sind, bringt schon eine einzige fehlerhafte Zeile Code im Kernel nicht selten das komplette System zum Stillstand. Kaum verwunderlich deshalb, dass der Kernel überproportional oft in den Sicherheitsbulletins der Distributoren auftaucht. In den letzten 18 geflickten Sicherheitslücken in der SUSE-Distribution war der Kernel alleine viermal vertreten.

Einen Ausweg aus dem Dilemma verspricht nun der italienische Kernel-Hacker Roberto Pazzo. Pazzos Scheduler, der sich zu einem großen Teil der Arbeit von Con Kolivas bedient, ermöglicht es, auf einen zuvor gesicherten Stand des Systems zurückzusetzen. Im Gegensatz zum Completely Fair Scheduler (CFS) von Kolivas speichert Pazzos Entwicklung alle zum Prozessor übertragenen Befehle in einer verketteten Liste und macht es so möglich, Befehle, die zum Absturz des Systems führen würden, zu annullieren.

Was sich auf den ersten Blick trivial anhört, bedarf in der Praxis zahlreicher Modifikationen des Systems. Das am Three-Level-Scheduling (TLS) angelehte Verfahren enthält unter anderem eine Input Queue, die allerdings im Gegensatz zum herkömmlichen Verfahren vom Anwender gesteuert werden kann. Der Scheduler übergibt seine Befehle an den Admission Scheduler, der wiederum die getriggerten Jobs in den Speicher überträgt. Ab hier ändert der Scheduler die Vorgehensweise. Die vom Memory Scheduler abgearbeiteten Befehle werden nicht direkt zum Prozessor übertragen, sondern in einem speziellen Speicherbereich zunächst auf ihre Funktion untersucht. Treten während des Tests Probleme auf, die zum Absturz des Systems führen würden, kassiert der Memory Scheduler den Befehl und macht die komplette Befehlskette rückgängig. Je nach Einstellung der Input Queue versetzt der Scheduler das System in einen früheren Zustand, der bis zu 25,6 Sekunden zurück liegen kann.

Pazzos Entwicklung zielt vor allem auf typische Zeiger-Probleme der Programmiersprache C ab, in der fast der vollständige Kernel geschrieben ist. Vor allem Zugriffe auf nicht korrekt reservierte Bereiche im Speicher will der Scheduler auf ein Minimum reduzieren. Tritt ein NULL-Pointer-Zugriff auf, versetzt der Scheduler das System automatisch in einen sicheren Zustand und bewahrt so den Anwender vor einem Absturz und einem möglichen Datenverlust. Darüber hinaus soll der Scheduler die Entwickler über fehlerhafte Systemkomponenten oder Treiber informieren und die Zahl der Fehler des Kernels dadurch dramatisch senken.

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