Quanta RAM pot usar el Windows 32 bits?
Veig que el límit físic és 4 GB, així que són 2 o 3 GB simplement codiat a Windows? Per què no 4 GB com a procés de 32 bits podria tenir un SO de 64 bits?
NOTA: aquesta pregunta s' ha marcat com a duplicat, però la pregunta referenciada fa referència al límit 4 GB de l' espai de 32 bits. Això és NOT El que t'estic demanant. Estic preguntant específicament per què els processos límits de Windows a 2 GB Fins i tot en una plataforma de 32 bits. La resposta acceptada ho esmenta, però no explica per què.
2 respostes 2
A la plataforma NT, l'espai virtual 4 GB està dividit per omissió en dues parts, la baixa 2 GB per a l' adreça de procés i la superior 2 GB per a l' ús del sistema.
Aquest espai d' adreces és virtual i no està influenciat per la mida RAM. Les porcions del mapa de la memòria CPU i SO de la RAM en l' espai d' adreça virtual com cal. Això és molt complex i no es descriu aquí. Això va ser una decisió de disseny presa pels interessos de l'actuació, la seguretat i la fiabilitat.
Cada procés té el seu propi espai privat 2 GB, però només hi ha un espai d' adreça del sistema. Els processos estan aïllats en el seu propi espai d'adreça privada i ni tan sols poden veure'n altres. Hi ha provisions per compartir l' adreça entre dos o més processos quan sigui necessari. L' espai de l' adreça del sistema està fora dels límits als processos normals i només és accessible als components del nivell del nucli, com els controladors de l' OS en si mateix i dels dispositius. Si un procés va astray que només es pot fer mal a si mateix; altres processos i l' OSM no estan afectats.
Però per què no donar el sistema el seu propi espai de direcció privat, com per a processos? Això permet que l' espai d' adreces complet de 4 GB estigui disponible per al sistema i cada processos. Això podria haver estat fet, però hi havia un problema.
Assumeix que es va fer. El procés en execució tindria accés complet al seu propi codi i dades i tot estaria bé. Però i si aquest procés fa una crida SO que requereix accés a l' espai d' adreces del sistema, com per a una operació I/O? O què passa si hi ha una interrupció que s' ha de gestionar pel nucli?
Només es pot veure l' espai d' adreces del procés en execució per la CPU. Què fer? La solució és fer un canvi de context que porta l' espai d' adreces del sistema a la vista. L' SO pot fer-ho de forma eficient, però triga el temps. Si cal accedir a l' espai d' adreça del sistema sovint el màxim dels commutadors de context serien excessivament i rendiment.
Hi havia d'haver una manera millor.
La solució adoptada era dividir l'espai total de 4 GB en dues parts de 2 GB cada un. Espai d' adreça del procés en la 2 GB i el sistema de dalt. Això permet que l' espai d' adreces del sistema sempre estigui en un àmbit i accessible sempre que sigui necessari sense un canvi de context. Les decisions de disseny solen prendre per motius pràctics.
2 GB pot semblar molt petit i restrictiva ara, però va ser enorme quan NT va ser alliberat el 1993. I no oblidis que cada procés té 2 GB tot a si mateix.
Segons el llibre de Windows intern, va ser una decisió de disseny. Es divideixen tot l'espai de memòria virtual 4 GB a dues parts:
- Espai de l' adreça virtual de 2 GB del mode nucli (controlador de les finestres de memòria, etc.)
- Espai de mode virtual de l' adreça d' usuari 2 GB (meory per als programes d' espai d' usuari)
Llavors hi ha la no-recomanat /3GB Canvia (que canvia el nucli 1: 3 usuari i pot portar a errors repugnants amb controladors que s' alineen a desplaçaments absoluts), PE I crec que hi havia una API més que quan s' utilitza per a assignar memòria no pàgina i finestra dinàmicament a l' espai d' adreces (però em sap greu no recordar el seu nom ara mateix).
Artículos Relacionados:
- Quanta RAM pot usar el Windows de 64 bits?
- Quanta RAM pot usar un Windows 10 de 32 bits?
- Quanta RAM pot usar el Windows 10 de 64 bits?
- Quanta RAM necessita 32 bits Windows?
- Windows pot fer servir la RAM 32GB?
- Memòria RAM -