Pourquoi un 32-bit OS de support de 4 GO de RAM?
Il suffit de lire quelques notes dans un purdue la conférence au sujet de l'OSs, et il dit:
Un programme voit la mémoire comme un tableau de
octets qui va partir de l'adresse 0 à 2^32-1 (0 à
4 GO-1)
Pourquoi 4 GO?
- 4 GO est le maximum théorique de mémoire que vous pouvez utiliser avec un 32-bit OS. Pratiquement, vous ne pouvez pas utiliser la totalité de 4GO de mémoire (peut-être seulement 3,5 GO) parce que vous avez aussi besoin d'un peu d'adresse-de l'espace pour d'autres composants matériels tels que: PROCESSEUR, disque dur, carte grafic, etc.
- La question du sujet est incorrect. 32-bit peut prendre en charge plus de RAM, il va juste voir 4 GO à la fois.
- Techniquement, le PAE peut vous donner plus de 4GiB
InformationsquelleAutor Blankman | 2009-07-13
Vous devez vous connecter pour publier un commentaire.
Parce que les 32 bits sont en mesure de représenter des nombres jusqu'à 232 − 1 = 4294967295 = 4 Go − 1 et donc en mesure de traiter jusqu'à 232 octets individuels qui serait de 4 Go alors.
Il y a des façons de contourner cela, cependant. Par exemple à l'aide de PAE même un système d'exploitation 32 bits peut prendre en charge plus de mémoire. Historiquement, cela a été le plus communément utilisé sur les serveurs, bien que. Aussi, le non-serveur Windows Ugs ne le supporte pas. Maintenant tout ce qui est discutable, bien que, étant donné que les Cpu 64 bits, avec des Systèmes d'exploitation et de support du pilote sont monnaie courante.
Parce que chaque octet de la mémoire à une adresse. Dans un système d'exploitation 32 bits, une adresse de 32 bits de long; ainsi, il y a 2^32 adresses possibles, ce qui signifie qu'il y a 2^32 octets = 4 GO.
Tout le monde dit que 2^32 = 4GiB, qui est à droite. Juste au cas où, voici comment nous en sommes arrivés là:
Une machine 32 bits utilise 32 bits d'adresse de la mémoire. Chaque bit a une valeur de 0 ou 1. Si vous avez 1 bits, vous avez deux adresses possibles: 0 ou 1.
Une à deux bits système ( jeu de mots à part ) a quatre adresse: 00 =0, 01=1, 10=2, 11=3. 2^2=4.
Trois morceaux ont 8 possble adresses: 000=0, 001=1, 010=2, 011=3, 100=4, 101=5, 110=6, et 111=7.
Chaque bit de doubler le potentiel de l'espace d'adresse, qui est pourquoi les 2^n indique le nombre d'adresses que vous utilisez pour un nombre donné de bits. 2^1 = 2, 2^2 = 2*2 = 4, 2^3 = 2*2*2 = 8, etc.
Au moment où vous arrivez à 32 bits, vous êtes à 4GiB.
4 GO = 2^32 octets.
Si vous avez des 4 bits du système, cela signifie que le adresse pour chaque octet 4 chiffres binaires, la probabilité de tous votre adresse de gamme de
0000
par1111
qui est2^4 = 16
(2, car il est soit 0 ou 1), avec quatre bits il est possible de créer16
différentes valeurs de zéros et de uns, Si vous avez 16 addr. représentent chacun unbyte
, alors vous pouvez avoir un max de16 bytes
4 bits système va ressembler à ceci:
Pour un système 32 bits, votre max est
2^32 = 4294967292 bytes
Que, en octets, c'est la définition de 4 GO. En d'autres mots de 32 bits s'inscrire comme un pointeur de mémoire peut adresser 4 GO de mémoire et pas plus.
En fait, il n'est pas aussi simple que 2^32 = 4294967296 octets. Vous voyez en x86 en mode protégé, avec pagination activé (c'est ce que vous obtenez lorsque vous utilisez un système d'exploitation moderne), vous n'avez pas d'adresse emplacements de mémoire directement, même si la pagination de la traduction mécanisme est transparent pour les applications clientes.
D'une logique de 32 bits de l'adresse de mémoire, lors de l'utilisation de pages de 4ko:
Comme vous pouvez le voir, vous avez 2^10 (1024) page répertoires, dans chaque répertoire de la page, vous avez 2^10 tables de pages et chaque page est de 2^12 (4096) octets de long, donc 2^32 = 4294967296 octets. La largeur du bus mémoire est idéalement le même que la longueur de mot de l'UC, mais il n'est pas nécessaire d'être comme ça à tout. En fait, plus moderne les Processeurs x86 support PAE qui permet l'adressage de plus de 4 go (ou GiB), même en mode 32 bits.
Parce que c'est le montant des différentes adresses de mémoire (en Octets) qui peut être stockée dans un Mot.
Mais, en fait, ce n'est pas toujours vrai (dans la plupart des cas, il n'est pas), le système d'exploitation capable de gérer plus de mémoire physique que que (PAE) et les applications peuvent utiliser moins de 4 go de mémoire virtuelle (parce qu'une partie de cette mémoire virtuelle est mappé à l'OS, 1 GO sous Linux, et 2 go dans Windows, par exemple).
Un autre scénario où ça ne s'applique pas si la mémoire a été abordée par des Mots plutôt que des Octets, alors le total de la mémoire adressable serait de 16 go, par exemple.
Principalement en raison de 32 bits OS choisir de ne soutenir que 2^32-1 adresses.
Si le CPU a plus de 32 lignes d'adresse sur le FSB, alors le 32-bit OS pouvez choisir d'utiliser un mécanisme de pagination pour accéder à plus de 4GiB. (Par exemple Windows 2000 Advanced Server/Data Center éditions sur les PAE pris en charge Intel/AMD jetons)
0..2^32
=0..4,294,967,296
2^32B = 4,194,304KiB = 4,194MiB = 4GiB
4 GO = 2^32 octets.
Mais souvenez-vous de son max 4 go alloués par un OS 32 bits. En réalité, le système d'exploitation, voir moins, par exemple, après la VRAM de répartition.
Comme indiqué précédemment par d'autres utilisateurs, Windows 32 bits des Systèmes d'exploitation l'utilisation de 32 bits pour stocker les adresses de la mémoire.
En fait, la plupart des 32 bits puces ces jours-ci l'utilisation de 36 bits d'adressage à l'aide d'Intel Extension d'Adresse Physique (PAE) du modèle. Certains systèmes d'exploitation directement (Linux, par exemple).
Comme Raymond Chen souligne, dans Windows une application 32 bits peut allouer plus de mémoire de 4 go, et vous n'avez pas besoin de 64 bits de Windows pour le faire. Ou même PAE.
Pour cette question, 64-bit puces ne prennent pas en charge la totalité de la mémoire 64 bits de l'espace. Je crois qu'ils sont actuellement limitées à 42 bits de l'espace... les 36 bits d'espace que les PAE utilise, en plus du top 8-bits des adresses,