100 - 7.2.7 Dialogverarbeitung: Umlagerung von Programmen [ID:19691]
50 von 307 angezeigt

Nun, Dialogbetrieb ist mehr Programmbetrieb, interaktiver mehr Programmbetrieb, um es genauer

zu sagen und der Grad praktisch, also wie viele Programme man dazu gleich im Rechensystem laufen

lassen kann, hängt natürlich auch sehr stark von der Hauptspeichergröße ab und von der Größe der

Programme selbst. Nun haben wir ja schon sowas wie Overlay-Techniken kurz kennengelernt. Das war die

selektive Überlagerung des Hauptspeichers eigentlich durch Techniken des programmierten,

dynamischen Lans. Das hat aber seine Grenze. Wir haben hier diese Overlays etwa und die Anzahl

dieser Overlays und die Größe dieser Overlays als Hauptspeichergröße in den Text- und Datenbereiche

beschränkt natürlich letztendlich die Menge der Programme, die wir dann zu einem Zeitpunkt denn in

Ausführung halten können. Und das war zudem ein variabler Wert, weil er nämlich sehr stark eben

auch von der Struktur und der Organisation der Programme selbst abhinkt und letztendlich auch

von den Fähigkeiten der Programmierer entsprechend strukturierte Programme zu entwickeln,

die dann ein sehr effizientes programmiertes dynamisches Laden mit der Overlay-Technik

ermöglichen. Nun eine Umlagerung von Speicherbereichen von Programmen, die sich gerade nicht

in Ausführung befinden. Das sogenannte Swapping, das erlaubt dann praktisch diese Grenze ein

bisschen weiter nach hinten zu schieben, damit eben auch Platz, den Schweicherplatz schaffen zu

können für Programme, die jetzt ausführbar wären. Etwa die nicht ausführbar reiten Programme sind

Programme, in denen sich Prozesse befinden, die eigentlich alle blockiert sind. Und dann ist es

auch nicht notwendig, dass dann diese Programme, die zu diesen Prozessen sozusagen gehören,

einfach Hauptspeicherplatz letztendlich wegnehmen. Und konnte man also damit Platz schaffen, um dann

eben andere Programme, die dann eben ausführbar waren und damit auch andere Prozesse dann letztendlich

zu starten. Und wenn man sich jetzt so ein Modell vorstellt, wo man dann praktisch immer hin und

wieder den umlagert, praktisch zwischen Hauptspeicher und dem Hintergrundspeicher und zwar komplette

Speicherbereiche, komplette Programme, dann konnte man zumindest logisch virtuell eine höhere Anzahl

von Programmen in Ausführung, wenn man so will, halten. Diese Grenze lässt sich so ja noch weiter

verschieben, wenn man jetzt nicht nur die Programme betrachtet, die sich gerade nicht in Ausführung

befinden, sondern tatsächlich auch laufende Programme betrachtet. Und da sind wir dann beim

Paging oder beim Segmentation, nämlich beim virtuellen Speicher. Da würde man dann eben

Techniken anbieten und tut es halt eben auch in den Systemen von heute, die den praktischen

Beibedarf genau denn jene Programmbestandteile, Text- oder Datenbereiche in den Hauptspeicher

einlagern. Und zwar wenn der Prozess sozusagen den Zugriff auf diese entsprechende Bereiche

ausführt. Dann sieht es eigentlich so aus, als wenn die Programme schon virtuell scheinbar

komplett im Hauptspeicher liegen, aber in der Realität sind es dann immer nur Bruchteile,

bestimmte Bestandteile davon. Das sind denn die Teile, die eigentlich jetzt gerade von

dem Prozess letztendlich benutzt werden. Allgemein sagt man, dass jetzt eben Prozesse

Arbeitsspeicher belegen und nicht nur einfach nur Hauptspeicher, weil nämlich dieser Arbeitsspeicher

jetzt ein Verbund von gewissen Hauptspeicher, normalerweise der komplette Hauptspeicher,

und gewisse Bereiche im Ablagespeicher, den Swapping-Bereich dort im Ablagespeicher,

also auf einer Festplatte etwa, ausmacht. Und das dann das Betriebssystem Funktionen

eben anbietet, um dann praktisch bestimmte Text- und Datenbestände in Abhängigkeit von den

jeweiligen Prozessaktivitäten zwischen diesen Haupt- und Ablagespeicherbereichen dann immer hin

und her zu bewegen und das dann eigentlich zumindest funktional transparent für die Prozesse

geschieht. Nun hier mal das Beispiel zunächst, wie die Umlagerung nicht auswiebereiter Programme

zu sehen ist. Das Swapping, das ist eine Funktion, wie man sagt, der mittelfristigen Einplanung,

medium-term scheduling. Es ist de facto eine scheduling Strategie von Prozessen, die aber

eigentlich viel stärker sich auf die Speichererwaltung bezieht. Hier haben wir ein Szenario,

wo wir im Vordergrundspeicher, also im Hauptspeicher, drei Prozesse zu liegen haben. Zwei davon,

P1, P3, sind bereit. Die stehen also auf der Ready-Liste, die Prozesskontrollblöcke, und dann

haben wir P2 laufen. Das heißt, der besitzt jetzt die CPU und führt irgendeinem CPU-Stoß,

den sozusagen aus. Im Hintergrundspeicher haben wir Prozesse P4, auch der ist bereit,

und P5 ist blockiert. P4, der bereitere Prozess, war wahrscheinlich früher, das ist die Annahme,

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

00:27:54 Min

Aufnahmedatum

2020-07-14

Hochgeladen am

2020-07-14 14:56:27

Sprache

de-DE

Tags

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