Un seul processus 32 bits sous un système d'exploitation 64 bits est limité à 2 Go. Mais s'il est compilé dans un fichier EXE avec un IMAGE_FILE_LARGE_ADDRESS_AWARE
bit défini, il a alors une limite de 4 Go, et non de 2 Go - voir https://msdn.microsoft.com/en-us/library/aa366778(VS.85).aspx
Les choses que vous entendez à propos des indicateurs de démarrage spéciaux, 3 Go, des /3GB
commutateurs ou /userva
concernent tous les systèmes d'exploitation 32 bits et ne s'appliquent pas sur Windows 64 bits.
Voir https://msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx pour plus de détails.
En ce qui concerne les systèmes d'exploitation 32 bits, contrairement à ce que l'on pense, il n'y a pas de limite physique de 4 Go pour les systèmes d'exploitation 32 bits. Par exemple, les systèmes d'exploitation serveur 32 bits comme Microsoft Windows Server 2008 32 bits peuvent accéder jusqu'à 64 Go(Éditions Windows Server 2008 Enterprise et Datacenter) - au moyen de l'extension d'adresse physique (PAE), qui a été introduite pour la première fois par Intel dans le Pentium Pro, puis par AMD dans le processeur Athlon - elle définit une hiérarchie de table de page à trois niveaux, avec des entrées de table de 64 bits chacune au lieu de 32, permettant à ces processeurs d'accéder directement à un espace d'adressage physique supérieur à 4 gigaoctets - donc théoriquement, un système d'exploitation 32 bits peut accéder théoriquement à 2 ^ 64 octets, ou 17.179.869.184 gigaoctets, mais le segment est limité à 4 Go. Cependant, pour des raisons marketing, Microsoft a limité la mémoire maximale accessible sur les systèmes d'exploitation non serveur à seulement 4 Go, voire 3 Go. Ainsi, un seul processus peut accéder à plus de 4 Go sur un système d'exploitation 32 bits - et le serveur Microsoft SQL en est un exemple.
Les processus 32 bits sous Windows 64 bits ne présentent aucun inconvénient par rapport aux processus 64 bits en utilisant l'espace d'adressage virtuel du noyau partagé (également appelé espace système ). Tous les processus, qu'ils soient 64 bits ou 32 bits, sous Windows 64 bits partagent le même espace système 64 bits.
Étant donné que l'espace système est partagé entre tous les processus , sous Windows 32 bits , les processus qui créent une grande quantité de descripteurs (comme les threads, les sémaphores, les fichiers, etc.) consomment de l'espace système par les objets du noyau et peuvent même manquer de mémoire si vous avez beaucoup de mémoire disponible au total. En revanche, sur Windows 64 bits , l'espace du noyau est de 64 bits et n'est pas limité à 4 Go. Tous les appels système effectués par les applications 32 bits sont convertis en appels 64 bits natifs en mode utilisateur .