2017-08-03 4 views

Antwort

3

TL; DR: Ja, virtueller Speicher kann ohne Paging existieren.


Eine sehr einfache Suche hätte this produziert.

Virtueller Speicher ist eine Speicherverwaltungstechnik, die Speicheradressen, die von einem Programm verwendet werden, virtuelle Adressen genannt, in physikalischen Adressen im Computerspeicher abbildet.

Diese Adressen müssen nicht von fester Größe sein.


Paging:

ist ein Schema, Speicherverwaltung, mit dem ein Computer speichert und ruft Daten aus dem Sekundärspeicher für die Verwendung in den Hauptspeicher. In diesem Schema ruft das Betriebssystem Daten aus dem sekundären Speicher in Blöcken derselben Größe ab, die als Seiten bezeichnet werden.

+0

Ich kenne die Konzepte. Aber ich wollte wissen, ob sie getrennt existieren können. – helloansuman

+0

@helloansuman Paging kann ohne virtuellen Speicher nicht existieren, aber virtueller Speicher kann ohne Paging existieren. –

+0

Können Sie bitte erklären, wie ist das möglich? @ Tony – helloansuman

2

Die Antwort auf Ihre Frage hängt davon ab, wie Sie "Virtueller Speicher" definieren. Wenn Sie es nur als "die Adressen, die die Anwendung sieht" definieren, kann yes virtueller Speicher ohne Paging existieren.

Vor dem Paging verwendeten Systeme eine Segmentierung, um Benutzerprozesse zu isolieren. Um es in einfachen Worten zu sagen: Jeder Prozess hat sein eigenes Segment. Alle Adressen, die es "sieht", sind nur Offsets innerhalb des Segments. Die Hardware fügt die Segmentbasis implizit zu der von der Anwendung angeforderten Adresse hinzu, um die physikalischen Adressen zu erhalten. Genau wie die Seitentabelle können die Segmentbasen nur durch den Kernel modifiziert werden, und sie können effektiv den Speicher für Prozesse isolieren und gleichzeitig Spielraum für die gemeinsame Nutzung von Teilen des Speichers zwischen Prozessen schaffen.

Segmente haben auch Grenzen, die vor jedem Zugriff überprüft werden, um sicherzustellen, dass der Benutzer keinen sehr großen Offset verwendet und in andere Prozesse übergeht.

Die Segmentierungsunterstützung wurde von Intel X86_64-Architekturen entfernt, in denen die Segmentregister existieren, aber immer auf 0 gesetzt sind. Nur die beiden Segmentregister %fs und %gs existieren weiterhin. Aber die Grenzwertüberprüfungen werden von der Hardware nicht durchgeführt. Diese Segmente werden jetzt vom Betriebssystem für lokalen Threadspeicher verwendet.

+0

Danke. Diese Antwort hilft. – helloansuman

Verwandte Themen