Einzelnen Beitrag anzeigen

Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Unerklärbare Fehlermeldung

  Alt 25. Feb 2004, 02:43
Zitat von Luckie:
2 GB Adressraum, nicht mehr und nicht weniger. Und zwar spricht man von virtuellen Speicher. Der erst auf real vorhandenen physischen "gemappt" wird, wenn drauf zugegriffen wird. Dann tritt folgender Mechanismus in Kraft:
Und zwar geht das seitenweise. Unter Windows 32-Bit Intel hat eine Seite 4 KB im Speicher. Ist jetzt noch was frei wird einfach gemappt. Ist nichts mehr frei, kuckt Windows welche Seiten nicht mehr gebraucht werden und lagert diese in den PageFile auf der Festplatte aus. Unterscheidet sich die Seite im RAM von der im PageFile wird geschrieben ist das nicht der Fall wird einfach die benötigte Seite in den RAM geschrieben. Ist eine Seite nicht im RAM verfügbar und muss nachgeladen werden, spricht man von Seitenfehlern.
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

Zitat von Luckie:
Die Größe eines Integers wird nicht von Delphi, sondern von der Rechnerarchitektur bestimmt. Unter 64-Bit hat ein Integer eine größe von 64-Bit.
... des is klar *g*

Zitat von Luckie:
Sag ich doch, 2 GB kann ich mit einem 32-Bit Integer ansprechen. Rein theoretsich sogar 4 GB nur was will ich da? Windows stellt mir doch effektiv eh nur 2 GB zur Verfügung.
Stimmt, so hab ich das jetzt nicht gesehen. Wenn ich 4 Gig addressieren kann, kann ich latürnich auch 2 Gig addressieren. Aber dann ist die Größe eines Integers eher sekundär verantwortlich. Windows könnte ja auch sagen: Ich brauche 3 Gig, die Prozesse bekommen halt nur einen.


Danke dir für das kleine Interludium!

\edit: quote-tags vermurkst...

\edit2: An dieser Stelle mal ein Danke u.A. für LuckieDips! Bin ein viel-bildschirm-umschalter, und das verduselt mir immer meine Icons. JETZT NICHT MEHR! *drüx*
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat