Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Large-Address-Aware flag (https://www.delphipraxis.net/164883-large-address-aware-flag.html)

himitsu 5. Dez 2011 22:52

AW: Large-Address-Aware flag
 
Windows 7 Starter hat eine sehr nette Einschränkung und kann maximal 1 GB an physischem RAM ansprechen (Cracks, Hacks und Co. ausgeschlossen)

so viel zum eng

BUG 5. Dez 2011 23:51

AW: Large-Address-Aware flag
 
Zitat:

Zitat von himitsu (Beitrag 1139596)
Windows 7 Starter hat eine sehr nette Einschränkung und kann maximal 1 GB an physischem RAM ansprechen (Cracks, Hacks und Co. ausgeschlossen)

Imho verwechselst du immer noch den Mangel an Adressen im Adressraum mit Mangel an echt verfügbaren Speicher.

Natürlich kommt Windows ins Swappen, wenn zu wenig physischer Speicher da ist (oder es nur 1GB davon nutzt).
Wenn aber nicht genug Adressen da sind, kann es andere Probleme geben als nur ein ständig mit der Ein-/Auslagerung beschäftigter Rechner.

Du sagst quasi, das du nicht genug Zimmer hast, um 200 Leute gleichzeitig bei dir wohnen zu lassen. Kein Problem, immer wenn jemand ein Zimmer braucht, schmeißt du einen anderen raus.
Windows hat aber ein anderes Problem, wenn du ihm nur ein Gigabyte Adressraum zugestehst: es kennt nicht genug Namen, um all die Leute unterscheiden zu können.

CCRDude 6. Dez 2011 07:57

AW: Large-Address-Aware flag
 
Zitat:

Zitat von Luckie (Beitrag 1139553)
Bitte nachlesen: http://msdn.microsoft.com/de-de/library/ms189334.aspx
Und wirf auch mal einen Blick auf die Grafik. Sie zeigt genau das, was ich erklärt habe.

Zitat:

Alle Betriebssystemversionen ab Windows 2000 Server, einschließlich Windows Server 2003, besitzen einen Parameter in Boot.ini, mit dem Anwendungen Zugriff auf 3 GB Prozessadressraum gewährt wird. Der Adressraum für den Kernelmodus wird dann auf 1 GB beschränkt.

Ich habe hier mal den wichtigen und von Dir vermutlich mißverstandenen Punkt unterstrichen.

Der "abgetrennte" Bereich ist Kernel-Mode-Speicher! Das hat erstmal nichts direkt mit "Windows" oder "System-DLLs" zu tun. Die allermeisten Windows-DLLs laufen nicht im Kernel, sondern im user mode. Treiber etwa brauchen Kernel-Speicher. Graphik in der Wikipedia dazu.

Zitat:

Zitat von Bernhard Geyer (Beitrag 1139584)
Und? Schon mal ein Windows gesehen das versucht annähernd 1 GB an System-DLLs in einem 32-Bit Prozess zu laden?

Da Du mit 32-Bit-Prozess vermutlich eine normale Anwendung meinst - darein lädt man höchstens normale Win32-Subsystem-DLLs, und ist damit zu 100% im Usermode. Natürlich greifen die letztendlich auch wieder auf untere Schichten zu, so daß irgendwo da auch Kernelspeicher verwendet wird. Aber das ist eher nutzdatenabhängig und nicht von der Größe der DLLs.

"Glücklicherweise" arbeitet Windows nur mit Ring 0 (kernel mode) und 3 (user mode), ich will gar nicht wissen wieviel Verwechslungsmöglichkeiten es gäbe, wenn 1 und 2 auch noch genutzt wären :-D

Luckie 6. Dez 2011 08:16

AW: Large-Address-Aware flag
 
Gut mit den System-DLls war ich dann nicht ganz präzise. Aber wenn der Kernel nicht zu Windows gehört, zu was gehört er denn dann? ;)

Bernhard Geyer 6. Dez 2011 08:33

AW: Large-Address-Aware flag
 
Zitat:

Zitat von CCRDude (Beitrag 1139627)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1139584)
Und? Schon mal ein Windows gesehen das versucht annähernd 1 GB an System-DLLs in einem 32-Bit Prozess zu laden?

Da Du mit 32-Bit-Prozess vermutlich eine normale Anwendung meinst - darein lädt man höchstens normale Win32-Subsystem-DLLs, und ist damit zu 100% im Usermode. Natürlich greifen die letztendlich auch wieder auf untere Schichten zu, so daß irgendwo da auch Kernelspeicher verwendet wird. Aber das ist eher nutzdatenabhängig und nicht von der Größe der DLLs.

"Glücklicherweise" arbeitet Windows nur mit Ring 0 (kernel mode) und 3 (user mode), ich will gar nicht wissen wieviel Verwechslungsmöglichkeiten es gäbe, wenn 1 und 2 auch noch genutzt wären :-D

Die Ring0-Anwendungen werden auch mit der entsprechenden Option mehr als 1GB Ram im eigenen Prozess verwenden können. Oder kennst du einen Ring0-Prozess/Dienst/... oder was auch immer der auch nur annähernd 1GB an Ram benötigen würde?

Bernhard Geyer 6. Dez 2011 08:36

AW: Large-Address-Aware flag
 
Zitat:

Zitat von Luckie (Beitrag 1139636)
Gut mit den System-DLls war ich dann nicht ganz präzise. Aber wenn der Kernel nicht zu Windows gehört, zu was gehört er denn dann? ;)

Der Kernel wird aber nicht nur aus einem Prozess bestehen der mit dieser Option nur 1 GB verwenden darf. Es sind wohl eher viele kleine Apps die nur in Ausnahmefall mehr als 100 MB Ram benötigen (Ganz im Gegensatz zu den "fetten" Firefox, Outlook, Delphi, ...)

Luckie 6. Dez 2011 20:34

AW: Large-Address-Aware flag
 
Zitat:

Zitat von himitsu (Beitrag 1139596)
Windows 7 Starter hat eine sehr nette Einschränkung und kann maximal 1 GB an physischem RAM ansprechen (Cracks, Hacks und Co. ausgeschlossen)

woher hast du diese Information? Mein Vater hat ein Netbook mit Windows 7 Starter. Und er hat es gerade auf 2GB aufgerüstet und Windows zeigt auch 2GB Arbeitsspeicher an, kann es also verarbeiten.

BUG 6. Dez 2011 21:13

AW: Large-Address-Aware flag
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1139644)
Der Kernel wird aber nicht nur aus einem Prozess bestehen der mit dieser Option nur 1 GB verwenden darf. Es sind wohl eher viele kleine Apps die nur in Ausnahmefall mehr als 100 MB Ram benötigen

Für viele Sache gibt keine eigenen Prozesse. Deine "Apps" samt Daten müssen im Zweifelsfall alle in jeden Adressraum eingeblendet werden, um eben adressierbar zu sein, falls der Prozess (absichtlich oder nicht) in den Kern wechselt.

Stevie 6. Dez 2011 21:19

AW: Large-Address-Aware flag
 
Zitat:

Zitat von Luckie (Beitrag 1139856)
Zitat:

Zitat von himitsu (Beitrag 1139596)
Windows 7 Starter hat eine sehr nette Einschränkung und kann maximal 1 GB an physischem RAM ansprechen (Cracks, Hacks und Co. ausgeschlossen)

woher hast du diese Information? Mein Vater hat ein Netbook mit Windows 7 Starter. Und er hat es gerade auf 2GB aufgerüstet und Windows zeigt auch 2GB Arbeitsspeicher an, kann es also verarbeiten.

Ausgedacht hat er sich das, Limit der Starter sind 2 GB

Luckie 6. Dez 2011 21:31

AW: Large-Address-Aware flag
 
Also ist das Limit 2GB und nicht eins.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:06 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz