wegus schrieb:
virtuell heißt real auch nur virtuell, deswegen ist Dein virtuelles Problem Real auch nicht real
Was mich auf die Frage bringt.. Was ist, wenn ich im Onlineshop von Real,- einkaufen würde. Wäre das dann ein virtueller Realkauf oder ein realer Realkauf im virtuellen Raum über ein reales Medium zu realen oder virtuellen Zwecken?
Aber zum Thema..
Der virtuelle Speicher hat aus Programmsicht überhaupt nichts mit dem realen Speicher zu tun.
Ein Programm bekommt einen virtuellen Adressraum, in dem es sich austoben kann wie es will. Andere Programme bekommen einen eigenen virtuellen Raum, um zu verhindern, dass die Programme sich ins Gehege kommen.
Jedem Programm steht also eine bestimmte Menge Adressraum zur Verfügung, in dem das Programm Daten ablegen kann. Je nach Programm fordert das eine mehr, das eine weniger an. Safari schnappt sich halt einfach mal 200 MB, weil es meint, die zu brauchen. Irgendwann. Irgendwofür. Und bekommt den Adressraum natürlich auch.
Das ist erstmal das Grundprinzip der Speicherzuteilung für Programme.
Der nächste Schritt ist das Mapping. Wenn ein Programm nun in den virtuellen Speicher schreibt, ist es die Aufgabe der MMU (Memory Management Unit), diese Daten irgendwo im physikalischen Speicher abzulegen. Das kann entweder das RAM sein oder die Festplatte, wenn insgesamt mehr gespeichert werden soll, als RAM da ist. Dabei werden halt weniger benötigte Daten auf Festplatte ausgelagert.
Der virtuelle Speicher ist also der, von dem ein Programm meint, dass es ihn während des Betriebs mal brauchen kann und den es beim Betriebssystem reserviert. Das Programm interessiert sich nämlich nicht, wieviel Speicher physikalisch verbaut ist. Und das soll auch so sein, weil die Speicherverwaltung vom System übernommen wird.
Wo was in welcher Menge hingeschrieben wird, d.h. die Abbildung vom virtuellen auf physikalischen Speicher, wird dann von einer anderen Instanz erledigt (MMU und Betriebssystem).
Dieses Prinzip ist also einfach nur die Trennung von dem, was ein Programm gerne möchte und der tatsächlichen Verwaltung des Speichers durch das Betriebssystem. Wenn dich das Thema interessiert, google mal nach Protected Mode von CPUs. Bei dem Prinzip wird diese Trennung von Ressourcenverwaltung durch das System und der Anforderung von Ressourcen durch Software deutlich.
Bei Windows 98 und früher gab es das Prinzip nur eingeschränkt oder gar nicht. D.h. es gab eine direkte Abbildung von Programmspeicher (virtuell) und physikalischem Speicher. Das hat dann gerne mal dazu geführt, dass Programm A einfach in den Speicher von Programm B geschrieben hat. Im besten Fall hat sich das in einem Bluescreen geäußert.
Insofern ist die Frage durchaus ne gute Frage und die Tatsache, dass das beim Mac alles prima klappt auch nicht grad ein Argument, sich mit der Frage nicht zu befassen.