Limite di 2 GB per i sistemi operativi a 32 bit


8

Il limite di 2 GB per i sistemi operativi a 32 bit significa che ogni processo può accedere solo a 2 GB di memoria o che tutti i processi insieme possono utilizzare solo 2 GB di memoria fisica in totale?

Quindi, i 2 GB sono riservati al limite del kernel della quantità totale che tutti i processi insieme possono usare?


Nota che Fabian si riferisce solo alla memoria fisica, non al file di paging.
Arda Xi

Si riferisce anche solo a Windows, non ai sistemi operativi in ​​generale.
Arda Xi,

Potrebbe chiederlo, ma non esiste una relazione del genere. Ogni processo può accedere a 2 GB virtuali. Una parte di questo sarà nella RAM ("residente"). Nelle versioni client a 32 bit di Windows il totale della memoria residente di tutti i processi più la memoria residente del sistema operativo non può superare i 4 GB. Non vi è alcuna suddivisione di 2 GB nell'allocazione della memoria fisica.
Jamie Hanrahan,

La risposta accettata in questo post fornisce informazioni complete - stackoverflow.com/questions/490520/…
RBT

Risposte:


4

Esistono molte idee sbagliate sul limite di memoria nei sistemi operativi Windows a 32 bit.

Prima di tutto, quando dico RAM, questo include ogni tipo di RAM. Quindi non solo regolare, ma anche la tua RAM video.

La quantità massima disponibile di RAM per processo per un sistema operativo a 32 bit è di 2 GB. Se si dispone di un sistema operativo a 64 bit, un processo a 32 bit può allocare fino a 4 GB.

Inoltre, l'intero sistema operativo può indirizzare solo 4 GB per ogni processo combinato, mentre i sistemi operativi a 64 bit possono allocare 8 TB.

È anche interessante notare che questo limite si aggiunge al pool di paging. Ciò significa che un sistema operativo a 32 bit non può utilizzare più di 2 GB in totale, il che significa 6 GB per tutte le applicazioni inclusa la memoria virtuale. Ovviamente, questo non ha nulla a che fare con la RAM, perché gli altri 2 GB verrebbero memorizzati nel file di paging, limitato alla velocità del tuo disco rigido.

Per ulteriori informazioni, consultare Limiti di memoria per le versioni di Windows .

Nota: questo è solo per applicazioni. Un sistema operativo Windows a 32 bit può allocare fino a 4 GB in totale, ma 2 GB di questo sono allocati solo per l'uso del sistema, lasciando solo 2 GB per le applicazioni da utilizzare. In alcuni casi (in particolare i SO più recenti) questo è diviso in 3 GB per le applicazioni e 1 GB per il kernel.

Ho discusso di Windows solo perché quello è il contesto in cui si intendeva la domanda. Non ho familiarità con i limiti di altri sistemi operativi.


2
questa risposta non è completa - non include il concetto di "spazio degli indirizzi" oltre a dire che è inclusa la memoria video e il fatto che lo spazio degli indirizzi nei sistemi operativi a 32 bit è in realtà limitato a 4 GB senza estensioni, non a 2 GB (tu può persino dire che una copia a 32 bit di XP si avvia con 3 GB di RAM)
lunixbochs

1
La domanda non riguardava lo spazio degli indirizzi. Potrei annoiarvi discutendo del modo in cui viene indirizzata la memoria e del limite di numeri interi a 32 bit, ma non è questo il problema, quindi sembra inutilmente complesso. E sì, è possibile utilizzare l'opzione / 3GB. Questa domanda non lo include.
Arda Xi

1
Il limite di memoria di 4 GB si applica solo alla memoria fisica su architettura x86 standard a 32 bit. La memoria virtuale è diversa e un sistema operativo a 32 bit può utilizzare molto più di 4 GB di memoria (totale non per processo) se utilizza un file di paging o una partizione di swap. La velocità del disco rigido non ha alcuna influenza sulla dimensione del file di pagina disponibile o sullo spazio di scambio, se il disco rigido ha spazio, di quanto può fare pagina o scambiare. Incide solo sulle prestazioni di paginazione / scambio.

1
Oh, ho dimenticato di menzionare, il ram video non è un fattore, a meno che non sia ram video integrato che condivide il ram principale, ma anche in questo caso si sottrae dal ram fisico disponibile. Non influisce sulla memoria virtuale disponibile. Le schede video dedicate hanno i propri processori e memoria che non hanno alcun fattore nella memoria disponibile del sistema.

@Spooky Non del tutto vero. Se guarderai il mio link, vedrai che il pool di paging è limitato dallo spazio di indirizzi virtuale in modalità kernel che è di 2 GB. Ciò significa circa 6 GB in totale.
Arda Xi

0

Se l'OP si riferisce a sistemi operativi Windows, tutti i sistemi operativi a 32 bit sono limitati a un totale di 4 GB, ad eccezione del data center del server 2003 o dell'azienda con un concetto chiamato PAE (Physical Address Extension). Questo è disponibile anche nei moderni kernel Linux. Naturalmente, i processori a 32 bit stanno diventando più rari al di fuori dello spazio mobile.

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.