Kategorie

A B C D E
F G H I J
K L M N O
P Q R S T
U V W X Y
Z 0      

segmentierung speicherverwaltung

sa sb sc sd se sf sg sh si sj sk sl sm
sn so sp sq sr ss st su sv sw sx sy sz

Segmentierung (Speicherverwaltung)

Unter Segmentierung versteht man bei der Speicherverwaltung in einem Betriebssystem die Unterteilung des Arbeitsspeichers in einzelne Segmente, die über eine Offsetadresse adressiert werden. Diese Offsetadresse ist eine Adresse innerhalb des Segments. Diese Offsetadresse ist die Adresse eines Speicherplatzes in genau diesem Segment - die gleiche Offsetadresse in einem anderen Segment adressiert einen anderen Speicherplatz. Adressieren in zwei Segmenten die Offsetadressen den gleichen Speicherplatz, so redet man meist von einem Alias.

Es entsteht also ein Adresse, bestehend aus einer Segmentadresse und einer Offsetadresse - dies wird meist dann als Segment:Offset geschrieben. Meist haben Segment eine feste Größe, die auch als Limit bezeichnet wird.

Hierbei werden meist verschiedene Techniken angewandt. Einerseits Segmente, die an festen Adressen liegen, wie es z.B. beim 8086 Prozessor war. Bei diesem Prozessor wurde die tatsächliche Adresse des Speicherplatzes wie folgt berechnet:

(Segmentadresse * 16) + Offsetadresse

Segmente hatten bei einem 8086 die feste Größe von 64 KB. Mit dieser Segment-Offset-Adressierung konnte man die 16-bit Adressbreite auf 20-bit ausweiten, da die 16-bittige Segmentadresse durch die Multiplikation mit 16 zu einer 20-bit-Zahl wurde, zu der nur noch das Offset addiert werden musste. Mit diesen 20-bit konnten immerhin bis zu 1 MB RAM auf einem 16-bit Prozessor addressiert werden!

Andererseits können aber Segmente auch an beliebigen Adressen liegen, wie es später beim 80286 und 80386 Prozessor eingeführt wurde. Dort hat ein Segment eine Basisadresse, die zur Offsetadresse hinzuadiert wird. Das Limit eines Segmentes auf einem i386er kann auf (4 GB - Basisadresse) ausgeweitet werden. Ferner erlaubt dieser Prozessortyp für Segmente Sicherheitseinstellungen festzulegen, so dass Segmente z.B. nur-lesbar sind oder nur Programmcode enthalten dürfen. Auch können bestimmte Segmente auf Kernel- und Systemprozesse eingeschränkt werden. Die Segmente werden bei dieser Architektur in Tabellen verwaltet, auf die der Prozessor nur Ring-0-Programme des Protected Mode zugreifen lässt.

Die Segmentierung war früher die einzige Möglichkeit, mehr Speicher zu adressieren als Adressleitungen zur Verfügung standen. Auch zur Auslagerung von ganzen Prozessen und für den Speicherschutz wurde Segmentierung eingesetzt. Durch leistungsfähigere Prozessoren wurde es aber durch das Paging abgelöst, das eine feinkörnigere und flexiblere Verwaltung des Speichers ermöglichte. Auf den neuen 64-bit Prozessoren der x86-Reihe wurde die Segmentierung im 64-bit Modus nahezu abgeschafft.

Impressum

Datenschutzerklärung