Segmentierung (Speicherverwaltung)

Unter Segmentierung versteht man im Zusammenhang von Rechenmaschinen die kontextuelle (Adressregister) Verfügbarkeit von Speicherbereichen. Die Segmentierung war zu Zeiten der 8-Bit- und 16-Bit-Mikroprozessoren die einzige Möglichkeit, mehr als 64Ki Worte Speicher über einen Speicherkanal zu adressieren. Im Verlauf der Entwicklung der Betriebssysteme und Prozessoren wurde die Segmentierung zu einem Schutzmechanismus und dem Paging weiterentwickelt. Durch 32-Bit-Prozessoren und diese voll unterstützende 32-Bit-Betriebssysteme (wie Windows NT) sowie 32-Bit-Anwendersoftware wurde die Segmentierung in ihrer Ursprungsform abgeschafft.

Prozessoren mit Segmentierung enthalten meist mehrere Segmentierungsregister und Hardware, um 16-Bit-Adressen anhand der Segmentierungsregister auf die physisch vorhandenen Adressleitungen (oft 20 oder 24) zu erweitern. Die Implementation ohne interne Hardwareunterstützung erfolgte per Memory Management Unit als externer IC. Ein Beispiel für letzteres Vorgehen ist der in den 1990er Jahren von Nintendo verkaufte Game Boy, dessen Spiele oft eine MMU enthielten und so trotz des Z80 z. B. 1 MiB ROM verwendeten.

Ab Ende der 1990er Jahre verblieb nur noch der Zweck der Unterteilung zur Umsetzung von Schutzmechanismen oder virtueller Speicherverwaltung. Je nach Betriebssystem und zugrundeliegender Hardware können einem Segment verschiedene Attribute zugewiesen werden. So können beispielsweise Programm-, Daten- und Stack-Segmente festgelegt werden. Diese Attribute ergeben sich für die Intel x86 Architektur direkt aus den Segmentierungsregistern des Intel 8086, dem Prozessors des ersten IBM PCs. Die Speicherverwaltung sorgt dann unter anderem dafür, dass aus dem Programmsegment nur Befehle, aber keine Daten gelesen werden, oder dass umgekehrt Daten im Datensegment nicht als Befehle interpretiert werden. Oft ist es auch möglich, Segmenten Privilegierungsebenen zuzuweisen, sodass auf die entsprechenden Segmente nur von Programmen bestimmter Privilegierungsebenen zugegriffen werden kann. Man kann so zum Beispiel Betriebssystemdaten und -befehle vor Zugriff durch andere Programme schützen. Häufig kann auch die Zugriffsart (zum Beispiel nur lesen, nur schreiben, kein Zugriff) eingeschränkt werden. Manche Systeme erlauben auch Privilegierungsebenen-abhängige Zugriffsarteneinschränkung.


© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search