Erste Seite Zurück Weiter Letzte Seite Übersicht Grafik
Linux-
Der Kernel 2.6
O(1) Scheduler
Bisher: Prozessliste, wird immer lönger, je mehr Prozesse
Liste muss durchsucht werden um den nächsten Prozess der an der Reihe ist zu finden -> Taskswitch wird mit zunehmender Prozesszahl langsamer
Das ist Mist. Besser: der neue O(1) Scheduler:
Prozesse stecken in einem Array aus 140 verketteten Listen
Davon 0-99 für Prozesse mit Echtzeit-Priorität, Rest für nice-Werte von -20 bis 20
In einer Bitmap zeigen 140 Bits an, welche Liste laufbereite Prozesse enthält
Nächster Task: Lediglich erstes gesetztes Bit finden
Von den Arrays gibt es 2 Stück, nach Verbrauch der Rechenzeit wird ein Prozess von der einen in die andere bewegt.
Wenn das Array mit aktive Tasks leer ist wird getauscht.
Bei SMP: Jede CPU hat so eine Runqueue, bei >25% Unterschied wird ausgeglichen