16 - 9.2.10 Einplanungsverfahren: Anhang Unix: V7, 4.3BSD, Solaris [ID:22154]
50 von 203 angezeigt

Nun in dem einen Anhang hier zu den Einplanungsverfahren möchte ich mal ein paar Fallstudien betrachten.

Und ich fange mal mit der klassischen Unix Variante an.

Und das heißt also mit Unix Version 6, Unix Version 7, was eigentlich heute nicht mehr existent ist.

Aber letztendlich die Unix Geschichte ja schon ein Stück weit geprägt hat.

Nun, dieses Verfahren arbeitet zweistufig, versucht Antwortzeiten zu minimieren und fördert

damit eben doch die Interaktivität.

Das ist die Idee, ist ein Timesharing-System, Unix Version 6, und ist als solches ja auch

wirklich sehr erfolgreich geworden und zu passen natürlich, denn diese Kriterien, die

man dafür ansetzen möchte, sehr gut.

Denn die Zweistufigkeit auf der unteren Ebene bedeutet, dass kurzfristige Verfahren, die

Short-Term Scettling, arbeitet präemptiv, berechnet dynamische Prioritäten und ist so ein Stück

weit ein MLFQ, ähnlich hat mehr als eine Warteschlange, die dann eben auch ein Feedback-Verfahren

denn ein Stück weit mitbedient wird auf Basis der dynamisch berechneten Prioritäten.

Einmal pro Sekunde wird dann diese Priorität eines solchen Prozesses berechnet in Abhängigkeit

von seiner CPU-Zeit, die er halt hatte, das ist im Wesentlichen auch ein gewichteter Wert.

Dann den Wichtungsfaktor, den man über den I-System-Call einbringen konnte und dann

halt eine klare, statische Vorgabe, ein Basiswert für diese Prioritäten, die für diesen Prozess

dann halt gelten.

Denn das CPU-Nutzungsrecht wurde dann immer tickweise aktualisiert, es verringerte sich

dann praktisch bei diesen Unix-Systemen im Abständen von einer Zehntelsekunde.

Da wurde dann praktisch der Prioritätswert letztendlich entsprechend, das jeweiligen

Tickstand erhöht.

Je höher dieser Wert war, umso niedlicher war dann eigentlich die Priorität für so

einen Prozess.

Man hat einen Nutzungsmaß, CPU-Usage, das ist sozusagen ein Wert für eine Art Dämpfungsfilter,

nur ein sehr eingeschränkter Dämpfungsfilter, der hier verwendet worden ist, der nur von

Unix zu Unix-System, der entsprechend variiert hat.

Wir sehen den gleich ein bisschen genauer, wie er für die 4.3-BSD-Variante funktioniert

hatte.

Die höhere Ebene, die führte mittelfristige Einplanung aus und da wissen wir ja eben,

dass es im Wesentlichen Swapping bedeutet, also die Umlagerung von Prozessen zwischen

Hauptspeicher und Hintergrundspeicher bedeutet.

Nun mit diesem Verfahren war ein sehr guter interaktiver Betrieb möglich, rechneintensive

Prozesse wurden nicht so gut unterstützt, wollte man bewusst eben doch nicht.

Ist durchaus eine sehr effektive Umsetzung gewesen.

Was hier noch gemacht worden ist, ist eben, dass wann immer Prozesse sozusagen auf eine

Wartebedingung getroffen sind, wurde dann praktisch die Aufwägpriorität für diese

Prozesse eingestellt im Kernel, mit der die Prozesse dann bevorzugt praktisch die CPU dann

wieder zugeteilt bekommen können, sobald die Wartebedingung aufgehoben worden ist.

Das nächste sehr erfolgreiche System war Unix-Version 4.3-BSD, die Berkeley Software

Distribution.

Das ist die die durchaus heute noch mit dem FreeBSD System.

Hier war ein sehr ausgeklügeltes MLFQ-Verfahren mit 32 Warteschlangen realisiert und es wurden

eben auch dynamische Prioritäten im Bereich 0 bis 127 an Wert, Prioritätswert pro Prozess

dann halt realisiert.

Die Benutzerprioritäten wurden in jedem vierten Zeit-Tick alle 40 Millisekunden, ein Tick waren

10 Millisekunden, also alle 40 Millisekunden entsprechend dieser Formel hier berechnet,

wo denn noch ein Gewichtungsfaktor einging, den man über den Nice-Systemcall dann immer

jeweils einbringen kann, aber zu berücksichtigen, man kann seine Priorität nicht erhöhen, sondern

mit Nice kann man eigentlich sich in der Priorität eher nur zurücksetzen.

Teil eines Kapitels:
9.2 Einplanungsverfahren

Zugänglich über

Offener Zugang

Dauer

00:18:15 Min

Aufnahmedatum

2020-10-29

Hochgeladen am

2020-10-29 13:06:32

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen