Limite de 2 Go sur les systèmes d'exploitation 32 bits

8

La limite de 2 Go sur les systèmes d'exploitation 32 bits signifie-t-elle que chaque processus ne peut accéder qu'à 2 Go de mémoire ou que tous les processus ensemble ne peuvent utiliser au total que 2 Go de mémoire physique ?

Donc, les 2 Go réservés au noyau limitent-ils la quantité totale que tous les processus peuvent utiliser ensemble?

Scientifique fou
la source
Veuillez noter que Fabian fait uniquement référence à la mémoire physique, pas au fichier d'échange.
Arda Xi
Il fait également référence à Windows uniquement, pas aux systèmes d'exploitation en général.
Arda Xi
Il se pose peut-être des questions à ce sujet, mais il n'y a pas de telles relations. Chaque processus peut accéder à 2 Go virtuels. Une partie de celui-ci sera en RAM ("résident"). Sur les versions clientes de Windows 32 bits, le total de la mémoire résidente de tous les processus plus la mémoire résidente du système d'exploitation ne peut pas dépasser 4 Go. Il n'y a pas de partage de 2 Go dans l'allocation de mémoire physique.
Jamie Hanrahan
La réponse acceptée dans cet article donne des informations complètes - stackoverflow.com/questions/490520/…
RBT

Réponses:

4

Il existe de nombreuses idées fausses sur la limite de mémoire dans les systèmes d'exploitation Windows 32 bits.

Tout d'abord, quand je dis RAM, cela inclut tous les types de RAM. Donc pas seulement régulier, mais aussi votre RAM vidéo.

La quantité maximale de RAM disponible par processus pour un système d'exploitation 32 bits est de 2 Go. Si vous avez un système d'exploitation 64 bits, un processus 32 bits peut allouer jusqu'à 4 Go.

De plus, l'ensemble du système d'exploitation ne peut traiter que 4 Go pour chaque processus combiné, tandis que les systèmes d'exploitation 64 bits peuvent allouer 8 To.

Il est également intéressant de noter que cette limite s'ajoute au pool paginé. Cela signifie qu'un système d'exploitation 32 bits ne peut pas utiliser plus de 2 Go au total, ce qui signifie 6 Go pour toutes les applications, y compris la mémoire virtuelle. Bien sûr, cela n'a rien à voir avec la RAM, car les 2 autres Go seraient stockés dans le fichier d'échange, limité à la vitesse de votre disque dur.

Pour plus d'informations, voir Limites de mémoire pour les versions de Windows .

Remarque: ceci est uniquement pour les applications. Un système d'exploitation Windows 32 bits peut allouer jusqu'à 4 Go au total, mais 2 Go sont alloués à l'utilisation du système uniquement, ne laissant que 2 Go pour les applications à utiliser. Dans certains cas (en particulier les systèmes d'exploitation plus récents), cela est divisé en 3 Go pour les applications et 1 Go pour le noyau.

Je n'ai parlé de Windows que parce que c'est le contexte dans lequel la question était posée. Je ne connais pas les limites des autres systèmes d'exploitation.

Arda Xi
la source
2
cette réponse n'est pas complète - elle n'inclut pas le concept «d'espace d'adressage» au-delà du simple fait de dire que la mémoire vidéo est incluse, et le fait que l'espace d'adressage sur les systèmes d'exploitation 32 bits est en fait limité à 4 Go sans extensions, pas à 2 Go (vous peut même indiquer à une copie 32 bits de XP de démarrer avec 3 Go de RAM)
lunixbochs
1
La question n'était pas de savoir ce qu'est l'espace d'adressage. Je pourrais vous ennuyer en discutant de la façon dont la mémoire est abordée et de la limite des entiers 32 bits, mais ce n'est pas le sujet de cette question, donc cela semble inutilement complexe. Et oui, vous pouvez utiliser le commutateur / 3GB. Cette question ne comprend pas cela.
Arda Xi
1
La limite de mémoire de 4 Go s'applique uniquement à la mémoire physique sur une architecture x86 32 bits standard. La mémoire virtuelle est différente et un système d'exploitation 32 bits peut utiliser beaucoup plus de 4 Go de mémoire (total non par processus) s'il utilise un fichier d'échange ou une partition d'échange. La vitesse du disque dur n'a aucune influence sur la taille du fichier de page disponible ou l'espace d'échange, si le disque dur a de l'espace, qu'il peut paginer ou échanger. Il affecte uniquement les performances de pagination / swap.
1
Oh, j'ai oublié de mentionner que le ram vidéo n'est pas un facteur, à moins qu'il ne soit un ram vidéo intégré partageant le ram principal, mais même alors, il soustrait simplement le ram physique disponible. Cela n'affecte pas la mémoire virtuelle disponible. Les cartes vidéo dédiées ont leurs propres processeurs et mémoire qui n'ont aucun facteur dans la mémoire disponible du système.
@Spooky Pas complètement vrai. Si vous regardez mon lien, vous verrez que le pool paginé est limité par l'espace d'adressage virtuel en mode noyau qui est de 2 Go. Cela signifie environ 6 Go au total.
Arda Xi
0

Si l'OP fait référence aux systèmes d'exploitation Windows, tous les systèmes d'exploitation 32 bits sont limités à 4 Go au total, sauf pour le centre de données de serveur 2003 ou l'entreprise avec un concept appelé PAE (Physical Address Extension). Ceci est également disponible dans les noyaux Linux modernes. Bien sûr, les processeurs 32 bits deviennent de plus en plus rares en dehors de l'espace mobile.

skub
la source