67 - 6.2.6 Speicher: Speichervirtualisierung [ID:18329]
50 von 238 angezeigt

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.

Teil einer Videoserie :

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

Tags

module programmstruktur Variablen Datentypen Preprozessor Gültigkeit
Einbetten
Wordpress FAU Plugin
iFrame
Teilen