Speicherschutz

Speicherschutz ist die Eigenschaft von Betriebssystemen, den verfügbaren Arbeitsspeicher so aufzuteilen und laufende Programme so voneinander zu trennen, dass ein Programmierfehler oder Absturz eines einzelnen Programms nicht die Stabilität anderer Programme oder des Gesamtsystems beeinträchtigt. Programme werden daran gehindert, versehentlich oder absichtlich auf den Speicherbereich anderer Programme zuzugreifen oder das Betriebssystem anders als durch standardisierte Schnittstellen („Eingänge“) zu benutzen. Hardwareseitig kann eine Speicherverwaltungseinheit (MMU) oder eine einfachere Speicherschutzeinheit (MPU) den Speicherschutz unterstützen. Es sind aber auch reine softwaretechnische Lösungen möglich. Versucht ein Programm, auf einen geschützten Adressraum zuzugreifen, so kommt es zu einer Schutzverletzung.

Alle modernen Multitasking-Betriebssysteme haben einen Speicherschutz-Mechanismus. Betriebssysteme, auf denen nur einzelne Applikationen laufen, zum Beispiel in eingebetteten Systemen, benötigen dies meist nicht.

In einer zweiten Bedeutung wird der Begriff Speicherschutz auch verwendet, um innerhalb eines Prozess-Adressraums zu verhindern, dass auf Speicherbereiche, die Daten enthalten, als Code zugegriffen werden kann, sowie umgekehrt, dass Speicherbereiche, die Code enthalten, nicht (mit Daten) überschrieben werden können. Dies soll verhindern, dass z. B. durch Pufferüberlauf Code verändert werden kann oder über die Eingabe spezieller Daten Code eingeschleust werden kann (NX-Bit, Von-Neumann-Architektur).

Beispiele

Betriebssysteme ohne Speicherschutz

Betriebssysteme mit eingeschränktem Speicherschutz

Betriebssysteme mit vollem Speicherschutz

Siehe auch

Literatur

  • Heinz Schecher: Funktioneller Aufbau digitaler Rechenanlagen. Springer Verlag Berlin Heidelberg, Berlin Heidelberg 1973, S. 194–196.
  • Hermann Eichele: Multiprozessorsysteme. B.G. Teubner Verlag, Stuttgart 1990, ISBN 978-3-519-06128-1, S. 221–222.
  • Thomas Flik, Hans Liebig: Mikroprozessortechnik. Systemaufbau – Funktionsabläufe – Programmierung, dritte Auflage, Springer Verlag Berlin Heidelberg GmbH, Berlin Heidelberg 1990, ISBN 978-3-540-52394-9, S. 182–185.

Weblinks