Nun kommen wir zu einer Klasse von Verfahrensweisen, die über mehrere
Stufen ablaufen, die eben mehrstufig sind. Multi-Level-Q ist so ein klassisches
Verfahren, wo wir eigentlich einen Mischbetrieb, nicht nur zwischen Vorder-
und Hintergrundbetrieb unterstützen, sondern auch zwischen den
unterschiedlichen Strategien, die wir so ein bisschen betrachtet hatten.
Aber es ist ein wesentlicher Punkt, dass wir über diese unterschiedlichen Ebenen,
die wir jetzt einführen werden, eben unterschiedliche Strategie zum gleichen
Zeitpunkt im Rechensystem einbringen können.
Hier geht man hin bei MLQ und ordnet den Prozessen zunächst einmal einen
bestimmten Typ zu, wo man also mit diesem Typ bestimmte Eigenschaften für diesen
Prozess denn glaubt, zu assoziieren zu können. Denn würden diese Prozesse
entsprechend dieses Typs eingeplant werden in dem System. Zum Beispiel geht
man hin und teilt eine Bereitliste in separate getübte Listen auf. Zum
Beispiel für Systemprozesse eine Liste, für Dialogprozesse eine Liste und für
Stapelprozesse eine Liste. Und da haben wir denn schon durchaus bestimmte
Merkmale, Eigenschaften, Dialogprozesse. Da glauben wir, es sind die Prozesse, die
interaktiv sind. Stapelprozesse, das glauben wir, das sind die Prozesse, die
nicht interaktiv sind, die rechenintensiv sind. Und dann haben wir noch die
Systemprozesse, die sollen fürs Rechensystem wesentliche Dinge denn tun,
unabhängig davon, ob sie jetzt eine hohe Interaktion haben oder nicht.
Das sind die verschiedenen Typen, die man aufmachen kann. Und dann würde man mit
jeder dieser Liste eine gewisse lokale Einplanungsstrategie verbinden. Wir
könnten zum Beispiel mischen Shortest Prozess Next auf der einen Liste,
Round-Robin-Verfahren auf der anderen oder First-Comper-Surve auf der dritten
Liste. Und dann muss man sich eine globale Einplanungsstrategie noch
definieren, die dann letztendlich eine Auswahl zwischen diesen jeweiligen
Listen dann halt trifft. Diese Auswahl kann statisch oder dynamisch sein.
Statisch, indem wir dann praktisch die Listen entsprechend einer, sagen wir mal,
Prioritätshierarchie zugeordnet haben. Dann würden wir denn praktisch immer nur
entsprechend dieser Prioritätsebene von oben nach unten, von der höheren zur
nächsteren Priorität, die Prozesse in diesen jeweiligen Listen abarbeiten.
Das bedeutet natürlich, dass man auch eine Hungergefahr für Prozesse in den
tiefer liegenden Listen denn vorfindet. Oder man macht es irgendwie dynamisch.
Man würde denn die Listen in einem Zeitmultiplex-Verfahren dann
entsprechend abarbeiten und zum Beispiel sagen, dass die Prozesse, die auf der
Systemliste stecken, 40 Prozent der Rechenzeit bekommen. Die Dialogprozesse
kriegen 40 Prozent der Rechenzeit und die Stabilprozesse kriegen denn nur 20
Prozent dieser Rechenzeit. Diese Typenzuordnung, die macht man natürlich
statisch, die muss vorher getroffen werden. Man würde diese Zuordnung
typischerweise eben zum Zeitpunkt der Prozesserzeugung denn vornehmen. Hier
mal ein Beispiel, wie man sich das jetzt vorstellen kann, mal ganz einfach zwischen
System, Dialog und Stabilprozesse unterschieden. Wo wir denn sagen, die
Systemprozesse werden nach Shortest Prozess Next verarbeitet, Dialogprozesse
nach Round Robin und die Stabilprozesse nach First Come First Serve. Das werden
die jeweiligen lokalen Einplanungsverfahren, die wir halt haben. Und
dann gibt es hier irgendeine globale Einplanung, 40-40-20 Prozent Rechenzeit
für die CPU möglicherweise. Man sieht hier auch ein bisschen schon so die
Analogie zu Virtual Round Robin. Man kann durchaus sagen, dass Virtual Round Robin,
was wir vorher gesehen haben, eben auch ein Multi-Level-Q-Verfahren mit zwei
Ebenen halt ist. Wo wir denn nur Round Robin haben und also die normale
Presenters
Zugänglich über
Offener Zugang
Dauer
00:12:09 Min
Aufnahmedatum
2020-10-29
Hochgeladen am
2020-10-29 12:26:35
Sprache
de-DE