Existe-t-il une raison technique pour laquelle les fenêtres 32 bits sont limitées à 4Gb de RAM?

Duplication possible:
Pourquoi Windows ne montre-t-il que 3,5 Go de mes 4 Go de RAM?
Une machine OS 32 bits peut-elle utiliser tous les fichiers de 8 Go de RAM + 20 Go?

Comme vous pouvez le voir dans ce tableau , toutes les versions de x86 Win 7 max à 4Gb.

Y at-il une raison technique pour cela ou est-ce juste une stratégie de marketing pour amener les gens à acheter un système d'exploitation plus coûteux?

Il semble y avoir beaucoup de confusion dans l'industrie sur ce qu'on appelle communément la "limite de mémoire de 4 Go" de Windows. En ce qui concerne l'optimisation des performances et le dimensionnement du serveur, les gens mentionnent rapidement le fait qu'une application sur un système Windows 32 bits peut N'accepte que 4 Go de mémoire. Mais qu'est ce que cela signifie exactement?

Par définition, un processeur 32 bits utilise 32 bits pour se référer à l'emplacement de chaque octet de mémoire. 2 ^ 32 = 4,2 milliards, ce qui signifie qu'une adresse mémoire de 32 bits peut seulement se référer à 4,2 milliards d'emplacements uniques (c'est-à-dire 4 Go).

Dans le monde Windows 32 bits, chaque application possède son propre espace mémoire "virtuel" de 4 Go. (Cela signifie que chaque application fonctionne comme si elle avait une mémoire plate de 4 Go, et le gestionnaire de mémoire du système surveille le mappage de la mémoire, les applications utilisent la mémoire, la gestion des fichiers de la page, etc.)

Cet espace de 4 Go est divisé en deux parties, avec 2 Go dédié à l'utilisation du noyau et 2 Go pour l'utilisation de l'application. Chaque application possède son propre 2 Go, mais toutes les applications doivent partager le même espace de noyau de 2 Go.

SOURCE: http://www.brianmadden.com/blogs/brianmadden/archive/2004/02/19/the-4gb-windows-memory-limit-what-does-it-really-mean.aspx

[Modifier RE: PAE]

L'architecture matérielle du processeur x86 est augmentée avec des lignes d'adresse supplémentaires utilisées pour sélectionner la mémoire supplémentaire, de sorte que la taille de l'adresse physique augmente de 32 bits à 36 bits. Ceci, théoriquement, augmente la taille maximale de la mémoire physique de 4 à 64 Go. La taille de 32 bits de l'adresse virtuelle n'est pas modifiée, de sorte que le logiciel d'application régulier continue d'utiliser les instructions avec les adresses 32 bits et (dans un modèle de mémoire plate) est limité à 4 gigaoctets d'espace d'adressage virtuel. Le système d'exploitation utilise des tables de page pour mapper cet espace d'adressage de 4 Go dans les 64 Go de mémoire physique. Le mappage est généralement appliqué différemment pour chaque processus. De cette façon, la mémoire supplémentaire est utile même si aucune application régulière unique ne peut l'accéder simultanément.

Oui et non.

En règle générale, un processeur 32 bits ne peut gérer que 4 GiB de RAM, puisqu'il n'y a que 2 ^ 32 = 4,294,967,296 nombres différents qui peuvent être représentés à l'aide de 32 bits.

Chaque fois que vous stockez quelque chose dans la mémoire, vous devez enregistrer l'adresse pour pouvoir la lire ou la manipuler. Habituellement, la CPU utilise un seul registre (32 bits) pour stocker cette adresse. Puisqu'il n'y a que 2 ^ 32 adresses différentes, tout ce qui dépasse la marque de 4 GiB reste inutilisé.

Cependant, il existe des techniques comme PAE (Physical Address Extension) qui permettent à un système d'exploitation 32 bits d'adresser plus de 4 GiB de RAM.

En simplifiant considérablement le processus, le système d'exploitation mappe chaque processus dans une certaine partie de la mémoire (appelée table de page). Chaque processus est encore limité à 4 GiB , mais cela permet au système d'exploitation d'aborder plus de mémoire que seulement 4 GiB .

La version 32 bits de Windows Server 2003 Datacenter Edition , par exemple, prend en charge jusqu'à 64 GiB de RAM.