Ich habe meine Notizen auf 'Virtueller Speicher' überprüft und die Definition in meinem Lehrbuch lautet:
Prozess zum Zuweisen eines Abschnitts des Sekundärspeichers als Teil des Hauptspeichers
Wo, wie Wikipedia sagt:
Virtueller Speicher ist eine Computersystemtechnik, die einem Anwendungsprogramm den Eindruck vermittelt, einen zusammenhängenden Arbeitsspeicher (einen Adressraum) zu haben.
und (Wikipedia sagt auch)
Beachten Sie, dass "virtueller Speicher" mehr ist als nur "Festplattenspeicher zum Erweitern der physischen Speichergröße verwenden".
Kann mir jemand eine Klarstellung geben, welche richtig ist?
virtual-memory
Yacoby
quelle
quelle
Antworten:
Der virtuelle Speicher ist eine Abstraktionsschicht, die jedem Prozess bereitgestellt wird. Der Computer verfügt beispielsweise über 2 GB physischen RAM, der von 0 bis 2 GB adressiert ist. Ein Prozess sieht möglicherweise einen Adressraum von 4 GB, den er vollständig für sich hat. Die Zuordnung von virtuellen Adressen zu physischen Adressen wird von einer Speicherverwaltungseinheit vorgenommen, die vom Betriebssystem verwaltet wird. In der Regel wird dies auf 4 KB großen "Seiten" durchgeführt.
Dies bietet mehrere Funktionen:
Ihr Lehrbuch definiert den virtuellen Speicher (falsch) als nur # 3.
Auch ohne Auslagerung müssen Sie sich insbesondere des virtuellen Speichers bewusst sein, wenn Sie einen Gerätetreiber für ein Gerät schreiben, das DMA (Direct Memory Access) ausführt. Ihr Treibercode läuft auf der CPU, dh die Speicherzugriffe erfolgen über die MMU (virtuell). Das Gerät durchläuft wahrscheinlich nicht die MMU, daher werden unformatierte physikalische Adressen angezeigt . Als Fahrerautor müssen Sie also sicherstellen, dass:
quelle
Ich werde versuchen, langsam anzufangen und dann alles für Sie zusammenzustellen. Es ist so:
Virtueller Speicher bezieht sich, wie allgemein verwendet, auf "Paging". Wie der Name schon sagt, ist Paging wie ein menschlicher Notizblock.
Wenn Sie einfache Summen ausarbeiten oder einfache Informationen lernen, tun Sie dies alles in Ihrem Kopf: Sie laden einfach alle Informationen auf, verarbeiten sie und erhalten die Antwort. Dies ist wie ein Computer, der Dateien von der Festplatte lädt - er lädt die Programme oder Bilder oder andere Informationen, die er benötigt, in seinen "realen Speicher" (oder "physischen Speicher") und bearbeitet sie mit seinem "Gehirn" ( sein Prozessor).
Wenn Sie jedoch komplexe Informationen lernen oder mit komplexen Summen arbeiten, können Sie möglicherweise nicht alles auf einmal in Ihren Kopf integrieren. Sie werden verwirrt, fangen an, langsamer zu werden, behalten nicht alles auf einmal bei und müssen etwas vergessen, um sich an etwas anderes zu erinnern.
Die menschliche Lösung besteht darin, einen Notizblock zu verwenden. Wir notieren auf den Seiten alle Dinge, an die wir uns nicht auf einmal erinnern können, beziehen uns aber auf sie, während wir die Summen machen. Wir sind möglicherweise nicht in der Lage, uns eine riesige Liste von Verkaufszahlen für den Monat zu merken, aber wir können uns die Seiten ansehen, die Informationen Stück für Stück abrufen und jedes Stück verarbeiten. Dies ist so, als würde der Computer seinen Speicher "paginieren" - Seiten voller Informationen werden geschrieben und zur späteren Bezugnahme in den "virtuellen Speicher" verschoben, und es wird erkannt, dass eine Seite erforderlich ist, und diese Seite wird aus dem virtuellen Speicher in den realen Speicher zurückgeladen. Unter Linux und Unix wird der Ort, an dem diese Seiten gespeichert werden, wörtlich "Auslagerungsdatei" genannt, und die Seiten mit Daten im Speicher werden wörtlich "Seiten" genannt. Unterschiedliche Systeme haben unterschiedliche Namen für diese Dinge, aber das allgemeine Konzept ist weitgehend dasselbe.
Paging ist also wirklich sehr einfach. Alle Informationsseiten passen nicht in den Speicher, daher werden einige Seiten auf die Festplatte geschrieben und später erneut geladen.
Jetzt wird es noch komplizierter, wenn moderne Systeme über Speicherzuordnung und Speicherschutz verfügen, die normalerweise von demselben Hardwaresystem im Computer verwaltet werden: der Speicherverwaltungseinheit oder MMU.
In einem (modernen) Multitasking-Computer, auf dem viele Programme gleichzeitig ausgeführt werden können und der über einen Speicherschutz verfügt, ist jedes Programm normalerweise von anderen Programmen getrennt, die auf demselben System ausgeführt werden. Auf diese Weise kann ein Programm ein anderes Programm nicht einfach durch Zugriff auf seinen Speicher ändern - die MMU trennt den Adressraum eines Programms physisch von dem anderer Programme. Mit anderen Worten, Benutzerprogramme sehen weder die Programme anderer Benutzer noch andere Programme. Sie sehen kein "reales Gedächtnis" - sie sehen ihr eigenes "virtuelles Gedächtnis".
Dieses Konzept der Speicherisolation und das Konzept der Auslagerungsdatei sind zwei konzeptionell unterschiedliche Dinge, weshalb Sie wahrscheinlich verwirrt sind. Der Schlüssel ist jedoch, dass beide mit der MMU arbeiten - der Speicherverwaltungseinheit, die den Speicher in Seiten aufteilt und Seiten einem virtuellen Adressraum zuordnet.
Wenn also ein Programm bei einer bestimmten "Speicheradresse" nach dem Speicher fragt, geschieht in Wirklichkeit, dass die Speicherseiten für dieses Programm und ihre entsprechenden Adressen (der "Adressraum" des Programms) nachgeschlagen werden und die entsprechende Seite Dieser Speicherblock wurde gefunden. Diese Seite kann entweder irgendwo in den realen Speicher geladen werden. In diesem Fall erhält das Programm Zugriff, oder sie kann auf eine Festplatte ausgelagert werden. Wenn es ausgelagert wird, löst es einen "Seitenfehler" aus - auf die Festplatte wird zugegriffen und die Seite wird in den Speicher geladen. Das Programm funktioniert also auch dann, wenn nicht genügend Arbeitsspeicher vorhanden ist, aber es wird LANGSAM ausgeführt, wenn die Festplatte für einen normalerweise sehr schnellen Speicherzugriff verwendet werden muss.
Wenn nicht genügend Speicherplatz vorhanden ist, um diese Seite in den Speicher zu laden, liegt ein Problem vor. In diesem Fall muss eine ANDERE Seite, die sich bereits im Speicher befindet, auf die Festplatte "ausgelagert" werden, damit die Seite des ersten Programms geladen werden kann. Sie können aber auch Seiten aus demselben Programm sein. Sie sehen dies manchmal in Grafikprogrammen, zum Beispiel auf stark ausgelasteten Systemen, wenn ein Teil des Bildes langsam geladen und schnell gezeichnet wird, der nächste Teil ebenso langsam geladen und schnell gezeichnet wird und wenn Sie wieder mit dem ersten arbeiten Teil, es ist langsam wieder. Das liegt daran, dass sie geladen werden, um bearbeitet zu werden, und dann wieder ausgetauscht werden, damit an etwas anderem gearbeitet werden kann. Offensichtlich ist dies eine sehr langsame Arbeitsweise, und was Sie wirklich brauchen, ist mehr ECHTES Gedächtnis.
quelle
Ich weiß, es ist zu spät ... aber ich fand es trotzdem nützlich.
quelle
Nun, wenn wir das Wort virtuell verstehen, können wir meiner Meinung nach verstehen, wie es sich auf das Gedächtnis bezieht.
"Virtuell" im Sinne von Dictionary.com: "Vorübergehend simuliert oder erweitert durch Computersoftware: eine virtuelle Festplatte im RAM; virtueller Speicher auf einer Festplatte."
Im Fall des virtuellen Speichers simuliert das System den Systemspeicher durch Verwendung langsamerer Speicherressourcen (z. B. Festplatte, USB-Stick usw.). Wenn zusätzlicher Speicher benötigt wird, tauscht das System Daten im Systemspeicher aus, die nicht auf der Festplatte benötigt werden Laufwerk oder Ressource, die Sie eingerichtet haben. Dadurch wird Systemspeicher freigegeben, sodass Ihre Anwendung die von ihr ausgeführte Aufgabe fortsetzen kann.
Das Auslagern ist ein kontinuierlicher Prozess. Wenn Sie also Ihren Speicher aufrüsten, sollten Sie eine Leistungsverbesserung feststellen, da das System nicht so oft auf langsameren Speicher auslagern muss.
quelle
Virtueller Speicher ist eine Funktion eines Betriebssystems (OS), mit der ein Computer Engpässe im physischen Speicher ausgleichen kann, indem vorübergehend Datenseiten aus dem Arbeitsspeicher (RAM) in den Plattenspeicher übertragen werden.
Das heißt, es ist wie ein Spiegel oder ein Beispielspeicher, der in einer virtuellen Maschine oder einer virtuellen Box verwendet wird, um Betriebssysteme zu testen, ohne den Computer zu formatieren.
quelle
Der virtuelle Speicher ist ein Block Ihrer Festplatte, den das System zusätzlich zum physischen RAM als Auslagerungsdatei verwendet.
Es wird schwierig und manchmal auch langsam, da Windows diesen Teil Ihrer Festplatte NICHT defragmentiert.
Die 2 besten Tipps, die ich anbieten kann: 1) Virt Mem sollte auf das 1,5-fache Ihres physischen Speichers eingestellt sein. Ex. 2 GB RAM = 3070 MB virt. 2) Schalten Sie beim Defragmentieren die Auslagerungsdatei aus. Defragmentieren Sie 2x und stellen Sie die ursprüngliche Nummer wieder her. Dies ergibt eine saubere Scheibe des Laufwerks und erhöht die Geschwindigkeit der Auslagerungsdatei.
quelle