Zitat von
dizzy:
Dass heisst Windows geht erstmal fröhlich davon aus, dass es auslager KANN, und zwar zunächst unbegrenzt (jetet global für alle Prozesse), und vergibt zunächst ein und den selben Bereich für mehrere Prozesse. Nutzt einer dieser Prozesse diesen Bereich (oder zum Teil), so wird er den anderen entzogen, und um-gemappt. Und wenn Win jetzt an die Grenze des gesamten Speichers (
RAM+PageFile) stößt, gibbet eine entsprechende Meldung wenn darüber hinaus was passieren soll. Sehe ich das richtig?
Dann würde Win ja bei einer Gesamtspeicher-Größe von unter 2 Gig schon von vorne herein mehr versprechen als überhaupt möglich! Klingt nach echter Politik
Es ist schwer zu erklären. Du musst zwischen virtuellen und real vorhandenen physischen Speicher unterscheiden. Nehmen wir mal zwei Prozesse A und B. Beide haben eine globale Integer Variable deklariert. Die können jetzt im Speicher an der gleichen fiktiven Adresse $FFFF für den jeweiligen Prozess stehen. Und es wird nichts überschrieben und Prozess A liest nicht die Variable von Prozess B und umgekehrt. Beide Prozesse haben keinen Zugriff auf den virtuellen Speicher des jeweiligen anderen Prozesses, ja sie sehen ihn noch nicht mal. Soll jetzt aber die CPU damit arbeiten, muss die Variable im physichen Arbeitsspeicher stehen und da geht das Kopieren von den Seiten los. Nehmen wir weiter an es gibt nur diese zwei Prozesse im ganzen System und ich habe nur ganz wenig Arbeitsspeicher. Nehmen wir an die Variable von Prozess B ist im Arbeitsspeicher. Prozess A bekommt jetzt Rechenzeit zugeteilt. Die Variable von Prozess B wird nicht mehr gebraucht, also wird sie in den PageFile geschrieben und die Variable von Prozess A an die Stelle im Arbeitsspeicher kopiert, wo vorher die Variable von Prozess B stand.