Question

J'utilise RHEL 4.4 32 bits sur du matériel basé sur AMD64.Voici le résultat de uname -a

$ uname -a
Linux zulu 2.6.9-42.0.10.ELsmp #1 SMP Fri Feb 16 17:17:21 EST 2007 i686 athlon i386 GNU/Linux

J'ai 8 Go de mémoire installés sur ce système, le système d'exploitation étant 32 bits, je suppose que mon système ne pourra pas utiliser la totalité de la mémoire de 8 Go.Mais quand je cours haut, je vois ce qui suit -

Mem:   8309168k total,  8292028k used,    17140k free,     7096k buffers

Donc, haut est capable de visualiser les 8 Go de mémoire.

Si j'installe WinXP 32 bits sur la même machine, le gestionnaire de tâches affiche simplement 3 Go comme disponibles.

Ma question est la suivante : comment un système d'exploitation 32 bits est-il capable de voir 8 Go de mémoire ?Cela signifie-t-il que mes applications pourront utiliser un espace d’adressage plus grand ?Et pourquoi y a-t-il une différence entre Linux 32 bits et WinXP 32 bits ?

Merci!

Était-ce utile?

La solution

Votre système Linux prend en charge Extension d'adresse physique.

Autres conseils

Il existe différents « niveaux » de mémoire.Ce qui est impossible, quel que soit le système d'exploitation, est d'adresser plus de 4 Go en un seul processus, car vos pointeurs sont trop petits pour plus que cela - c'est la limitation fondamentale de 32 bits par rapport à la mémoire.Sous Linux et Windows, et la plupart des systèmes d'exploitation «traditionnels», je suppose, l'espace d'adressage virtuel de 32 bits est divisé en une partie pour le noyau et une partie pour le processus, vous obtenez donc moins de 4 Go de contenu adressable pour chaque processus.

Néanmoins, le système d'exploitation pourrait utiliser plus de 4 Go - par exemple, avoir 2 à 3 processus consommant chacun 2 Go de mémoire.Même un processeur 32 bits peut adresser plus de 4 Go de mémoire (au niveau matériel), mais dans l'espace d'adressage virtuel, vous êtes toujours limité par vos pointeurs 32 bits.

L'ancienne nouveauté a une bonne explication sur les différences entre l'espace d'adressage physique, l'espace d'adressage virtuel et co : http://blogs.msdn.com/oldnewthing/archive/2004/08/18/216492.aspx

La méthode permettant cela est appelée « PAE » (Physical Address Extension).Votre processeur est capable d'utiliser des adresses 36 bits en interne et votre système d'exploitation le prend en charge.Malheureusement, Windows XP utilise uniquement PAE pour prendre en charge le bit NX (aucun bit d'exécution, provoque une exception lorsque le processeur tente d'exécuter du code à partir d'une page marquée avec ce bit).Les noyaux Linux 32 bits prennent en charge PAE.

Les processeurs compatibles i386 les plus récents peuvent gérer plus de 4 Go en mode PAE.Windows XP limite artificiellement l'espace d'adressage à 4 Go car il existe trop de pilotes matériels mal écrits qui supposent que tout le DMA sera effectué sur une mémoire inférieure à 4 Go.Ainsi, environ 1 Go de l'espace d'adressage de 4 Go est mappé au matériel, le reste à la RAM physique.Les éditions Windows Server n'ont pas cette limitation.Les noyaux Linux prenant en charge PAE ne limitent pas non plus la mémoire.Ces deux supports prennent en charge jusqu'à 32 Go, si je me souviens bien.

Votre application est limitée à entre 2 et 3 Go d'espace d'adressage, selon les options du système d'exploitation.Une application peut effectivement utiliser plus de RAM physique que cela en fenêtrant des parties de mémoire dans et hors de cet espace d'adressage, à l'aide d'extensions de fenêtrage d'adresses ou de fichiers mappés en mémoire, par exemple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top