Eine Maßnahme um durchaus Programme und viele Programme möglicherweise in dem nur sehr begrenzten
und sehr knappen Hauptspeicher ausführen zu können war die Überlagungstechnik Overlays.
Das heißt also ein einzelnes Programm ausführen zu können, obwohl es in der Gesamtheit einfach
nicht in den Hauptspeicher halt reinpasst. Jetzt unabhängig davon, ob man praktisch ein
ein Programm oder auch gar mehr Programmbetrieb durchführen möchte. Denn dieses Programm kann
überhaupt insgesamt zu groß für den Hauptspeicher sein, auch im Einprogrammbetrieb oder so wie wir
es jetzt hier eben betrachtet haben im Mehrprogrammbetrieb. Da haben wir eben mehr als ein
Anwendungsprogramm. Jedes bekommt eine bestimmte Hauptspeicherpartition zugeordnet, die eine
gewisse maximale Größe vielleicht aus verwaltungstechnischen Gründen halt hat.
Und so ein Anwendungsprogramm ist eben größer als so ein Hauptspeicherbereich, den man ihm zuordnet.
Auch dann kann man sich überlegen, wie man trotzdem dieses Anwendungsprogramm zur Ausführung bringen
kann, nämlich mit Überlagerungen, die man halt versucht zu definieren. Nun dazu wird in beiden
Fällen dieses Programm eben in entsprechend kleine Teile zergliedert, wo man dann weiß,
dass alle diese Teile nicht immer ständig im Hauptspeicher vorhanden sein müssen. Das hängt
dann im Wesentlichen vom dynamischen Verlauf der Programmausführung ab, welche dieser Teile,
zu welchem Zeitpunkt denn im Hauptspeicher liegen müssen. Und das betrifft dann die Textteile,
wie auch die Datenteile, die wir haben. Also Text- oder Datenbereich von der logischen Seite halt
hier. Die liegen dann natürlich abrufbereit im Hintergrundspeicher. Irgendwo müssen sie ja
platziert sein, also auf einer Festplatte oder vielleicht sogar auf ein Magnetband. Und sie werden
dann halt bei Bedarf nachgeladen, in den Hauptspeicher halt eingelagert und so in der Art,
dass praktisch bestimmte Teile sich überlagern kann. Genau die Teile könnten sich überlagern,
die nicht zum selben Zeitpunkt von den jeweiligen Prozessen denn für den weiteren Fortschritt
benötigt werden im Endeffekt. Dieses Nachladen ist programmiert in den Programmen selbst. Das ist
eine Programmanweisung sozusagen, dann einen Overlay halt einzulagern. Das heißt, die Programme
selbst aktiv lösen denn dieses dynamische Nachladen von diesen Überlagerungen aus. Das Problem ist
eben praktisch, dass es ein manueller Ansatz war, denn eine Überlagerungsstruktur zu finden,
die möglichst optimal ist, also die für das eine Programm denn auf jeden Fall gut funktioniert und
dann sogar im Mix mit anderen Programmen funktioniert. Nun hierbei kurz dargestellt, was es bedeutet.
Also hier hätten wir jetzt mal ein unzerteiltes Programm, was aus diesem Programm Einzelbestandteilen
A, B, C bis I denn besteht. Man stelle sich zum Beispiel A, B, C, D, E, F, G als Unterprogramme halt
etwa vor. Wenn man jetzt dieses Programm komplett statisch binden würde, dann würde man ja irgendwie
eine Entscheidung der Bindertrifft, die Entscheidung fällen müssen. Diese einzelnen Programm
Bestandteile einfach hintereinander irgendwie in diesem Adressbereich, in diesem Namensraum
denn letztendlich zu platzieren. Im dynamischen Fall, wenn das Programm jetzt zerteilt wäre,
könnte sich aber so eine Struktur halt ergeben. Wenn man zum Beispiel weiß, dass Unterprogramm A
oder das Hauptprogramm in dem Fall Unterprogramm B aufruft und B ruft dann E auf, dann müssen zu
diesem Zeitpunkt, wenn man sich in E befindet, letztendlich auch nur die Teile A, B, E im Hauptspeicher
eingelagert sein. Wenn man E beendet hat, man kehrt zu B zurück und B ruft dann F auf, dann müssen
zu diesem Zeitpunkt nur A, B, F enthalten sind. Wenn B beendet, F beendet, B beendet ist und dann A, C
aufruft, dann müssen nur die Teile A und C letztendlich drin sein und so weiter und so zu. Das
heißt also, das wären jetzt die einzelnen Programmteile, die man denn finden muss, manuell,
später auch automatisiert, um dann eine Überlagerungsstruktur zu finden, die es
ermöglicht insgesamt, denn einen kleineren Hauptspeicherbedarf halt nur stellen zu müssen,
um dieses Programm denn noch zur Ausführung bringen zu können. Hier ist dann mal der Vergleich.
Das selbe Programm mit denselben Bestandteilen würde möglicherweise, wenn wir also solch eine
dynamische Sicht denn einnehmen können für die Ausführung dieses Programms, nur vielleicht die
Hälfte des Hauptspeicherplatzes belegen, als wenn man denn praktisch die statische Sicht denn wirklich
durchführt. Das ist gar nicht so abwehlig, wenn man sich wirklich mal so die eigenen Programme halt
anschaut, dann wird man feststellen, dass natürlich zumindest im Falle sequenzieller Programme, der
herkömmlichen Art und Weise der Programmausführung, dass natürlich nicht sämtliche Unterprogramme und
Presenters
Zugänglich über
Offener Zugang
Dauer
00:07:36 Min
Aufnahmedatum
2020-07-06
Hochgeladen am
2020-07-06 16:46:29
Sprache
de-DE