| Zeile 2: | Zeile 2: | ||
== Einleitung == | == Einleitung == | ||
| − | Generell ist die Speicherverwaltung dafür zuständig nachfragenden Prozessen freien Speicher zuzuteilen bzw. freizugebenden Speicher wieder zurückzunehmen. Dazu muss natürlich gespeichert werden, welche Speicherbereiche belegt bzw. frei sind. Es ist wichtig zu verstehen, dass die Speicherverwaltung normalerweise auf 2 Ebenen aufgeteilt wird: Zum einen die [[ | + | Generell ist die Speicherverwaltung dafür zuständig nachfragenden Prozessen freien Speicher zuzuteilen bzw. freizugebenden Speicher wieder zurückzunehmen. Dazu muss natürlich gespeichert werden, welche Speicherbereiche belegt bzw. frei sind. Es ist wichtig zu verstehen, dass die Speicherverwaltung normalerweise auf 2 Ebenen aufgeteilt wird: Zum einen die [[ #physische Speicherverwaltung | physische Speicherverwaltung]] und darauf aufbauend die [[ #virtuelle Speicherverwaltung | virtuelle Speicherverwaltung]]. |
== physische Speicherverwaltung == | == physische Speicherverwaltung == | ||
| Zeile 51: | Zeile 51: | ||
== virtuelle Speicherverwaltung == | == virtuelle Speicherverwaltung == | ||
| − | Die '''virtuelle Speicherverwaltung''' befindet sich eine Schicht über der [[ | + | Die '''virtuelle Speicherverwaltung''' befindet sich eine Schicht über der [[ #physische Speicherverwaltung | physischen Speicherverwaltung]] und ist für die Organisation der Speicherbereiche im virtuellen Adressraum eines Prozesses zuständig. Unter [[x86]] und [[x86-64]] beispielsweise wird ein virtueller Adressraum über den [[Paging | Paging-Mechanismus]] (siehe dort für eine genauere Erklärung) realisiert. Dieser virtuelle Adressraum hat erstmal nichts mit dem physischen Adressraum gemeinsam. Erst die virtuelle Speicherverwaltung stellt durch Ein- und Ausblenden von physischen Speicherseiten in den virtuellen Adressraum diese Verbindung her und blendet die Segmente des Prozessimage (Code, Daten, nicht initialisierte Daten, ...), den Heap, den Stack, benötigte shared-libraries, [[IPC#Shared-memory | shared-memory]], auch den Kernel, etc. in den virtuellen Adressraum ein oder aus. Die dafür benötigten physischen Speicherseiten werden der physischen Speicherverwaltung entnommen. |
Die virtuelle Speicherverwaltung übernimmt in einem Multiprozessorsystem auch die Aufgabe die virtuellen Adressräume über mehrere Prozessoren hinweg konsistent zu halten (siehe auch [[SMP]]). | Die virtuelle Speicherverwaltung übernimmt in einem Multiprozessorsystem auch die Aufgabe die virtuellen Adressräume über mehrere Prozessoren hinweg konsistent zu halten (siehe auch [[SMP]]). | ||