luchschen_shutter - Fotolia

Mit physischem und virtuellem Memory die Leistung optimieren

Zusätzlich zu physischem Memory lässt sich auch virtuelles Memory in Speichersystemen einsetzen, um höhere Performance-Anforderungen besser zu erfüllen.

Der Vergleich zwischen physischem und virtuellem Memory (Arbeitsspeicher) beleuchtet zwei grundlegende, aber widersprüchliche Ziele: einerseits die Bereitstellung eines großen Arbeitsspeichers und andererseits die Minimierung der Kosten. Ein idealer Computer hätte ein riesiges, schnelles Memory, das dennoch erschwinglich ist. In der Praxis ist jedoch ein hochkapazitives Memory teuer, während kostengünstiger Arbeitsspeicher oft zu klein ist und Leistungsprobleme verursacht.

Bereits in den 1960er Jahren suchten Computerarchitekten nach einer Lösung für dieses Dilemma. Ihre Frage lautete: Wie kann ein kleiner Arbeitsspeicher so genutzt werden, dass er die Funktion eines viel größeren Arbeitsspeichers übernimmt? Die Antwort war, den Programmen vorzutäuschen, dass sie mehr Memory zur Verfügung haben, als tatsächlich physisch vorhanden ist.

Das Grundkonzept der Lokalität

Computerprogramme folgen typischerweise einem Muster von Wiederholungen. Sie enthalten Schleifen (Loops), die dieselben Befehle mehrfach ausführen, bevor sie zu einem anderen Programmabschnitt wechseln. Das bedeutet, dass eine sehr hohe Wahrscheinlichkeit besteht, dass die aktuell benutzten Daten auch künftig wieder abgerufen werden. Diese lokale Wiederholung führt dazu, dass der Prozessor häufig auf denselben Memory-Bereich zugreift, bevor er zu einem neuen Bereich wechselt.

Dieses Prinzip der Memory-Lokalität bedeutet, dass der Prozessor meist nur auf einen kleinen Teil des gesamten Adressraums zugreifen muss. Administratoren erkannten, dass die Leistung erheblich gesteigert werden kann, wenn häufig genutzte Daten in einem schnellen Memory verfügbar sind und nur selten auf langsamere Speicher zugegriffen werden muss.

In den 1960er Jahren wurde der Arbeitsspeicher als der schnellste verfügbare Speicher genutzt, während weniger häufig benötigte Daten auf langsameren Medien wie Festplatten oder Magnetbändern gespeichert wurden. Wenn der Prozessor zu einem neuen Adressbereich wechselte, wurden die benötigten Daten in den Arbeitsspeicher geladen, um einen schnelleren Zugriff zu ermöglichen. Dieser Ansatz minimierte den Leistungsabfall.

Einführung des virtuellen Memorys

Ein wichtiger Fortschritt war die Entwicklung des virtuellen Arbeitsspeichers. Dabei wird die Illusion geschaffen, dass das verfügbare Memory viel größer ist, als es der physische Arbeitsspeicher tatsächlich zulässt.

Wie funktioniert das?

Eine spezielle Hardwarekomponente, die sogenannte Memory Management Unit (MMU), übersetzt die vom Programm angeforderten virtuellen Adressen in physische Adressen. Diese Übersetzung erfolgt unter der Kontrolle des Betriebssystems und ist für die Anwendung unsichtbar. Der virtuelle Arbeitsspeicher scheint dadurch so groß wie der gesamte Systemspeicher zu sein, obwohl die tatsächliche Kapazität des physischen Speichers begrenzt ist.

Konflikte bei der Memory-Zuweisung

Die Abbildung eines großen virtuellen Adressraums auf einem kleineren physischen Memory führt zwangsläufig zu Konflikten: Was passiert, wenn der physische Arbeitsspeicher voll ist und neue Daten geladen werden müssen?

In solchen Fällen wird ein Algorithmus verwendet, der entscheidet, welche Daten aus dem physischen Memory entfernt werden sollen. Ein gängiger Ansatz ist der Least Recently Used (LRU)-Algorithmus, der die Daten auswählt, die zuletzt am wenigsten genutzt wurden.

Wenn der Speicherplatz freigegeben wird, können zwei Szenarien auftreten:

  • Unveränderte Daten: Diese können einfach überschrieben werden.
  • Geänderte Daten: Diese müssen zuerst zurück auf die Festplatte geschrieben werden. Um festzustellen, ob Daten geändert wurden, wird ein sogenanntes Dirty Bit verwendet. Dieses Bit zeigt an, ob eine Speicheradresse seit ihrem letzten Zugriff modifiziert wurde.
Abbildung 1: Die Unterschiede zwischen physischem und virtuellem Memory im Kurzüberblick.
Abbildung 1: Die Unterschiede zwischen physischem und virtuellem Memory im Kurzüberblick.

Unterschiede zwischen physischem und virtuellem Memory

Der physische Arbeitsspeicher besteht aus den tatsächlichen Speicherbausteinen (zum Beipiel DIMMs), die im System verbaut sind. Das virtuelle Memory hingegen ist ein Konzept, das vom Betriebssystem genutzt wird, um den Anwendungen mehr Memory zur Verfügung zu stellen, als physisch vorhanden ist. Dank des virtuellen Memorys erscheint der Arbeitsspeicher den Anwendungen wie folgt:

  • So schnell wie das physische Memory: Durch geschicktes Management werden häufig genutzte Daten im schnellen Arbeitsspeicher gehalten.
  • So groß wie der gesamte Systemspeicher: Die Illusion eines riesigen Speichers wird durch die Übersetzung virtueller Adressen ermöglicht.

Diese Methode hat sich als effizient erwiesen, da sie die Vorteile eines kleinen, schnellen Arbeitsspeichers mit der Flexibilität eines großen Adressraums kombiniert. Virtuelles Memory bleibt ein zentraler Bestandteil moderner Computersysteme und ermöglicht leistungsfähige und kosteneffiziente Lösungen.

Erfahren Sie mehr über Storage-Hardware