Segmente & Pages
Segmente & Pages
Auf einen Blick
Zwei Arten, den virtuellen Adressraum einzuteilen: Segmente (variable Größe, logisch, mit eigenen Rechten) und Pages (feste Größe, z.B. 4 KB, individuell auslagerbar). Linux und Windows bevorzugen Pages.
Segmente
- variable, vom Anwender vorgebbare Größe
- voneinander unabhängig
- tragen segment-spezifische Rechte
- Beispiele: Code-Segment, Daten-Segment, Stack-Segment
Pages
- feste Größe, von Hardware und OS vorgegeben (Intel 32-Bit: 4 KB)
- können individuell ausgelagert werden
- Rechte auf Page-Ebene
- bevorzugtes Modell von Linux und Windows
Page vs. Page Frame
Der zentrale Begriffspaar für die Adressabbildung:
- Page — eine Einheit im virtuellen Adressraum (logische Sicht der CPU/des Programms).
- Page Frame — eine gleich große Einheit im physikalischen RAM.
Die Abbildung virtuell → physikalisch ist also eine Abbildung Page → Page Frame, verwaltet in der Page Table.
Adressaufbau
Eine virtuelle Adresse zerfällt in (Page-Nummer p, Offset). Der Offset bleibt bei der Umsetzung unverändert; nur p wird durch die Frame-Nummer ersetzt. In einem 32-Bit-Linux ist der Adressraum linear und in 4-KB-Pages eingeteilt.
Verwandte Notes
Virtual Memory · Page Table & MMU · Page Faults · Paging-Algorithmen