88 - 7.1.8 Stapelverarbeitung: Schutzvorkehrungen für Mehrprogramm [ID:19246]
50 von 265 angezeigt

Um nun den Prozessor im Mehrprogrammbetrieb vernünftig zwischen verschiedenen Programmen

eben multiplexen zu können, braucht man eben auch andere Schutzmaßnahmen für diese Programme,

inklusive natürlich dieses rudimentäre Betriebssystem, was die Grundlage bietet.

Es ist eben so, dass denn dieses eigentliche Schutzgatter-Modell so in der einfachen Form

einfach nicht mehr ausreicht. Es macht ja nur eine Trennung zwischen zwei Partitionen. De facto

brauchen wir jetzt aber im wirklichen Mehrprogrammbetrieb mehr als zwei Partitionen.

Einmal eine Partition, die für das Betriebssystem denn gilt und dann jeweils eine Partition,

wenn man so will, ein Bereich, der eigentlich selbst geschützt sein muss für jedes einzelne

Maschinenprogramm. Also ein Gatter alleine reicht nicht. Man muss dann wenigstens in der Lage sein,

dass jedes dieser Programme vernünftig eingegrenzt werden kann. Nun, welches Modell man jetzt hier

favorisiert und welches sich anbietet, hängt letztendlich von dem Bindungszeitpunkt ab. Mit

dem den Namen mit den entsprechenden Speicherorten denn verknüpft werden. Darauf basieren denn die

unterschiedlichen Schutztechniken, die wir jetzt gleich betrachten werden. Wenn wir nämlich diesen

Bindungszeitpunkt Vorlaufzeit des Programms betrachten, dann kann man den Schutz durch

sogenannte Einfriedung machen. Man hat dann praktisch zwei Gatter, wenn man so will. Die

Programme laufen im realen Adressraum, aber es gibt dann praktisch eine Grenze am Anfang des

Programms und eine Grenze am Ende des Programms. Und diese beiden Grenzwerte werden dann halt eben

von dem System, von der Hardware im Wesentlichen, dann überprüft. Man hat einen verschiedenen,

verschiebenden Lader, der den spätestens zur Ladezeit die absoluten Adressen für ein solches

Programm denn letztendlich generiert und damit dennoch konkret die feste Position des Programms im

Hauptspeicher festlegt und damit auch die Grenzen, die mit diesem Programm verbunden sind, dann

letztendlich festlegt. Die CPU oder eine entsprechende Überprüfungsharpen, die sorgt dann lediglich zur

Laufzeit nur noch da, für halt zu überprüfen, ob denn diese realen Adressen, die dann generiert

werden von den Programmen bei der Ausführung korrekt sind, ob die praktisch innerhalb dieser

Grenzen sind. Eine andere Herangehensweise ist denn Schutz durch Segmentierung. Hier findet diese

Überprüfung zur Laufzeit des Programms statt. Man sagt hier auch, das Programm insgesamt läuft in

seinem eigenen logischen Adressraum. Auch hier wäre es denn so, dass der Lader natürlich die

Bindungsparameter bestimmt, aber letztendlich sind ja alle Adressen, die der Prozess denn nachher

erzeugt, logische Adressen und das, was der Lader dann halt festlegt, ist die reale Basisadresse

dieses Programms, dieses Segments im Hauptspeicher. Die CPU oder die Hardware, die wir dann halt haben,

besorgt denn die effektive Bindung von der logischen zur realen Adresse zur Ausführungszeit. Hier wird

dann eben auch ermöglicht, dass die Programme im Hauptspeicher dort im realen Adressraum umgelagert

werden können, weil die Programme selbst bei ihrer Ausführung ja nur mit logischen Adressen arbeiten.

Und das Einzige, was man da ändern müsste, wäre dann praktisch die Basisadresse von dem Programm,

dass die der Hardware dann entsprechend neuemächtig geteilt wird. In beiden Fällen würde man praktisch

davon sprechen können, dass die Ausrichtung der Programme im Adressraum denn schon positionsrelativ

sind. Also man geht davon aus rein, logisch sagen wir mal, haben diese Programme jeweils immer eine

Anfangsadresse von Null. Dieser Wert Null bleibt, wenn man praktisch Schutz durch Segmentierung

durchführt und dann wird die Hardware, die sogenannte Relokation, wie wir gleich später sehen werden,

von sich aus durchführen oder diese Anfangsadresse wird in eine entsprechende absolute

Anfangsadresse durch den verschiebenen Lader entsprechend umgewandelt, wenn man Schutz durch

Einfriedung hat. Machen wir mal zuerst die Schutz, der Adressraum Schutz durch Einfriedung. Hier hat

man Begrenzungsregister, um die Unter- und die Obergrenze eines Programms im realen Adressraum

festlegen zu können. Und man würde dann jedem Programm ein solches Wertepaar spätestens zur

Ladezeit dann fest zuordnen letztendlich und damit mit der Prozessinkarnation denn assozieren. Wir

haben eine Adressüberprüfungs-Hardware letztlich, die dann diese Werte aufnehmen und in ihren

Registern sozusagen denn speichern, sodass denn die CPU dann praktisch zur Laufzeit bevor dann

überhaupt irgendeine Adresse denn wirklich an den Speicher geht, nochmal überprüft wird. Diese

Werte Unter- und Obergrenze, die wir haben, die nachher dann immer jeweils in diese sogenannten

Softwareprototypen nachher später in die Hardware-Register denn eingetragen werden,

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

00:24:48 Min

Aufnahmedatum

2020-07-06

Hochgeladen am

2020-07-06 23:36:31

Sprache

de-DE

Tags

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