Während es * technisch * möglich ist, eine virtuelle Speichergröße kleiner als die physische RAM -Größe zu konfigurieren, ist es
fast nie ratsam Für allgemeine Betriebssysteme und moderne Anwendungen. Hier ist eine Aufschlüsselung von Warum:
Warum in erster Linie ein virtuelles Gedächtnis existiert:
* Programme ausführen, die größer als RAM: Der Hauptgrund besteht darin, Programme zu ermöglichen, die größer als der verfügbare physische RAM ausgeführt werden. Das Betriebssystem taucht nach Bedarf Teile des Programms des Programms zwischen RAM und der Festplatte (Swap Space/Datei) aus. Ohne virtuelles Speicher wären Sie streng auf die Menge an RAM beschränkt, die Sie haben.
* Gedächtnisschutz und Isolation: Der virtuelle Speicher bietet jedem Prozess seinen eigenen virtuellen Adressraum. Dies verhindert, dass ein Prozess versehentlich (oder böswillig) auf einen anderen Prozess zugreifen oder den Speicher ändern. Jeder Prozess ist der Ansicht, dass er über seinen eigenen Speicher verfügt und die Programmierung vereinfacht und die Systemstabilität verbessert.
* Effiziente Speicherzuweisung: Virtueller Speicher ermöglicht es dem Betriebssystem, den Speicher in nicht zusammenhängenden Blöcken im RAM zuzuweisen. Wenn das physische Speicher direkt zugewiesen wird, können Sie auf Fragmentierungsprobleme stoßen, bei denen genügend völlig freie RAM vorhanden ist, aber nicht genug zusammenhängende Blöcke für einen neuen Prozess oder eine neue Zuordnung.
* Speicherzuordnung: Der virtuelle Speicher ermöglicht die Speicherzuordnung von Dateien direkt in den Adressraum eines Prozesses. Dies ist eine sehr effiziente Möglichkeit, große Dateien zu lesen und zu schreiben, da das Betriebssystem das Laden und Speichern von Dateiinhalten auf den Seiten nach Bedarf verarbeitet.
Warum ist es schlecht:
* Limits Programmgröße: Sie begrenzen effektiv die maximale Größe eines jeden Programms, der bis zur Größe des virtuellen Speichers ausgeführt werden kann. Dies ist eine erhebliche Einschränkung, insbesondere bei den großen Anwendungen und Datensätzen von heute.
* erhöhte Fehler außerhalb des Memorys: Selbst wenn der Code und die Daten eines Programms * * in RAM passen könnten, könnte das Betriebssystem möglicherweise versuchen, mehr virtuelle Adressraum als verfügbar zuzuweisen, was zu außerfeiligen Fehlern und Programmabstürzen führt.
* Speicherschutz gebrochener Speicher: Während Sie technisch immer noch virtuelle Adressräume haben würden, ist der Grad, in dem das Betriebssystem das virtuelle Speichersystem verwenden kann, um vor Speicherproblemen zu schützen, stark eingeschränkt.
* Systemleistung beeinträchtigt: Wenn Sie viel RAM haben, möchten Sie, dass das Betriebssystem es effizient verwaltet. Die Begrenzung des virtuellen Gedächtnisses behindert diesen Prozess.
Wann könnte es * nützlich erscheinen? (Seltene und spezifische Fälle)
Es gibt extrem Nischenszenarien, in denen eine viel kleinere virtuelle Speichergröße * in Betracht gezogen werden könnte, aber sie sind für allgemeine Benutzer nicht spezialisiert und nicht empfohlen:
* Eingebettete Systeme mit Ressourcenbeschränkungen: In sehr ressourcenbezogenen eingebetteten Systemen (z. B. Mikrocontroller), bei denen RAM extrem begrenzt ist und die Programmgröße klein ist, kann es zu einer Auswahl der Komplexität und des Overheads des Betriebssystems führen. Selbst in vielen eingebetteten Systemen ist ein minimales virtuelles Speichersystem häufig von Vorteil.
* Speziales wissenschaftliches Computer (sehr selten): In einigen sehr spezifischen Hochleistungs-Computing-Szenarien, in denen Speicherzugriffsmuster äußerst vorhersehbar und gut optimiert sind und die Anwendung sorgfältig so ausgelegt ist, dass sie vollständig in den RAM passen, kann es * eine theoretische Leistungsverstärkung (sehr gering) geben, indem der Aufwand der virtuellen Speicherübersetzung eliminiert wird. Dies ist jedoch eine sehr fortschrittliche Optimierungstechnik, und die Vorteile sind im Vergleich zu den potenziellen Risiken wahrscheinlich vernachlässigbar.
* Debugging/Testing (vorübergehend): Eine kleinere virtuelle Speichergröße kann * vorübergehend * während des Debuggens oder Tests verwendet werden, um den Speicherdruck zu simulieren und Speicherlecks oder andere Speicherprobleme in einem Programm zu identifizieren. Dies ist keine Konfiguration für den normalen Gebrauch.
Abschließend:
Für fast alle modernen Computersysteme und Anwendungen wird eine virtuelle Speichergröße * zumindest * entspricht der physischen RAM -Größe sehr empfohlen. In den meisten Fällen ist es sogar noch besser, dass es signifikant größer ist (z. B. 1,5 bis 2-fache des physischen RAM), um speicherintensive Aufgaben zu erledigen und außerfeilige Fehler zu verhindern. Die Leistungsvorteile des virtuellen Gedächtnisses überwiegen bei weitem die potenziellen Nachteile in den meisten Situationen. Wenn Sie kein sehr erfahrener Systemadministrator oder ein eingebetteter Systementwickler sind, der an einem hochspezifischen Projekt arbeitet, sollten Sie sich an die Standardeinstellungen für virtuelle Speichereinstellungen Ihres Betriebssystems halten.