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,
Presenters
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