Moin Moin liebe Leute, willkommen zum nächsten Video für die Vollisierungen Betriebssysteme.
Weiter geht es im Bereich Fadenverwaltung, Scheduler.
Also wir sind immer noch dabei unseren Ablauf zu planen.
Bisher haben wir gesagt, wir wissen wie man zwischen Fäden hin und her wechselt.
Aber wir wissen eigentlich noch nicht zu welchem Faden man jeweils wechselt.
Welchen nehme ich denn als nächstes? Wer ist denn der nächste wichtige?
Wie auch man jetzt wichtig definieren möchte.
Gut, da sagt man jetzt der Scheduler, das ist der Teil vom Betriebssystem,
der diese strategische Entscheidung fällt.
Der guckt sich jetzt aus, was ist der nächste Prozess?
Was ist denn die nächste Koroutine, die laufen soll?
Woraus wird ausgewählt?
Man hat typischerweise natürlich eine Liste von Koroutinen, haben wir gesagt.
Die ist manchmal kürzer, manchmal länger, keiner weiß.
Die wird letztendlich der Reihe nach durchsucht und man guckt sich den wichtigsten dann aus.
Was auch immer der wichtigste ist, da gucken wir uns nachher noch verschiedene Scheduling Strategien an.
Gut, in der Liste drin ist typischerweise auch immer der aktuell laufende Faden.
Also wenn der aktuelle Faden gerade mal durch einen Timer unterbrochen wurde
und im Timer Interrupt das Resum aufgerufen wird,
dann gucken wir uns an welcher Faden soll als nächstes rankommen.
Es kann auch der gerade unterbrochene laufende Faden wieder sein.
Der wird dann vielleicht unterbrochen.
Wir gucken uns die Liste an und sehen, eigentlich gibt es nichts besseres zu laufen.
Dann lassen wir den aktuellen Faden einfach weiterlaufen.
Wenn dann klar ist welcher Faden weiterlaufen soll,
dann wird dieser Faden, der neue, dem Dispatcher übergeben.
Der Dispatcher, das ist letztendlich die Resum-Funktion,
die schaltet dann zu dem neu ausgewählten Faden um.
Das ist die typische Zweiteilung, die man im Betriebssystem hat.
Den Dispatcher hat der weitestgehend wahrscheinlich schon geschrieben.
Das ist die Resum-Funktion, mehr ist es eigentlich nicht.
Jetzt ist die Frage, welchen Faden nehmen wir als nächstes?
Da gibt es jetzt in der Literatur, wenn ihr da mal reinguckt, Tonnen von Zeugs.
Das gibt es also hochgradig theoretisch abgehandelt in vielen, vielen Büchern.
Ihr seht hier mal so eine Auflistung, was kann man dann alles bedenken,
wenn man Scheduling-Entscheidungen trifft.
Wir gehen diese Liste einfach, das sind einfach nur Beispiele,
da könnte man noch 100 Punkte wahrscheinlich mehr dazu schreiben.
Das sind aber auch mal hier so die wichtigsten.
Gehen wir die der Reihe nach mal durch.
Woran macht man jetzt Scheduling letztendlich fest?
Fangen wir mal mit der Betriebsmittelart da oben an.
Also man kann beispielsweise das CPU-Scheduling machen.
Das ist das, was euch vermutlich auch als erstes in den Sinn kommen wird.
Warum macht man das?
Typischerweise haben wir mehr laufige Prozesse als CPUs zur Verfügung.
So ein typischer Wert für eine Anzahl der CPUs ist heutzutage so 2, 4, 8 vielleicht.
Aber Prozesse in einem System gibt es häufig hunderte.
Gut, dann muss man irgendwie sehen, dass man zwischen den einzelnen Prozessen hin und her wechselt.
Immer wenn ein Timer-Interrupt kommt, dann speichern wir den Zustand vom aktuellen Prozess ab,
Presenters
Zugänglich über
Offener Zugang
Dauer
00:30:19 Min
Aufnahmedatum
2020-12-15
Hochgeladen am
2020-12-18 15:49:39
Sprache
de-DE
9. Kapitel der Vorlesung Betriebssysteme.