Nun, virtueller Speicher ist eine spezielle Betriebssystemtechnik, die es ermöglicht,
dass Prozesse, die sich im Zustand laufend befinden, die also jetzt wirklich in dem Moment
denn immer stattfinden, wirklich ablaufen können, also ausführbar sind, obwohl die
Maschinenprogramme, die diese Prozesse letztlich definieren, überhaupt nicht komplett im Hauptspeicher
vorliegen, also eigentlich nur partiell vorhanden sind. Das betrifft denn nicht nur den Text, den
Codebestand, sondern auch die Daten, die dann durch diese Programme dann verbettet werden. Nun,
das ist ein bisschen verwunderlich, dass Programme eigentlich ausführbar sind, obwohl sie nicht
vollständig im Speicher liegen, denn in der Realität ist es letztlich so, dass sobald eben
Spannung anliegt, der Rechner also unter Strom gesetzt ist, der Prozessor permanent auf der
Befehlsetzebene immer einen kontinuierlichen Befehlsstrom erwartet. Also er wird permanent
den Befehlsaus abruf- und Ausführungszyklus durchführen und das bedeutet eigentlich,
da muss immer ein Maschinenbefehl für die CPU aus dem Hauptspeicher verfügbar sein,
der jetzt einfach ausführbar ist. Nun, es ist einfach so zu sehen, dass man um diesen kontinuierlichen
Befehlsstrom zu erzeugen, muss es nicht so sein, dass immer nur ein Programm tatsächlich in diesem
System zur Ausführung kommt und nur ein Programm im Hauptspeicher praktisch residieren muss. Wenn
wir uns eine Welt vorstellen, wo mehrere Programme zugleich im Hauptspeicher liegen, dann kann man
sich gut vorstellen, dass durch einen Wechsel zwischen diesen verschiedenen Programmen eben
Programmabläufe generiert werden, wo es dann halt möglich ist, diesen kontinuierlichen Befehlsstrom
eben aufrecht zu erhalten. Das heißt, auch in Situationen, wo ein Programm nur partiell im
Hauptspeicher liegt und man zu gegebenen Zeiten zu einem anderen Programm umschaltet, würden wir
einen kontinuierlichen Befehlsstrom letztendlich generieren können, der sich denn letztendlich aus
unterschiedlichen Programmabläufen, also aus unterschiedlichen Prozessen, denn zusammensetzt.
Der CPU, der Befehlsaus-Ebene ist das eigentlich vollkommen egal, woher denn jetzt wirklich diese
einzelnen Maschinenbefehle residieren, also aus welchem Adressraum diese Befehle kommen oder
zu welchem Prozess denn diese Befehle kommen. Haben wir eine Situation, wo wir einen einzelnen
realen oder auch logischen Adressraum betrachten, dann muss es in der Tat so sein, dass hier denn
dieses einzelne Programm, was in diesem Adressraum möglicherweise isoliert vorliegt,
eben tatsächlich diesen vollständigen Befehlsstrom generiert. Anders würde es denn nicht gehen.
Das heißt also, hier muss denn jede Adresse, die von diesem einzelnen Programm in einem
Einprogrammbetrieb, wenn man so will, generiert wird, im Hauptspeicher auf ein dort vorliegendes
Datum abgebildet werden. Also jetzt heißt ein Datum ja möglicherweise Daten, die verarbeitet
werden, aber eben auch selbst ein Maschinenbefehl, der von der CPU zur Ausführung kommen soll.
Das sieht anders aus, wenn wir jetzt den virtuellen Adressraum betrachten. Hier erlauben wir eine
partielle Abbildung und das funktioniert mit dem kontinuierlichen Befehlsstrom nur deshalb,
weil man dann zu gegebener Zeit eben umschaltet. Also in dem Moment, wo sozusagen man feststellt,
dass man aus dem einen Programmablauf keinen weiteren Maschinenbefehl in dem Moment zur
Ausführung bekommt, könnte man umschalten zu einem anderen Programmablauf, der dann letztendlich
diesen Befehlsstrom, diesen kontinuierlichen Befehlsstrom, dann letztendlich sicherstellt.
Und diese Umschaltvorgänge dann sind ein wesentlicher Bestandteil, um dann praktisch diesen
virtuellen Speicher oder auch virtuelle Adressräume dann letztendlich implementieren zu können und
damit eben auch unvollständig im Hauptspeicher vorliegende Programme tatsächlich zur Ausführung
kommen zu lassen. Nun der entscheidende Punkt hier ist, wirklich die Stellen zu identifizieren,
wo denn diese Umschaltvorgänge stattfinden. Also wo man denn erkennen kann, dass tatsächlich
für einen bestimmten Prozess jetzt zu dem gegebenen Zeitpunkt ein solcher kontinuierlichen
Befehlsstrom nicht mehr möglich ist. Und ein wichtiger Aspekt dabei ist die
sogenannte Lokalität eines Prozesses. Diese Lokalität wird eben genau durch die aktuelle
Referenzfolge eines Prozesses generiert. Also diese Referenzfolge, der jetzt zu einem bestimmten
Zeitpunkt gültige Adressvorrat in der Prozess gerade generiert hat, definiert diese Lokalität,
die Adressen, die hier in diesem Wertevorrat enthalten sind, müssen demzufolge abbildbar
sein auf Objekte im Hauptspeicher, auf Maschinenbefehler oder auf Daten, die im Hauptspeicher sind.
Presenters
Zugänglich über
Offener Zugang
Dauer
00:23:18 Min
Aufnahmedatum
2020-06-22
Hochgeladen am
2020-06-22 17:26:36
Sprache
de-DE