100 votes

Une machine à système d'exploitation 32 bits peut-elle utiliser les 8 Go de RAM et les 20 Go de fichiers de pages ?

Ce que je comprends du système d'exploitation 32 bits, c'est que l'adresse est exprimée en 32 bits, de sorte que le système d'exploitation pourrait tout au plus utiliser 2 bits. 32 \= 4G d'espace mémoire -- Je suppose que l'unité est l'octet, donc 4GB.

Cela signifie-t-il que si une machine équipée d'un système d'exploitation 32 bits (qu'il s'agisse de Windows ou d'Unix) dispose d'un total de plus de 4 Go de RAM + fichier de page sur le disque dur, par exemple 8 Go de RAM et 20 Go de fichier de page, sa mémoire ne sera jamais "utilisée" ?

Par "épuisé" Je veux dire que l'augmentation de la mémoire vive ou du fichier de pages n'améliorera pas les performances ; bien sûr, il est toujours possible qu'une application continue à demander de la mémoire au système d'exploitation mais échoue.

De même, si cette machine à système d'exploitation 32 bits possède 2 Go de RAM et un fichier de pages de 2 Go, l'augmentation de la taille du fichier de pages n'améliorera pas les performances. Cela est-il vrai ?

146voto

rgajrawala Points 101

Ce que je comprends du système d'exploitation 32 bits, c'est que l'adresse est exprimée en 32 bits, de sorte que le système d'exploitation pourrait utiliser au maximum 2^32 = 4 Go d'espace mémoire.

Le plus que le processus peut adresse est de 4GB. Vous confondez potentiellement mémoire con espace adresse . Un processus peut avoir plus de mémoire que d'espace d'adressage. C'est-à-dire parfaitement légal y assez courante dans le traitement vidéo et d'autres applications gourmandes en mémoire. Un processus peut se voir allouer des dizaines de Go de mémoire et les échanger dans et hors de l'espace d'adressage à volonté. Seuls 2 Go peuvent aller dans l'espace d'adressage utilisateur à la fois.

Si vous avez un garage pour quatre voitures chez vous, vous pouvez toujours posséder cinquante voitures. Vous ne pouvez pas les garder tous dans votre garage. Vous devez disposer d'un espace de stockage auxiliaire à un autre endroit pour stocker au moins 46 d'entre elles ; vous pouvez choisir les voitures que vous gardez dans votre garage et celles que vous gardez sur le parking en bas de la rue.

Cela signifie-t-il que tout système d'exploitation 32 bits, qu'il s'agisse de Windows ou d'Unix, si la machine possède une mémoire vive + un fichier de page sur le disque dur de plus de 4 Go, par exemple 8 Go de mémoire vive et 20 Go de fichier de page, il n'y aura jamais de "mémoire utilisée" ?

Absolument, ça ne veut pas dire ça. Un seul processus peut utiliser plus de mémoire que cela ! Encore une fois la quantité de mémoire utilisée par un processus n'est presque pas liée à la quantité d'espace d'adressage virtuel utilisée par un processus. Tout comme le nombre de voitures que vous gardez dans votre garage n'a aucun rapport avec le nombre de voitures que vous possédez.

D'ailleurs, deux processus peuvent partager des pages de mémoire non privées . Si vingt processus chargent tous la même DLL, ils partagent tous les pages de mémoire pour ce code. Ils ne partagent pas espace d'adressage de la mémoire virtuelle ils partagent mémoire .

Ce que je veux dire, au cas où ce ne serait pas clair, c'est que vous devriez arrêter de penser que la mémoire et l'espace d'adressage sont la même chose, car ce n'est pas du tout la même chose.

si cette machine à système d'exploitation 32 bits dispose de 2 Go de RAM et d'un fichier de pages de 2 Go, l'augmentation de la taille du fichier de pages n'améliorera pas les performances. Cela est-il vrai ?

Vous avez cinquante voitures et un garage de quatre voitures, et un parking de 100 voitures en bas de la rue. Vous augmentez la taille du parking à 200 places. L'une de vos voitures est-elle plus rapide du fait que vous avez maintenant 150 places de stationnement supplémentaires au lieu de 50 ?

69voto

Mike Points 978

Il est vrai que l'unité centrale ne peut adresser que 4 Go de RAM au maximum. Cependant, les CPU actuels utilisent un MMU ( Unité de gestion de la mémoire ) pour traduire les adresses mémoire spécifiques au processus en adresses mémoire physiques.

Cette MMU est utilisée pour toutes sortes d'astuces différentes, de l'isolation de la mémoire (le processus A ne peut pas manipuler la mémoire du processus B) au partage de la mémoire (le processus A peut accéder à la même région de mémoire physique que le processus B et peut ainsi échanger des données).

Bien que les CPU 32 bits ne prennent en charge que 4 Go de mémoire par processus, ils peuvent adresser jusqu'à 64 Go de RAM en utilisant Extension de l'adresse physique . Cela permet au processus A d'utiliser les premiers 4 Go de mémoire, tandis que le processus B utilise les 4 Go suivants. Au total, plus de 4 Go de mémoire physique sont utilisés, mais la quantité totale de mémoire utilisée par un seul processus est toujours plafonnée à 4 Go. .

La PAE est prise en charge sous Linux depuis la version 2.3.23 du noyau et sous certaines versions 32 bits de Windows Server, mais pas sous Windows XP, Vista ou 7 32 bits.

Si votre CPU ne prend pas en charge la PAE, vous serez limité à 4 Go de mémoire physique (ou moins selon d'autres facteurs).

Veuillez noter que votre système d'exploitation peut toujours expulser des parties de la mémoire physique vers le disque (fichier de page), même si le CPU prend en charge le PAE. Cela garantit que vous pouvez lancer plusieurs processus qui utilisent plus de 4 Go combinés. Le seul impact de la PAE est de savoir si vous pouvez conserver les 4 Go du processus B en mémoire physique tout en exécutant le processus A.

15voto

Breakthrough Points 33693

En ce qui concerne spécifiquement les variantes de Windows 32 bits, elles prennent en charge plus de 4 Go de RAM depuis les variantes de Windows 2003 (et vous pouvez également obtenir un hack du noyau pour Windows 7 pour vous permettre d'utiliser toute votre RAM en 32 bits). Cependant, cela a un coût, comme vous l'avez souligné dans la première partie de votre question.

Dans un système d'exploitation 32 bits, la taille d'un pointeur (adresse mémoire) est la même que la longueur du mot du CPU, soit 32 bits, ce qui permet (comme vous l'avez mentionné) un espace mémoire de 2^32 = 4 Go. Windows adopte également une approche de "mémoire virtuelle" pour les applications, de sorte que chaque application dispose de son propre espace mémoire.

Comme chaque pointeur n'a qu'une largeur de 32 bits, chaque application Les pointeurs de l'ordinateur ne peuvent adresser que 4 Go de mémoire, même si le système peut supporter plus de 4 Go de RAM. Pour autant que je sache, c'est le seul obstacle à l'utilisation de plus de 4 Go de RAM dans un système d'exploitation 32 bits. Au total, vous pouvez avoir de nombreuses applications utilisant plus de 4 Go de RAM combinés, mais un processus particulier ne peut allouer/accéder qu'à 4 Go.


Pour en revenir à votre question, disons que vous avez un programme qui utilise 2 Go de RAM. Si vous avez 10 instances de ce programme, cela représente 20 Go. Les 8 Go de votre RAM seront utilisés, ainsi que les 12 Go supplémentaires de la pagefile. Donc oui, sous les systèmes d'exploitation 32 bits, il est plus que possible d'utiliser cette mémoire.

si cette machine à système d'exploitation 32 bits dispose de 2 Go de RAM et d'un fichier de pages de 2 Go, augmenter la taille du fichier de page n'améliorera pas les performances. Est-ce vrai ?

L'augmentation de la taille du pagefile généralement pas augmenter les performances (à moins que votre RAM et votre pagefile ne soient réglés au minimum absolu ou à un niveau si bas que votre ordinateur est constamment en panne). Il empêchera cependant votre ordinateur de manquer de mémoire (virtuelle). Chaque fois qu'un élément doit être purgé vers le fichier de page, vous prenez déjà un certain temps pour le faire. énorme (puisque le disque dur est plusieurs fois plus lent que votre RAM).

-1voto

Dmitry Grigoryev Points 8663

Lorsqu'un processeur est dit 32 bits, cela signifie qu'il peut fonctionner avec des nombres de 32 bits en utilisant une seule instruction. Cela n'a pas grand-chose à voir avec la largeur de son bus d'adresses, qui, sur l'architecture Intel, est de 36 bits depuis le début des années 1990. Pentium Pro publié en 1995.

La fameuse limitation de 4 Go vient du fait que la plupart des logiciels pour PC utilisent Modèle de mémoire plate où chaque octet de la mémoire peut être adressé par un pointeur. Comme un pointeur doit tenir dans un registre pour être utilisé et que les registres ont une largeur de 32 bits, vous êtes limité à 4 Go.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X