Virtueller Speicher ist ein Bereich des sekundären Speicherplatzes eines Computersystems (z. B. eine Festplatte oder ein Solid-State-Laufwerk), der so wirkt, als wäre er Teil des RAM oder des Primärspeichers des Systems.
Idealerweise werden die Daten, die zum Ausführen von Anwendungen benötigt werden, im RAM gespeichert, wo sie von der CPU schnell abgerufen werden können. Wenn jedoch große Anwendungen ausgeführt werden oder viele Anwendungen gleichzeitig ausgeführt werden, kann der Arbeitsspeicher des Systems voll werden.
Um dieses Problem zu umgehen, können einige im RAM gespeicherte Daten, die nicht aktiv verwendet werden, vorübergehend in den virtuellen Speicher verschoben werden (der sich physisch auf einer Festplatte oder einem anderen Speichergerät befindet). Dadurch wird Speicherplatz im RAM frei, der dann zur Aufnahme von Daten verwendet werden kann, auf die das System unmittelbar zugreifen muss.
Durch das Austauschen von Daten zwischen RAM und virtuellem Speicher, wenn sie nicht benötigt werden, und zurück vom virtuellen Speicher in den RAM, wenn sie benötigt werden, kann ein System weiterhin reibungslos mit weit weniger physischem RAM arbeiten, als es sonst erfordern würde.
Mit virtuellem Speicher kann ein System größere Anwendungen oder mehrere Anwendungen gleichzeitig ausführen, ohne dass der Arbeitsspeicher knapp wird. Insbesondere kann das System so arbeiten, als ob seine gesamten RAM-Ressourcen der Menge an physischem RAM plus der Menge an virtuellem RAM entsprechen würden.
Warum wird virtueller Speicher benötigt?
Virtueller Speicher wurde entwickelt, als physischer RAM sehr teuer war, und RAM ist pro Gigabyte immer noch teurer als Speichermedien wie Festplatten und Solid-State-Laufwerke. Aus diesem Grund ist es viel kostengünstiger, eine Kombination aus physischem RAM und virtuellem Speicher zu verwenden, als ein Computersystem mit mehr RAM auszustatten.
Da die Verwendung des virtuellen Speichers (oder die Erhöhung des virtuellen Speichers) keine zusätzlichen finanziellen Kosten verursacht (da vorhandener Speicherplatz verwendet wird), bietet es einem Computer die Möglichkeit, mehr Speicher zu verwenden, als physisch auf dem System verfügbar ist.
Ein weiterer wichtiger Treiber für die Verwendung von virtuellem Speicher ist, dass alle Computersysteme eine Begrenzung (durch Hardware und Software vorgegeben) für die Menge an physischem RAM haben, die installiert werden kann. Durch die Verwendung von virtuellem Speicher kann das System weiterhin über diese physischen RAM-Grenzen hinaus betrieben werden.
Virtueller Speicher vs. physischer Speicher
Da RAM teurer ist als virtueller Speicher, scheint es – wenn alle Dinge gleich sind –, dass Computer mit so wenig RAM und so viel virtuellem Speicher wie möglich ausgestattet sein sollten.
Tatsächlich unterscheiden sich die Eigenschaften des virtuellen Speichers jedoch von denen des physischen Speichers. Der Hauptunterschied zwischen virtuellem Speicher und physischem Speicher besteht darin, dass RAM sehr viel schneller ist als virtueller Speicher.
Ein System mit 2 GB physischem RAM und 2 GB virtuellem Speicher bietet also nicht die gleiche Leistung wie ein ähnliches System mit 4 GB physischem RAM. Um zu verstehen, warum, ist es notwendig zu verstehen, wie virtueller Speicher funktioniert.
Wie funktioniert virtueller Speicher?
Wenn eine Anwendung (einschließlich des Betriebssystems) ausgeführt wird, speichert sie den Speicherort von Programmthreads und anderen Daten an einer virtuellen Adresse, während die Daten tatsächlich an einer physischen Adresse im RAM gespeichert werden. Wenn später dieser RAM-Speicherplatz von einem anderen Prozess dringender benötigt wird, können die Daten aus dem RAM in den virtuellen Speicher ausgelagert werden.
Die Verantwortung für die Verfolgung all dieser Daten, wenn sie zwischen physischem und virtuellem Speicher ausgetauscht werden, liegt beim Speichermanager des Computers. Der Speichermanager verwaltet eine Tabelle, die virtuelle Adressen, die vom Betriebssystem und von Anwendungen verwendet werden, den physischen Adressen zuordnet, in denen Daten tatsächlich gespeichert sind. Wenn Daten zwischen RAM und virtuellem Speicher ausgetauscht werden, wird die Tabelle aktualisiert, sodass eine angegebene virtuelle Adresse immer auf den richtigen physischen Speicherort verweist.
Ein Computer kann nur Threads ausführen und Daten bearbeiten, die im RAM und nicht im virtuellen Speicher gespeichert sind. Und es dauert eine nicht zu vernachlässigende Zeit, um Daten, die benötigt werden, in den RAM auszutauschen. Folglich folgt daraus, dass die Verwendung von virtuellem Speicher einen Leistungseinbruch beinhaltet.
Anders ausgedrückt, ein System mit 4 GB RAM bietet im Allgemeinen eine höhere Leistung als ein System mit 2 GB RAM und 2 GB virtuellem Speicher, da die Leistung durch das Austauschen beeinträchtigt wird.
Ein potenzielles Problem mit virtuellem Speicher besteht darin, dass ein System einen großen Teil seiner CPU-Ressourcen für das Hin- und Herwechseln von Daten aufwenden kann, wenn die vorhandene RAM-Menge im Vergleich zur Menge des virtuellen Speichers zu klein ist. Währenddessen kommt die Ausführung nützlicher Arbeit fast zum Stillstand – ein Prozess, der als Thrashing bekannt ist.
Um Thrashing zu verhindern, ist es normalerweise erforderlich, die Anzahl der gleichzeitig ausgeführten Anwendungen zu reduzieren oder einfach den Arbeitsspeicher im System zu erhöhen.
Betriebssysteme wie die meisten Windows-Versionen empfehlen im Allgemeinen, dass Benutzer den virtuellen Speicher nicht über das 1,5-fache des vorhandenen physischen Arbeitsspeichers hinaus erhöhen. Ein System mit 4 GB RAM sollte also einen virtuellen Speicher von nicht mehr als 6 GB haben.
Um die durch den Wechsel zwischen physischem und virtuellem Speicher verursachten Leistungseinbußen zu minimieren, verwenden Sie am besten das schnellste an das System angeschlossene Speichergerät, um den virtuellen Speicher zu hosten, und suchen Sie den virtuellen Speicherbereich auf einer eigenen Partition.
Virtueller Speicher kann mit dem Hauptspeicher eines Computers zusammenarbeiten, um schnellere und flüssigere Vorgänge zu ermöglichen.
Erhöhen des virtuellen Speichers in einem System
Die meisten Betriebssysteme ermöglichen es Benutzern, den virtuellen Speicher über eine Konfigurationsseite zu erhöhen.
- In Windows können Benutzer dem System auch erlauben, die Menge des bereitgestellten virtuellen Speichers dynamisch zu verwalten.
- In ähnlicher Weise können Benutzer unter Mac OS das Einstellungsfenster verwenden, um virtuellen Speicher zuzuweisen.
Arten von virtuellem Speicher: Paging und Segmentierung
Virtueller Speicher kann vom Betriebssystem eines Systems auf verschiedene Arten verwaltet werden, und die beiden gebräuchlichsten Ansätze sind Paging und Segmentierung.
Paging des virtuellen Speichers
In einem System, das Paging verwendet, ist der Arbeitsspeicher in eine Anzahl von Blöcken unterteilt – normalerweise 4 KB groß –, die als Seiten bezeichnet werden. Prozessen werden dann gerade genug Seiten zugewiesen, um ihre Speicheranforderungen zu erfüllen. Das bedeutet, dass immer wenig Speicher verschwendet wird, außer in dem ungewöhnlichen Fall, in dem ein Prozess genau eine ganze Anzahl von Seiten benötigt.
Während des normalen Betriebsablaufs werden Seiten (d. H. Speicherblöcke mit einer Größe von 4 KB) zwischen RAM und einer Auslagerungsdatei ausgetauscht, die den virtuellen Speicher darstellt.
Segmentierung des virtuellen Speichers
Die Segmentierung ist ein alternativer Ansatz zur Speicherverwaltung, bei dem anstelle von Seiten fester Größe Prozessen Segmente unterschiedlicher Länge zugewiesen werden, um ihre Anforderungen genau zu erfüllen. Das bedeutet, dass im Gegensatz zu einem ausgelagerten System kein Speicher in einem Segment verschwendet wird.
Durch die Segmentierung können Anwendungen auch in logisch unabhängige Adressräume aufgeteilt werden, wodurch sie einfacher gemeinsam genutzt und sicherer werden können.
Ein Problem bei der Segmentierung besteht jedoch darin, dass jedes Segment unterschiedlich lang ist und zu einer „Speicherfragmentierung“ führen kann.“ Dies bedeutet, dass beim Zuweisen und Aufheben von Segmenten kleine Speicherblöcke verstreut bleiben können, die zu klein sind, um nützlich zu sein.
Wenn sich diese kleinen Brocken aufbauen, können immer weniger Segmente nützlicher Größe zugewiesen werden. Und wenn das Betriebssystem diese kleinen Segmente verwendet, gibt es eine große Anzahl zu verfolgen, und jeder Prozess muss viele verschiedene Segmente verwenden, was ineffizient ist und die Leistung beeinträchtigen kann.
Vor- und Nachteile des virtuellen Speichers
Obwohl RAM im Vergleich zu den Kosten bei der Entwicklung des virtuellen Speichers heute relativ kostengünstig ist, ist es immer noch äußerst nützlich und wird immer noch in vielen, vielleicht den meisten Computersystemen eingesetzt. Das Hauptproblem mit virtuellem Speicher bezieht sich auf die Leistung.
Vorteile des virtuellen Speichers
- Ermöglicht die gleichzeitige Ausführung mehrerer Anwendungen.
- Ermöglicht die Ausführung größerer Anwendungen in Systemen, die nicht über genügend physischen RAM verfügen, um sie auszuführen.
- Bietet eine Möglichkeit, den Speicher zu erhöhen, der kostengünstiger ist als der Kauf von mehr RAM.
- Bietet eine Möglichkeit, den Arbeitsspeicher in einem System zu erhöhen, das über die maximale RAM-Menge verfügt, die seine Hardware und sein Betriebssystem unterstützen können.
Nachteile des virtuellen Speichers
- Bietet nicht die gleiche Leistung wie RAM.
- Kann die Gesamtleistung eines Systems negativ beeinflussen.
- Nimmt Speicherplatz ein, der sonst für die langfristige Datenspeicherung verwendet werden könnte.