Cosa succede quando si installano> 4 GB di RAM in un computer con un sistema operativo a 32 bit?


10

Quindi sono un programmatore e non sono un completo idiota, quindi so esattamente perché non puoi accedere alla memoria dove non puoi avere puntatori. Ma non l'ho mai provato e non credo che lo farò mai perché sembra un grande spreco di tempo / denaro.

Mi sto solo chiedendo se ci sono strumenti che mi permettono di accedere al mio himem (penseresti che avremmo risolto questo problema ormai).


Dai un'occhiata a questo modo alternativo di formulare la stessa domanda: superuser.com/questions/7964/where-did-the-other-8-gb-of-ram-go
da

Grazie, ecco anche una buona risposta, potrei solo dover chiudere questa domanda. serverfault.com/questions/3342/…
Peter Turner,

Risposte:


20

Se si dispone di un processore con l' estensione dell'indirizzo fisico (cosa che probabilmente si fa) e il sistema operativo corretto ( ad es. Non una versione consumer di Windows, utilizza PAE ma è limitato a 4 GB ), la memoria può essere mappata e utilizzata normalmente. Altrimenti la memoria non verrà semplicemente indirizzata, il sistema operativo ti dirà che hai comunque molti chip di qualsiasi dimensione, ma non saranno aggiunti alla quantità di memoria a cui puoi accedere.


3
Perché le versioni normali di Windows non supportano PAE? Solo un altro motivo per usare Linux ...
Zifre,

1
Perché le versioni a 64 bit / server costano di più.
Martin Beckett,

2
Anche le versioni consumer di Windows supportano PAE: sono limitate a 4 GB (per motivi di compatibilità e marketing). (PAE è ancora utilizzato per la funzione "Prevenzione esecuzione dati".)
user1686

3
@Zifre, molti driver destinati al consumatore non sono in grado di gestire PAE e> 4G di RAM su Windows. Pertanto, l'abilitazione di PAE si traduce spesso in arresti anomali misteriosi e viene quindi utilizzata solo per le edizioni del server, dove presumibilmente installerai driver di qualità superiore progettati per grandi quantità di memoria.
bdonlan,

bdonlan: PAE è abilitato anche nelle versioni consumer, per questo hanno solo il limite artificiale di 4 GB.
user1686,

1

Le cose funzionerebbero bene dato che 4 GB è il limite per un processore a 32 bit. Ecco come articolo che approfondisce e mostra in realtà che è possibile installare e utilizzare molto più di 4 GB su un sistema operativo a 32 bit.


Solo che non tutto lo spazio di indirizzi reale è necessariamente dedicato alla memoria fisica.
Jason S,

Scusate volevo dire più di 4 GB, solo qualcosa nella gamma più di 2 ^ 32.
Peter Turner,

1

Suppongo che tecnicamente se il sistema operativo fosse ben progettato, potresti usare più di 4 GB. Non c'è motivo di pensare che un sistema operativo con capacità di memoria virtuale non possa utilizzare indirizzi virtuali a 32 bit con indirizzi reali a 64 bit.


1

Dipende dal sistema operativo a 32 bit che intendi!

Naturalmente sui moderni sistemi operativi, puoi collegare praticamente tutto ciò che la tua scheda madre può prendere senza problemi (anche se potresti non essere in grado di usarlo tutto), ma non è sempre stato così, almeno con Windows:

Un bug in Windows 95, 98, SE e ME si presenta se hai più di 512 MB di memoria installata.

http://answers.google.com/answers/threadview/id/333688.html


0

La prima cosa da capire è che i moderni sistemi informatici utilizzano la memoria virtuale. Puoi avere indirizzi virtuali a 32 bit per le applicazioni pur avendo indirizzi fisici maggiori di 32 bit.

La seconda cosa da capire è che lo spazio di indirizzamento fisico viene utilizzato per varie cose, in particolare per il ram e perhipherals mappati memoria. Le schede grafiche in particolare hanno spesso aree mappate con memoria di grandi dimensioni. Il risultato è che se hai solo 4 GB di spazio di indirizzi fisici utilizzabili puoi finire con significativamente meno di 4 GB di RAM utilizzabile. Circa 3,5 GB utilizzabili sono tipici, ma ho visto sistemi con un minimo di 2,5 GB.

Su un PC per supportare più di 4 GB di spazio di indirizzi fisici viene utilizzato un meccanismo chiamato PAE. Perché questo funzioni diverse cose sono necessarie.

  1. La CPU deve supportarlo.
  2. Il chipset deve supportarlo.
  3. Il BIOS deve supportarlo.
  4. Il sistema operativo deve supportarlo.

Le CPU supportano PAE da anni, questo non è un problema.

Molti chipset meno recenti erano limitati a 4 GB di spazio di indirizzamento fisico. I chipset Intel IIRC per laptop hanno ottenuto il supporto per oltre 4 GB di spazio di indirizzi con la generazione "Santa Rosa" nel 2007. Non sono sicuro dei chipset desktop, ma mi aspetto che sia più o meno nello stesso periodo. Chipset per workstation / server ovviamente hanno ottenuto il supporto molto prima.

I BIOS Afaict lo supportano principalmente se il set di chip lo fa. Non mi sorprenderebbe se ci fossero delle eccezioni.

Il sistema operativo è spinoso. Linux e Windows supportano entrambi PAE da anni. Sfortunatamente da quando Windows XP Service Pack 2 MS ha limitato artificialmente lo spazio di indirizzi fisico a 4 GB. Sostengono di averlo fatto a causa di driver difettosi, i cinici sospettavano di averlo fatto per costringere le persone ad acquistare le edizioni del server.

In Windows XP questo è inserito nel kernel e praticamente non può essere annullato. Tuttavia nelle versioni successive può essere aggirato con alcuni piccoli hack al kernel. Vedi https://wj32.org/wp/ per i dettagli.

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.