2.3.3 Limitregister zum Speicherschutz

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 18: Zeile 18:


<p>
<p>
<loop_figure title="CPU mit Limitregister" description="" copyright="CC-BY" index=true show_copyright=true>[[Datei:Cpu12-limit.jpg|650px]]</loop_figure>
<loop_figure title="CPU mit Limitregister" description="" copyright="CC-BY" index=true show_copyright=true>[[Datei:Cpu12-limit.jpg|700px]]</loop_figure>
</p>
</p>


Zeile 26: Zeile 26:


<p>
<p>
<loop_media type="video" title="Limitregister zum Speicherschutz (02:33)" description="http://youtu.be/2XrQD5q7STQ" copyright="CC-BY" index=true show_copyright=true>{{#ev:youtube|2XrQD5q7STQ}}</loop_media>
<loop_area icon="Video.png" icontext="Video">
<loop_media type="video" title="Limitregister zum Speicherschutz (02:33)" description="http://youtu.be/2XrQD5q7STQ" copyright="CC-BY" index=true show_copyright=true>{{#ev:youtube|2XrQD5q7STQ|700}}</loop_media>
</loop_area>
</p>
</p>


Zeile 36: Zeile 38:
</p>
</p>
<p>
<p>
<loop_area type="task">'''Aufgabe 1'''
<loop_area type="task">
<loop_task title="Aufgabe 1">
<p>
<p>
Im Video wird erläutert, wie mit Hilfe des Limitregisters verhindert wird, dass Prozess A auf einen Speicherbereich zugreift, der Prozess B zugeordnet ist. Prozess A wird bei auftreten dieser Speicherschutzverletzung beendet.
Im Video wird erläutert, wie mit Hilfe des Limitregisters verhindert wird, dass Prozess A auf einen Speicherbereich zugreift, der Prozess B zugeordnet ist. Prozess A wird bei auftreten dieser Speicherschutzverletzung beendet.
Zeile 43: Zeile 46:
Wie sollte reagiert werden, wenn Prozess A stattdessen auf den noch freien Bereich im Hauptspeicher zugreift? Den Bereich also, der keinem Prozess zugeordnet ist?
Wie sollte reagiert werden, wenn Prozess A stattdessen auf den noch freien Bereich im Hauptspeicher zugreift? Den Bereich also, der keinem Prozess zugeordnet ist?
</p>
</p>
</loop_task>
</loop_area>
</loop_area>
</p>
</p>

Version vom 24. September 2013, 10:01 Uhr

Dass es nun möglich ist, mehrere Prozesse gleichzeitig im Hauptspeicher zu verwalten, bringt nicht nur Vorteile. Es erfordert auch eine Berücksichtigung von Sicherheitsbelangen.

Insbesondere muss sichergestellt werden, dass ein Prozess nicht auf Speicherzellen im Hauptspeicher zugreift, die einem anderen Prozess zugeordnet sind. Dies kann durch Einsatz des Limitregisters erreicht werden.

Definition

Definition: Limitregister

Das Limitregister befindet sich auf der CPU. Es enthält als Wert die Größe des zusammenhängenden Speicherbereichs des aktiven Prozesses im Hauptspeicher.

Wie aus folgender Abbildung ersichtlich, ist das Limitregister auf der CPU angesiedelt. In vorangegangenen Bildern zur CPU war an dieser Stelle das Register R2 angesiedelt. Man kann sich gerne vorstellen, dass das Register R2 weiterhin auf der CPU existiert, nur eben aus Platzgründen nicht mehr eingezeichnet ist.

Cpu12-limit.jpg

Das folgende Video erläutert die Zusammenhänge:

video

Im Video wird erläutert, dass das Steuerwerk mit Hilfe des Limitregisters in die Lage versetzt wird, Zugriffe auf fremde Speicherbereiche zu bemerken, bevor sie vollzogen werden. Als Reaktion darauf erzeugt das Steuerwerk einen Interrupt, der die Ausführung des aktuellen Prozesses abbricht.

Auf die genauen Abläufe beim Auftreten von Interrupts geht das Kapitel Interrupt-Controller näher ein.

Aufgabe

Im Video wird erläutert, wie mit Hilfe des Limitregisters verhindert wird, dass Prozess A auf einen Speicherbereich zugreift, der Prozess B zugeordnet ist. Prozess A wird bei auftreten dieser Speicherschutzverletzung beendet.

Wie sollte reagiert werden, wenn Prozess A stattdessen auf den noch freien Bereich im Hauptspeicher zugreift? Den Bereich also, der keinem Prozess zugeordnet ist?



Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png