Perché i sistemi operativi x86 (32 bit) non possono utilizzare più di 3,25 GB di memoria RAM e non interi 4 GB? [duplicare]


-1

So che le macchine a 32 bit non possono utilizzare più di 4 GB di RAM dal momento che non possono indirizzare molti indirizzi di memoria.

Tuttavia non capisco perché quasi tutti i sistemi operativi a 32 bit incluso Window 7 non possano utilizzare più di 3,25 GB

2 ^ 32 = 4294967296 bit che è 4 GB di RAM. Sulla mia macchina tuttavia si dice che sono utilizzabili solo 3,25 GB. Perché non è possibile utilizzare il resto di MEMORY?

Non sto chiedendo come può essere fatto. Voglio sapere perché esattamente 3,25 GB. Come viene calcolato questo valore. Da dove proviene ?


"Perché non è possibile utilizzare il resto di MEMORY?" Microsoft ha progettato Windows in questo modo
Ramhound

@Ramhound quella domanda non risponde alla mia domanda. Perché 3,25 GB? Perché non 4 GB? È questa la risposta? Perché microsoft lo vuole in questo modo? Dal momento che quella domanda non è una mia copia, ti prego di rimuovere il downvote che mi hai dato?
yoyo_fun

Non riesco a revocare un voto che non ho lanciato. . Sento ancora che è un duplicato. Ti rendi conto che votare è anonimo per un motivo giusto, è per impedire alle persone di chiamarsi a vicenda, per aver votato che non sono d'accordo con
Ramhound

Il primo duplicato ha numerose risposte che spiegano che le versioni a 32 bit di Windows possono gestire fino a 4 GB di memoria.
Ramhound

Risposte:


1

Una versione client di Windows a 32 bit ha uno spazio di indirizzi fisico di 4 GB. Sarebbe bello se tutto questo spazio potesse essere usato per la RAM, ma non è così. Una porzione di questo spazio indirizzo viene utilizzata per i dispositivi hardware mappati in memoria. La CPU può comunicare con questi dispositivi leggendo o scrivendo nel loro spazio indirizzo proprio come con la RAM. Esistono altri metodi disponibili ma l'hardware mappato in memoria è molto più veloce, importante per dispositivi ad alte prestazioni come i sistemi video. In genere i dispositivi mappati in memoria consumano circa da 0,5 a 1 GB, ma in alcuni casi è più o meno abbronzato.

Non è possibile avere 4 GB di memoria RAM e dispositivi con memoria da 0,5 a 1 GB nello stesso spazio di indirizzi da 4 GB. Semplicemente non andrà bene. Pertanto, qualsiasi spazio utilizzato per i dispositivi hardware non è disponibile per la RAM. Se hai 3 GB o meno di RAM, di solito c'è spazio per gli indirizzi e nessuna RAM viene persa.

Se lo spazio degli indirizzi utilizzato per i dispositivi hardware viene sottratto da 4 GB, rimane disponibile per RAM tra 3 e 3,5. 3,25 GB sono solo tipici e il numero spesso citato.

Suppongo che tutto ciò avrebbe potuto essere fatto in modo diverso, ma ciò avrebbe complicato la progettazione e uno spazio di indirizzamento di 4 GB era enorme al momento. Cambiarlo ora avrebbe gravi problemi di compatibilità. E abbiamo già una soluzione molto migliore nell'usare un sistema operativo a 64 bit. Un sistema operativo a 64 bit ha uno spazio degli indirizzi molto più ampio, quindi c'è molto spazio per tutto.

Il PAE viene spesso proposto come soluzione. Questa è un'impostazione speciale che consente uno spazio di indirizzi fisico molto più ampio. La RAM in conflitto può essere indirizzata sopra i 4 GB dove può essere indirizzata. Questa opzione è supportata dai sistemi operativi server a 32 bit. Il problema era che molti driver di periferica si comportavano molto male in un tale ambiente con risultati molto sfortunati, come arresti anomali o danneggiamento dei dati. Per questo motivo i sistemi client ignorano semplicemente la RAM sopra i 4 GB. Questo è diventato una restrizione della licenza e applicata nel kernel.

Poiché PAE non funziona nei sistemi client e i server a 32 bit sono praticamente obsoleti, è essenzialmente un problema non risolto.


E per essere chiari: "restrizione delle licenze" = "Microsoft ha progettato Windows in quel modo" Probabilmente per la stabilità, la sanità mentale e la retrocompatibilità.
Yorik

@ LMiller7 Grazie mille per questa spiegazione. Ora capisco perché questo problema appare. Grazie.
yoyo_fun

PAE ha funzionato su Windows 7 ...
Ramhound

PAE funziona su edizioni a 32 bit di Windows 7 ma non consente di accedere a più dello stesso limite. XP SP1 era l'ultima versione in cui funzionava.
Jamie Hanrahan
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.