| Zeile 1: | Zeile 1: | ||
Die '''Speicherverwaltung''' (= '''Memory Management''') ist ein wichtiger Teil des [[Betriebssystem | Betriebssystems]]. Um genau zu sein ist es ein Grundbestandteil eines Betriebssystems und meistens sogar vollständig im [[Kernel]] enthalten. | Die '''Speicherverwaltung''' (= '''Memory Management''') ist ein wichtiger Teil des [[Betriebssystem | Betriebssystems]]. Um genau zu sein ist es ein Grundbestandteil eines Betriebssystems und meistens sogar vollständig im [[Kernel]] enthalten. | ||
| + | |||
== Einleitung == | == Einleitung == | ||
| Zeile 6: | Zeile 7: | ||
* Die [[physische Speicherverwaltung]] verwaltet Speicherblöcke (physische Seiten) im tatsächlich verfügbaren RAM | * Die [[physische Speicherverwaltung]] verwaltet Speicherblöcke (physische Seiten) im tatsächlich verfügbaren RAM | ||
* Die [[ #virtuelle Speicherverwaltung | virtuelle Speicherverwaltung]] baut auf der physischen Speicherverwaltung auf. Sie verwaltet Seiten im virtuellen Adressraum und deren Zuordnung zu physischen Seiten. | * Die [[ #virtuelle Speicherverwaltung | virtuelle Speicherverwaltung]] baut auf der physischen Speicherverwaltung auf. Sie verwaltet Seiten im virtuellen Adressraum und deren Zuordnung zu physischen Seiten. | ||
| − | * malloc/free verwalten den Heap. Im Gegensatz zu den unterliegenden Schichten, die nur in Blöcken gleicher Größe arbeiten, sind malloc/free dafür zuständig, Speicher für unterschiedlich große Objekte bereitzustellen. | + | * malloc/free [[Heapverwaltung | verwalten den Heap]]. Im Gegensatz zu den unterliegenden Schichten, die nur in Blöcken gleicher Größe arbeiten, sind malloc/free dafür zuständig, Speicher für unterschiedlich große Objekte bereitzustellen. |
== Physische Speicherverwaltung == | == Physische Speicherverwaltung == | ||
| Zeile 13: | Zeile 14: | ||
Die '''Physische Speicherverwaltung''' bildet die unterste Ebene und ermöglicht das Allozieren und Freigeben von physischen Speicherbereichen. Meist sind diese Speicherbereiche gleich groß und richten sich nach der Seitengröße der jeweiligen Architektur. Die Seitengröße beträgt normalerweise bei der [[x86]]- und [[x86-64]]-Architektur 4 kB. Es sind dort auch 4 ([[x86]]) bzw. 2 MB ([[x86-64]]) möglich. Intern speichert die physische Speicherverwaltung, welche Speicherbereiche im physischen Speicher frei sind. | Die '''Physische Speicherverwaltung''' bildet die unterste Ebene und ermöglicht das Allozieren und Freigeben von physischen Speicherbereichen. Meist sind diese Speicherbereiche gleich groß und richten sich nach der Seitengröße der jeweiligen Architektur. Die Seitengröße beträgt normalerweise bei der [[x86]]- und [[x86-64]]-Architektur 4 kB. Es sind dort auch 4 ([[x86]]) bzw. 2 MB ([[x86-64]]) möglich. Intern speichert die physische Speicherverwaltung, welche Speicherbereiche im physischen Speicher frei sind. | ||
| − | == | + | == Virtuelle Speicherverwaltung == |
''Hauptartikel: [[Paging]]'' | ''Hauptartikel: [[Paging]]'' | ||
| Zeile 20: | Zeile 21: | ||
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]]). | ||
| − | == | + | == Heapverwaltung == |
| − | + | ''Hauptartikel: [[Heapverwaltung]]'' | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | Die '''Heapverwaltung''' stellt auf der virtuellen Speicherverwaltung aufbauend Funktionen zur Verwaltung von dynamisch allozierten Speichers beliebiger Größe, wie beispielsweise malloc/free der C-Standardbibliothek zur Verfügung. | |
| − | |||
| − | |||
== Weblinks == | == Weblinks == | ||