[gesichtete Version] | [gesichtete Version] |
Keine Bearbeitungszusammenfassung |
Kwastg (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(27 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<p> | |||
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. | 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. | ||
</p> | |||
<p> | |||
Insbesondere muss sichergestellt werden, dass ein Prozess nicht auf Speicherzellen im Hauptspeicher zugreift, die einem anderen Prozess zugeordnet sind. Dies kann durch Einsatz des <loop_index id="5fa97868443b1">Limitregister</loop_index><loop_index id="5fa97868974b8">Speicherschutz</loop_index>Limitregisters erreicht werden. | |||
</p> | |||
<br /> | |||
== Definition: Limitregister == | |||
<p> | |||
<loop_area type="definition"> | |||
<p> | |||
Das '''Limitregister''' befindet sich auf der CPU. Es enthält als Wert die Größe des '''zusammenhängenden''' Speicherbereichs des aktiven Prozesses im Hauptspeicher. | |||
</p> | |||
</loop_area> | |||
</p> | |||
Wie aus folgender Abbildung ersichtlich, ist das Limitregister auf der CPU angesiedelt. In [[Gesamtbild eines Von-Neumann-Rechners|vorangegangenen Bildern zur CPU]] war an dieser Stelle das Register | <br /> | ||
== Limitregister auf der CPU == | |||
<p> | |||
Wie aus folgender Abbildung ersichtlich, ist das Limitregister auf der CPU angesiedelt. In [[Gesamtbild eines Von-Neumann-Rechners|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. | |||
</p> | |||
<p><loop_figure title="CPU mit Limitregister" description="" copyright="CC-BY" index=true show_copyright=true>[[Datei: | <p> | ||
<loop_figure title="CPU mit Limitregister" description="" copyright="CC-BY" index=true show_copyright=true id="5fa97868443bb">[[Datei:Cpu12-limit.jpg|700px]]</loop_figure> | |||
</p> | |||
<br /> | |||
== Limitregister im Zusammenhang == | |||
<p> | |||
Das folgende Video erläutert die Zusammenhänge: | Das folgende Video erläutert die Zusammenhänge: | ||
</p> | |||
<p> | |||
<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 id="5fa97868443c2">{{#ev:youtube|2XrQD5q7STQ|700}}</loop_media> | |||
</loop_area> | |||
</p> | |||
<p> | |||
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. | |||
</p> | |||
<p> | |||
Auf die genauen Abläufe beim Auftreten von Interrupts geht das Kapitel [[Interrupt-Controller]] näher ein. | |||
</p> | |||
<br /> | |||
== Aufgabe 1 == | |||
<p> | |||
<loop_area type="task"> | |||
<loop_task title="Zugriff auf freien Speicherbereich" id="5fa97868443c7"> | |||
<p> | |||
Im [http://youtu.be/2XrQD5q7STQ 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. | |||
</p> | |||
<p> | |||
Wie sollte reagiert werden, wenn Prozess A stattdessen auf den noch freien Bereich im Hauptspeicher zugreift? Den Bereich also, der keinem Prozess zugeordnet ist?<br /> | |||
Begründe deine Antwort kurz. | |||
</p> | |||
</loop_task> | |||
</loop_area> | |||
</p> | |||
<br /> | <br /> | ||
< | |||
< | == Aufgabe 2 == | ||
</ | <p> | ||
<loop_area type="task"> | |||
<loop_task title="Speicherbereich eines Prozesses vergrößern" id="5fa97868443ce"> | |||
<p> | |||
Mit Hilfe des Basis- und des Limitregisters kann für jeden Prozess festgelegt werden, welchen Bereich des Hauptspeichers dieser nutzen darf. Ein Nachteil ist dabei, dass bereits bei der Erzeugung des Prozesses die maximale Größe dieses Speicherbereichs festgelegt werden muss. | |||
</p> | |||
<p> | |||
Beschreibe zwei Möglichkeiten, wie zur Laufzeit eines Prozesses der ihm zugeordnete Speicherbereich vergrößert werden kann! | |||
* Die eine Möglichkeit sollte ohne Swapping auskommen. | |||
* Die andere Möglichkeit darf Swapping nutzen! | |||
</p> | |||
<p> | |||
* Berücksichtige bei deinen Möglichkeiten: | |||
** Wie wirkt es sich aus, wenn sich mehrere Prozesse den Hauptspeicher teilen müssen? | |||
** Welche Probleme können bei der Vergrößerung des Speicherbereichs auftreten? | |||
** Wie können diese Probleme gelöst werden? | |||
</p> | |||
<p> | |||
* Was könnte(n) der Grund (die Gründe) für die Vergrößerung des Speicherbereichs sein? | |||
* Wer oder was regelt die Durchführung der Vergrößerung des Speicherbereichs? | |||
</p> | |||
</loop_task> | |||
</loop_area> | |||
</p> |
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.
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.
Das folgende Video erläutert die Zusammenhänge:
Wenn Sie dieses Element öffnen, werden Inhalte von externen Dienstleistern geladen und dadurch Ihre IP-Adresse an diese übertragen.
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.
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?
Begründe deine Antwort kurz.
Mit Hilfe des Basis- und des Limitregisters kann für jeden Prozess festgelegt werden, welchen Bereich des Hauptspeichers dieser nutzen darf. Ein Nachteil ist dabei, dass bereits bei der Erzeugung des Prozesses die maximale Größe dieses Speicherbereichs festgelegt werden muss.
Beschreibe zwei Möglichkeiten, wie zur Laufzeit eines Prozesses der ihm zugeordnete Speicherbereich vergrößert werden kann!