Definition

Virtueller Arbeitsspeicher (Virtual Memory)

Mitarbeiter: Herzl Regev

Virtueller Arbeitsspeicher, auch virtuelles Memory genannt, ist eine Memory-Verwaltungsfunktion eines Betriebssystems(OS), die Hardware und Software verwendet, um es einem Computer zu ermöglichen, physische Memory-Engpässe auszugleichen, indem Daten vorübergehend vom RAM auf einen Disk-Speicher übertragen werden. Der virtuelle Adressraum wird unter Verwendung von aktivem Memory im RAM und inaktivem Arbeitsspeicher in Festplattenlaufwerken (HDDs) vergrößert, um zusammenhängende Adressen zu bilden, die sowohl die Anwendung als auch ihre Daten enthalten.

Fortsetzung des Inhalts unten

Das virtuelle Memory wurde zu einer Zeit entwickelt, als der physische Arbeitsspeicher - der installierte RAM – sehr teuer war. Computer haben eine endliche Menge an RAM, so dass der Arbeitsspeicher knapp werden kann, insbesondere wenn mehrere Programme gleichzeitig laufen. Ein System mit virtuellem Memory verwendet einen Teil der Festplatte, um RAM zu emulieren. Mit virtuellem Arbeitsspeicher kann ein System größere Programme oder mehrere Programme, die gleichzeitig laufen, laden, so dass jedes einzelne Programm so arbeiten kann, als hätte es unendlich viel Memory, ohne dass mehr RAM gekauft werden muss.

Beim Kopieren vom virtuellen Arbeitsspeichers in das physischen Memory teilt das Betriebssystem den Arbeitsspeicher in Page Files (Seitendateien) oder Swap Files (Austauschdateien) mit einer festen Anzahl von Adressen auf. Jede Seite (Page) wird auf einer Festplatte gespeichert, und wenn die Seite benötigt wird, kopiert das Betriebssystem sie von der Festplatte in den Arbeitsspeicher und übersetzt die virtuellen Adressen in reale Adressen.

Geschichte

Bevor der virtuelle Arbeitsspeicher entwickelt wurde, verfügten Computer über RAM und sekundäres Memory. Frühe Computer verwendeten Magnetkern-Memory als Hauptspeicher und Magnettrommeln als Sekundärspeicher. In den 1940er und 1950er Jahren war Arbeitsspeicher teuer und in der Regel Mangelware. Als Computerprogramme immer größer und komplexer wurden, mussten die Entwickler befürchten, dass ihre Programme den gesamten Hauptspeicher eines Computers auslasten und die Memory-Ressource nicht ausreicht.

In jenen frühen Tagen verwendeten Programmierer einen Prozess namens Überlagerung (Overlaying), um Programme auszuführen, die größer als der verfügbare Arbeitsspeicher waren. Teile eines Programms, die nicht ständig in Gebrauch waren, wurden als Overlay eingerichtet, das bei Bedarf das bestehende Overlay im Memory überschrieb. Damit die Überlagerung funktionierte, bedurfte es einer umfangreichen Programmierung, und das war ein wichtiger Impuls für die Entwicklung eines automatisierten virtuellen Arbeitsspeichers.

Dem deutschen Physiker Fritz-Rudolf Güntsch wird zugeschrieben, das Konzept des virtuellen Memory 1956 im Rahmen seiner Doktorarbeit entwickelt zu haben. Darin beschrieb er einen Computer, der mit Hilfe von Hardware automatisch Datenblöcke zwischen Primär- und Sekundär-Memory verschiebt, um zu verhindern, dass der Hauptspeicher knapp wird. Dies bildete die Grundlage für das Paging, ein Verfahren, bei dem der Arbeitsspeicher in Abschnitte unterteilt und zwischen RAM und einer Festplatte übertragen wird, um Platz im RAM freizugeben. Das Paging begann in den frühen 1960er Jahren in kommerziellen Computern aufzutauchen.

Im Jahr 1969 zeigten IBM-Forscher, dass das, was damals als virtuelles Memory-Overlay-System bezeichnet wurde, besser funktionierte als die früheren manuellen Systeme. Mainframes und Minicomputer in den 1970er Jahren verwendeten im Allgemeinen virtuellen Arbeitsspeicher. Die Technologie des virtuellen Memory war in den frühen PCs nicht enthalten, weil die Entwickler dachten, dass der Arbeitsspeicher in diesen Maschinen kein Problem darstellen würde. Diese Annahme erwies sich als falsch. Intel führte 1982 den virtuellen Arbeitsspeicher im geschützten Modus des 80286-Prozessors und 1985, als der 80386 herauskam, den Support für Paging ein.

Arten des virtuellem Arbeitsspeichers

Die Memory Management Unit (MMU) eines Computers wickelt Speicheroperationen ab, einschließlich der Verwaltung des virtuellen Arbeitsspeichers. Bei den meisten Computern ist die MMU-Hardware in die CPU integriert. Es gibt zwei Arten, wie der virtuelle Arbeitsspeicher gehandhabt wird: paged und segmentiert.

Beim Paging wird der Arbeitsspeicher in Sektionen oder Page Files unterteilt, die in der Regel etwa 4 KByte groß sind. Wenn ein Computer seinen Arbeitsspeicher verbraucht, werden nicht benutzte Seiten mit Hilfe eines Swap Files in den für den virtuellen Arbeitsspeicher vorgesehenen Abschnitt der Festplatte übertragen. Ein Swap File ist ein Speicherplatz auf der Festplatte, der als virtuelle Memory-Erweiterungen des RAM-Speichers des Computers reserviert ist. Wenn ein Swap File benötigt wird, wird es mit einem Prozess namens Page Swapping zurück in den RAM-Speicher gesendet. Dieses System stellt sicher, dass dem Betriebssystem und den Anwendungen des Computers nicht die reale Memory-Kapazität ausgeht.


Dieses Video erläutert Paging ohne virtuellen Arbeitsspeicher.

Der Paging-Prozess umfasst die Verwendung von Page-Tabellen, die die virtuellen Adressen, die das Betriebssystem und die Anwendungen verwenden, in die physischen Adressen übersetzen, die die MMU verwendet. Die Einträge in der Page-Tabelle geben an, ob sich die Seite (Page) im realen Arbeitsspeicher befindet oder nicht. Wenn das Betriebssystem oder ein Programm keine RAM-Ressourcen findet beziehungsweise nicht genügend zur Verfügung stehen, reagiert die MMU auf die fehlende Memory-Referenz mit einer Seitenfehlerausnahme (Page Fault Exception), um das Betriebssystem dazu zu bringen, die Seite bei Bedarf wieder in den Arbeitsspeicher zu verschieben. Sobald sich die Seite im RAM befindet, erscheint ihre virtuelle Adresse in der Page-Tabelle.

Die Segmentierung wird auch zur Verwaltung des virtuellen Arbeitsspeichers verwendet. Bei diesem Ansatz wird das virtuelle Memory in Segmente unterschiedlicher Länge unterteilt. Segmente, die im Arbeitsspeicher nicht verwendet werden, können in den virtuellen Memory auf der Festplatte verschoben werden. Segmentierte Informationen oder Prozesse werden in einer Segmenttabelle verfolgt, die anzeigt, ob ein Segment im Memory vorhanden ist, ob es modifiziert wurde und wie seine physische Adresse lautet.


Jacob Schrum erklärt die Verwendung von virtuellem Arbeitsspeicher mit Segmentierung.

Einige virtuelle Speichersysteme kombinieren Segmentierung und Paging. In diesem Fall wird der Arbeitsspeicher in Frames oder Seiten (Pages) aufgeteilt. Die Segmente nehmen mehrere Seiten ein, und die virtuelle Adresse enthält sowohl die Segmentnummer als auch die Seitennummer.

Management

Betriebssysteme haben Standardeinstellungen, die festlegen, wie viel Festplattenspeicher für den virtuellen Arbeitsspeicher reserviert beziehungsweise genutzt werden soll. Diese Einstellung funktioniert für die meisten Anwendungen und Prozesse, aber es kann Zeiten geben, in denen es notwendig ist, die Menge an Festplattenplatz, die dem virtuellen Speicher zugewiesen wird, manuell zurückzusetzen, zum Beispiel bei Anwendungen, die auf schnelle Antwortzeiten angewiesen sind, oder wenn der Computer über mehrere Festplatten verfügt.

Beim manuellen Zurücksetzen des virtuellen Memory muss die minimale und maximale Menge an Festplattenspeicher angegeben werden, die für den virtuellen Arbeitsspeicher verwendet werden soll. Die Zuweisung von zu wenig Festplattenplatz für den virtuellen Speicher kann dazu führen, dass einem Computer der RAM-Speicher ausgeht. Wenn ein System ständig mehr virtuellen Speicherplatz benötigt, kann es ratsam sein, das Hinzufügen von RAM in Erwägung zu ziehen.

Vorteile des virtuellen Arbeitsspeichers

Zu den Hauptvorteilen des virtuellen Arbeitsspeichers gehört seine Fähigkeit, doppelt so viele Adressen wie der Hauptspeicher zu verarbeiten. Er verwendet Software, um mehr Speicher zu nutzen, indem die Festplatte als temporäres Memory verwendet wird, während MMUs virtuelle Speicheradressen über die CPU in physische Adressen übersetzen. Programme verwenden virtuelle Adressen zum Speichern von Befehlen und Daten; wenn ein Programm ausgeführt wird, werden die virtuellen Adressen in tatsächliche Speicheradressen umgewandelt.

Die Hierarchie eines Arbeitsspeichers im Überblick.
Die Hierarchie eines Arbeitsspeichers im Überblick.

Der virtuelle Arbeitsspeicher befreit Anwendungen auch von der Verwaltung des gemeinsamen Memory und erspart den Benutzern das Hinzufügen von Speichermodulen, wenn der RAM-Speicherplatz knapp wird.

Einschränkungen

Der Einsatz von virtuellem Arbeitsspeicher hat seine Nachteile, insbesondere bei der Geschwindigkeit. Im Allgemeinen ist es besser, so viel physischen Arbeitsspeicher wie möglich zu haben, damit Programme direkt vom RAM oder physischen Memory aus arbeiten können. Die Verwendung von virtuellem Arbeitsspeicher verlangsamt einen Computer, weil Daten zwischen virtuellem und physischem Memory abgebildet werden müssen, was zusätzliche Hardwareunterstützung für die Adressübersetzung erfordert.

In einer virtualisierten Computerumgebung können Administratoren Techniken des virtuellen Memory-Managements verwenden, um einer virtuellen Maschine (VM), deren Ressourcen erschöpft sind, zusätzlichen Arbeitsspeicher zuzuweisen. Solche Virtualisierungs-Managementtaktiken können die VM-Leistung und die Managementflexibilität verbessern.

Diese Definition wurde zuletzt im April 2020 aktualisiert

Erfahren Sie mehr über Disk-Systeme

- GOOGLE-ANZEIGEN

File Extensions and File Formats

ComputerWeekly.de

Close