Client con Sistema Operativo a 32 bit e 4 GB di RAM

Nel post Server con processori a 32 bit con più di 4GB di RAM avevo analizzato come è possibile gestire al meglio 4GB di RAM su Server con processori a 32 bit o che hanno installato Sistemi operativi a 32 bit.

In questo post riporto invece le mie esperienze sulla gestione di 4 GB di memoria su client a 32 bit o che hanno installato Windows XP a 32 bit.

Come si può leggere dai seguenteThe RAM reported by the System Properties dialog box and the System Information tool is less than you expect in Windows Vista or in Windows XP Service Pack 2 a partire sa Windows XP SP2 vi è un comportamento by design che impedisce di vedere tutta la memoria:

In Windows Vista, or after you upgrade to Windows XP Service Pack 2 (SP2), the memory that is reported in the System Properties dialog box or by the System Information tool (Msinfo32.exe) has changed. This symptom occurs if the following conditions are true:

    • The computer has 4 or more gigabytes (GB) of RAM.
    • The computer is using Physical Address Extension (PAE) mode.

This issue occurs because of a design change in Windows XP SP2 that is also included in Windows Vista. The changes were made to PAE mode behavior to improve driver compatibility.

To reduce driver compatibility issues, Windows Vista and Windows XP Service Pack 2 include hardware abstraction layer (HAL) changes that mimic the 32-bit HAL DMA behavior. The modified HAL grants unlimited map registers when the computer is running in PAE mode. Additionally, the kernel memory manager ignores any physical address that is more than 4 GB. Any system RAM that is more than the 4 GB barrier would be made unaddressable by Windows and be unusable in the system. By limiting the address space to 4 GB, devices with 32-bit DMA bus master capability will not see a transaction with an address that is more than the 4 GB barrier. Because these changes remove the need to double-buffer the transactions, they avoid a class of bugs in some drivers that is related to the correct implementation of double buffering support.

In effetti come descritto nel mio caso avviando msinfo32 il risultato era:

Memoria fisica totale 4.100,00 MB 
Memoria fisica disponibile 3,05 GB 
Memoria virtuale totale 2,00 GB 
Memoria virtuale disponibile 1,96 GB

Per vedere più memoria (circa 3.87 GB) è possibile abilitare nel boot.ini l’ozione /pae (se l’harware la supporta), ma questo può avere delle implicazioni negative:

PAE mode-induced driver compatibility issues
Driver compatibility issues with Data Execution Prevention (DEP) are typically PAE mode-induced compatibility issues.
Note PAE is only required on computers that have processors that support hardware-enforced DEP.

Infatti con l’opzione PAE attivata su un computer in cui era attivo DEP Virtual CD-ROM Control Panel for Windows XP non funziona correttamente.

In estrema sintesi la limitazione avviene a causa del mapping di alcune periferiche che, come nel caso delle schede video, possono utilizzare fino a 512 MB di RAM.

Per ulteriori informazioni si vedano: