Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>Was bedeutet "virtueller Speicher" wirklich?

Was bedeutet "virtueller Speicher" wirklich?

Eldorado54622.05.0822:27
Frage mich hier gerade, wie in der Aktivitätsanzeige bei jedem noch so kleinen Prozess ein virtueller Speicherbedarf von über 500MB gebraucht wird.

Wird das alles auf die Harddisk zwischengespeichert?
Wenn ja, ist das nicht enorm viel? Ich komme mit einer groben Schätzung auf etwa 40 GB. Wo soll das denn Platz haben?
0

Kommentare

Agrajag22.05.0822:59
Das ist der Speicher, der dem Prozess theoretisch zur Verfügung steht. Real verbraucht der Prozess allerdings das, was unter "physikalisch" steht. Alle Prozesse können mehr physikalischen Speicher belegen, als im Rechner eingebaut ist. In diesen Fällen, in der Regel aber schon deutlich früher, werden Teile des Hauptspeichers (der Speicher ist in so genannte Seiten/Pages eingeteilt) auf die Platte ausgelagert. In der Regel werden die Pages ausgelagert, auf die am längsten nicht mehr zugegriffen wurde.

Da ist der ganz grobe Plot.
0
Tomac
Tomac23.05.0808:34
Auf meinem MacBook Pro habe ich noch 800 MB freien Speicher auf der HD. Normales arbeiten geht, doch wenn ich mit Aperture arbeite, dann schwinden die 800 MB auf 0 MB. Nach einem Neustart sind dann die 800 MB wieder verfügbar. Virtueller Speicher

PS: Das Arbeiten ist so ziemlich mühsam, in 2 Wochen kann ich die Windows XP partition wieder löschen, dann hab ich wieder Platz *freu*
0
osxnerd23.05.0810:06
Der Begriff "Virtueller Speicher" wird leider in zwei völlig unterschiedlichen Bedeutungen gebraucht.

Im alten Mac OS wurde der Speicher, den das Betriebssystem bei vollem RAM auf Platte ausgelagert hat, als "Virtueller Speicher" bezeichnet. Das ist auch das was Tomac gemeint hat. Diese Bezeichnung ist allerdings irreführend, da mit virtuellem Speicher heutzutage etwas anderes gemeint ist. Den Speicherbereich auf Platte sollte man korrekt Auslagerungsspeicher (auf englisch: swap space) nennen.

Die Aktivitätsanzeige verwendet den Begriff so, wie er bei modernen Prozessoren und Betriebssystemen üblich ist: Der Kern des Prozessors greift heutzutage aus Gründen der Sicherheit und des Abschottens von Programmen gegeneinander nicht mehr "direkt" auf den Speicher zu. Jedes Programm läuft in einem simulierten Speicher, den man virtuellen Speicher nennt. Eine spezielle Hardware-Einheit im Prozessor, die Memory Management Unit, blendet nun in diesen virtuellen Speicher Blöcke des echten RAM-Speichers und Blöcke des Auslagerungsspeichers (siehe oben) ein. Jeder Block wird "Seite" genannt und ist bei Mac OS X 4 KByte groß. Jedes laufende Programm "sieht" nur den virtuellen Speicher. Welche Blöcke gerade wirklich im RAM liegen und welche im Auslagerungsspeicher liegen, merkt das Programm nicht.

Diese Blöcke werden doppelt benutzt. Zum Beispiel muss Mac OS X in jedes laufende Programm Teile der Betriebssystembibliotheken (wie Cocoa, Carbon, etc.) einblenden, sonst könnte das Programm gar nicht laufen. Das sind bereits mehrere 100 MB im virtuellen Adressraum jedes kleinen Programms, was sich für jeden Prozess wiederholt. Diese Blöcke müssen weder RAM noch Auslagerungsspeicher verbrauchen, Mac OS X unterstützt den Zugriff, dass auch Dateien als Teile des virtuellen Speichers angesehen werden können. Diese bleiben also auf Platte liegen und werden nur (blockweise) geladen, wenn sie wirklich gebraucht werden.

Wenn zum Beispiel Safari startet und Apples WebKit/WebCore lädt, um die Web-Funktionen benutzen zu dürfen, werden hierfür 47 MB virtueller Speicher (nämlich die Größe der Datei /System/Library/Frameworks/WebKit.framework/WebCore) abgebucht und der Inhalt der Datei wird in den virtuellen Speicher eingeblendet. RAM-Speicher wird dabei zunächst überhaupt nicht gebraucht. Erst nach und nach werden ein paar KB wirklich geladen, wenn Safari anfängt, die einzelnen Funktionen des WebKit zu nutzen.

Der virtuelle Speicher ist also wirklich nur virtuell und hat nichts aber auch gar nichts mit echten Speicherverbrauch zu tun. Wer bei seinem Rechner den virtuellen Speicher aller Prozesse zusammenaddiert, kann schnell auf Werte von 50 GByte kommen, auch wenn er nur 1 GByte RAM und 64 MB Auslagerungsspeicher hat.
0
Stefan S.
Stefan S.23.05.0812:15
osxnerd
Danke für das gute Journal!
0
Thomas23.05.0813:30
der ausgelagerte Platz auf der Platte nennt sich unter OSX "privater Speicher".
0
Latelio23.05.0813:38
osxnerd

Ja, wirklich ein grosses Dankeschön für diese Erklärungen!
0
Eldorado54623.05.0813:55
Sehr interessant! Vielen Dank für diese Ausführungen.
0
osxnerd23.05.0814:37
Thomas
der ausgelagerte Platz auf der Platte nennt sich unter OSX &x22;privater Speicher&x22;.

Nein, das ist völlig falsch. Privater Speicher ist derjenige Anteil des virtuellen Speichers, den sich ein Prozess nicht mit anderen teilt und der auch nicht durch virtuelles Einblenden von Datei-Inhalten belegt wird.

Im Programm Aktivitätsmonitor ist mit "privater Speicher" noch etwas spezielleres gemeint, nämlich der Anteil der Speicherblöcke, die gerade wirklich im RAM liegen. Das könnte man also eher als das genaue Gegenteil des Auslagerungsspeichers bezeichnen.
0
Thomas23.05.0815:28
Du meinst damit also phys - privat = tatsächlich ausgelagerte Teil?

(mit priv. Speicher, habe ich auch die Bezeichnung im Aktivitätsmonitor gemeint).
0
Garp200023.05.0815:46
Privater Speicher / "wired" ist der Speicher, der NICHT ausgelagert werden kann. Dort liegen z.B. Funktionen für I/O oder Interrupts.
„Star of CCTV“
0
Garp200023.05.0816:46
OK, sorry im Apple Tool heisst "wired" "Reserviert".
„Star of CCTV“
0
twilight
twilight23.05.0817:00
Mal der Stand lt. Aktivitätsanzeige meines iMac hier @work:

Physikalischer Speicher 2GB
Virtueller Speicher 62 GB
Verwendeter Swap 1GB => tatsächlich auf der Festplatte ausgelagert

Das Bild zeigt einen Terminalausschnitt der VirtualMemory-Dateien, also den Platz, der auf der Festplatte tatsächlich zur Auslagerung reserviert ist.
Leicht zu erkennen: die ersten beiden SwapFiles sind 64MB groß, von da an verdoppelt sich jedesmal der reservierte Platz.
Das aktuell nur 1GB genutzt wird, aber 2GB auf der Platte durch die swapfiles belegt sind liegt einfach daran, dass ich den iMac seit ca. 20 Tagen nicht neu gestartet habe.

Peter
„Auch dienstlich tu ich mir garantiert kein Windows an!“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.