Vorlage:Doppeleintrag Speicherverwaltung -- Friese 21:31, 13. Jul 2004 (CEST)
Aufteilung des Arbeitsspeichers auf RAM und Festplatte. Somit kann der Arbeitsspeicher größer werden als das installierte RAM. Bei Systemen mit virtueller Speicherverwaltung kommt es kaum noch vor, dass ein Programm mit einer Fehlermeldung wie "Heap Space Overflow" oder "Insufficient Memory" stoppt oder gar nicht erst startet wie das früher der Fall war. Sondern es wird laufen - allerdings mit entsprechend viel auf der Festplatte ausgelagertem Arbeitsspeicher, was das System dann sehr langsam macht. Daher macht sich bei moderneren Computersystemen die Erweiterung des RAM (wenn überhaupt) meistens in einer Beschleunigung des Systems bemerkbar.
Virtuelle Speicherverwaltung und 64 Bit
Im Jahr 2004 und in den Jahren danach wird noch viel über 32 Bit und 64 Bit diskutiert werden. Dabei ist die Größe des Arbeitsspeichers, der von der jeweiligen CPU verwendet werden kann, immer ein Argument. Oft wird argumentiert, dass dieser maximale Arbeitsspeicher bei 32-Bit-CPUs nur 4 GiB betrage. Das ist aber nicht richtig - nicht zuletzt aufgrund der virtuellen Speicherverwaltung. Das Paging-System von 32-Bit-CPUs, das zur Verwaltung des virtuellen Speichers genutzt wird, kann meist etliche Tausend GiB (1024 GiB = 1 TiB) verwalten. (Intel und AMD-Prozessoren ab 80386 z.B. 2^46 Bytes = 64 TiB.) Lediglich der lineare Adressraum einer Task kann bei 32-Bit-CPUs 4 GiB nicht überschreiten, bei 64-Bit-CPUs und geeignetem Betriebssystem hingegen schon.
Physikalische Adresszuordnung und Verwaltung
Da im Allgemeinen der virtuelle Adressraum größer ist als der physikalisch verfügbare, muss eine Möglichkeit gefunden werden, eine Abbildung zwischen diesen herzustellen. Um dies kümmert sich auf den meisten Plattformen die MMU. Zur Verwaltung gibt es verschiedene Strategien:
Swapping wird heute de facto nicht mehr genutzt, da es als äußerst ineffizient gilt und viele Nachteile aufweist wie Speicherverschwendung durch Fragmentierung und unflexible Memory Protection.
Paging ist hingegen die derzeit am weit vereiteste Technik, und findet auch bei Linux Verwendung.
Bei der Segmentierung gibt es im zwei verschiedene Methoden
- Reine Segmentierung
- Segmentierung mit Paging
Bei der Reinen Segmentierung wird nicht anderes gemacht als nicht ganze Prozess Images auszulagern sondern eben nur Segmentweise - daher der Name.