Was ist der Sinn beim Laden eines Programms in den Arbeitsspeicher, wenn der virtuelle Speicher es gerade wieder auf die Festplatte legt?

1716
Celeritas

Nachdem ich diese Frage zum virtuellen Speicher gelesen hatte, wurde ich dazu inspiriert zu fragen: Es scheint, als würde ein Kreis durchlaufen, wenn ein Programm ausgeführt wird. Es wird von der Festplatte in den Speicher geladen, aber dann ist nicht genügend Speicherplatz vorhanden, sodass es wieder auf die Festplatte geladen werden kann die Seitendatei). Müssen Computer zunächst 100% eines Programms in den Speicher laden? Ich erinnere mich, etwas über etwas gelernt zu haben, das jedem Prozess die Wahrnehmung gibt, dass er alleine im Adressraum ausgeführt wird, sodass er an der ersten Adresse beginnen kann. Ist dies der Hauptgrund, um Speicher zu virtualisieren, oder hat dies nichts damit zu tun?

1
Some programs can choose what to do here (to use RAM or Virtual RAM etc). However, As a *general* rule, Virtual Memory is used when you've run out of RAM. Dave vor 11 Jahren 3
Der obige Kommentar ist Ihre Antwort. schlicht und einfach. Lorenzo Von Matterhorn vor 11 Jahren 0

2 Antworten auf die Frage

1
barlop

Grund ist Geschwindigkeit. Während des Ablaufs kann auch ein Prozess wie k-meleon wachsen. Oder erzeugen Sie neue Prozesse, während diese wie chrome.exe ausgeführt wird. Der Cache-Speicher ist schneller als der Arbeitsspeicher, der schneller ist als die Festplatte.

So werden die Dinge in den Cache gestellt, wo der Cache verfügbar ist. Ideal ist, wenn die CPU Dinge im Cache ausführt. Zweitens, wenn es Dinge im RAM ausführt.

Die CPU verarbeitet niemals Daten auf der Festplatte, sie befasst sich nicht mit Daten auf der Festplatte, sondern nur mit RAM-Speicherplätzen oder ohne Zweifel mit Cache-Speicherplätzen. Oder Standorte, die auf Geräten lesen / schreiben.

Es ist nicht so, dass alles, was Sie ausführen möchten, auf die Festplatte und dann wieder in den Arbeitsspeicher ausgelagert wird. Nur Dinge, die derzeit nicht verwendet werden und die wahrscheinlich nicht in Kürze verwendet werden, werden beim Austauschen der Dinge bevorzugt, um den RAM für Dinge freizugeben, die mehr verwendet werden.

Webbrowser haben auch einen Cache, einen Festplatten-Cache! Sie speichern die Dinge lokal auf der Festplatte und holen sie nicht online ab. Es gibt Web-Proxies, die Sie lokal ausführen können, um eine Website lokal zu speichern. Wenn sie sich online ändert, werden sie abgerufen. Dadurch können Sie viel schneller browsen. (Ich denke jedoch, dass Sie auf das Problem stoßen können, dass eine Website nicht ordnungsgemäß angibt, dass eine Änderung vorgenommen wurde, und Sie beim Laden einer alten Kopie aus dem lokalen Festplattencache stecken bleiben.) Die Idee ist jedoch, dass sie schneller ist. In dieser Situation ist der schnellere Bereich die lokale Festplatte und der langsamere Bereich der Remote- / Online-Bereich.

Sie führen diese Art des Austauschs im Leben aus, mit Dingen, die Sie in Ihrer Nähe benötigen, und Dingen, die Sie nicht zur Aufbewahrung benötigen. Sie legen nicht alles in den Stauraum / in die Garage und argumentieren, dass viel Platz im Stauraum / in der Garage ist. Es wäre zu langsam.

0
X Tian
  1. Die Organisation auf der Festplatte kann (fast sicher) unterschiedlich sein, so dass die Seiten- / Auslagerungsdateipartition für das Laden von Seiten des virtuellen Speichers optimiert ist, während Ihr tägliches Dateisystem hinsichtlich seiner besonderen Eigenschaften optimiert wird, z Platz".
  2. Außerdem ist Ihre ausführbare Datei nicht vollständig lauffähig, während relative Datenzeiger beim Laden an den virtuellen Adressraum angepasst werden. Sobald dies beim Laden geschehen ist, sind alle Elemente bereit, um ein- und auszublenden.
  3. Ihr Programm kann auf der Festplatte winzig sein, und als erstes müssen Sie einen großen Speicherplatz für etwas reservieren. Dies kann in Swap ausgelagert werden, um später in der Programmausführung verwendet zu werden.

Zusammenfassend ist es in der Regel schneller, so zu arbeiten, wie es funktioniert.