89 - 7.1.9 Stapelverarbeitung: Programmüberlagerungen [ID:19247]
50 von 64 angezeigt

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

Teil einer Videoserie :

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

Tags

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