Moin mein liebe Leute, willkommen zum nächsten Video zur Fadenverwaltung, in diesem Fall
als Beispiel Linux für die Vorlesung Betriebssysteme.
Was machen wir hier?
Ja, wir gucken uns einfach mal Linux an, wie Scheduled Linux.
Da muss man sehr unterscheiden zwischen den verschiedenen kernel Versionen, also angefangen
bei einem alten Kern unter 2.2, da hat man keinerlei SMP Support, war auch damals noch
nicht nötig, weil da gab es noch keine für vernünftiges Geld kaufbaren SMP Systeme.
Es gab keine Echtzeitprioritäten, auch nicht, weil es damals zum Beispiel noch keine CD-Brenner,
DVD-Brenner, sowas gab.
Da brauchte man das einfach schlicht nicht.
Das ging dann los irgendwann, dass man SMP Support eingebaut hat, ich sag mal ab Kernversion
2.4 auf hat, da hat das Ganze auch alles leitlich dann funktioniert, allerdings SMP-mäßig noch
nicht so gut, wir werden uns das nachher angucken, woran liegt letztendlich mal so grob angedeutet,
da der Scheduler hat Listen, also Breitlisten mit n Prozessen und die durchsucht einfach
der Scheduler von Anfang bis Ende und guckt sich den jeweils besten laufigen Sred an,
umso mehr Sreds das werden, umso länger dauert das durchsuchen und in der Zeit muss, wenn
man nur eine Liste hat, natürlich die Liste gesperrt sein auf einem SMP-System, wo man
natürlich jetzt beim Schedulen, das Schedulen selber relativ lange dauert und während der
Zeit die Listen gelockt sind, dann stehen die anderen CPUs vor der Liste und warten
drauf, dass sie diese Liste endlich durchsuchen dürfen.
Da kann man sich vorstellen, dass es für SMP nicht so dolle.
Das hat man dann mit Kern 2.5 verbessert, da gibt es jetzt pro CPU letztendlich eine
solche Liste mit einem entsprechenden Lastausgleich, so ähnlich wie in der Windows Welt habe ich
euch gezeigt.
Das interessante an dem Scheduler war das O von 1, das heißt diese Listen wurden da
in der Variante sehr effizient durchsucht, zeige ich euch nachher noch, wie es funktioniert
hat.
Und ab Kern 2.6.23, das ist auch schon relativ lange her, gibt es den sogenannten Completely
Fair Scheduler, der mit O von log von N funktioniert, der verteilt die Rechenzeit, wie man sagt,
ideal fair, auch das zeige ich euch gleich noch, wie das funktioniert und hat eingeführt
sogenannte Scheduler Gruppen, heißt, ich gebe immer eine Gruppe Rechenzeit und innerhalb
der Gruppe kann diese Rechenzeit noch weiter verteilt werden.
Zunächst einmal, was wird in Linux verteilt?
Es wird werden Task geschedult, was ist jetzt der Name Task in der Linux Welt?
Das sind entweder ganz normale Unix Prozesse, so wie ihr sie kennt, eine Ablaufumgebung,
also Datensegment, Kodesegment, Stacksegment mit einem Aktivitätsträger, einem Thread
da drin.
Aber in der Linux Welt sind Task auch Threads, im Sinne von ja dann teilen sie sich mit einem
anderen Thread irgendwie eine Ablaufumgebung.
Also ihr könnt euch immer das Unterteil denken, einmal in die Ablaufumgebung und die Aktivitätsträger
und ein normaler Prozess ist eben ein Aktivitätsträger in einer Ablaufumgebung und ein Thread ist
eventuell noch ein Zusatzaktivitätsträger in einem normalen Prozess.
Wie sind die klassifiziert? In der Linux Welt gibt es 140 Prioritäten, die sind eingeteilt
zum einen in 100 Echtzeitklassen und 40 normale.
Die Echtzeit-Tasks, die werden einfach der Reihe nach abgearbeitet.
Also wenn es mit höchster Priorität einen Task gibt, dann wird der als erstes ausgeführt,
komme was wolle.
Wenn der fertig abgearbeitet ist, dann geht die CPU die Liste weiter durch, dann wird
die Liste in der Klasse 1 abgearbeitet, dann die und so weiter.
Eventuell gibt es die, also das sind die FIFO-Dinger, es gibt sie auch noch round robin im Sinne
Presenters
Zugänglich über
Offener Zugang
Dauer
00:20:29 Min
Aufnahmedatum
2020-12-15
Hochgeladen am
2020-12-18 15:39:03
Sprache
de-DE
9. Kapitel der Vorlesung Betriebssysteme.