Ce que je comprends des systèmes d’exploitation 32 bits, c’est que l’adresse est exprimée en 32 bits, de sorte que le système d’exploitation peut utiliser au plus 2 ^ 32 = 4 Go d’espace mémoire.
Le processus que le processus peut traiter est au maximum de 4 Go. Vous confondez potentiellement la mémoire avec l' espace d'adressage . Un processus peut avoir plus de mémoire que d'espace d'adressage. C'est parfaitement légal et assez courant dans le traitement vidéo et autres applications gourmandes en mémoire. Des dizaines de Go de mémoire peuvent être alloués à un processus et échangés à volonté dans l'espace d'adressage. 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 tout simplement pas les garder tous dans votre garage. Vous devez avoir un stockage auxiliaire ailleurs pour pouvoir en stocker au moins 46; Les voitures que vous gardez dans votre garage et celles que vous gardez sur le parking dans la rue sont à vous.
Cela signifie-t-il que tout système d'exploitation 32 bits, qu'il s'agisse de Windows ou d'unix, si la machine a plus de 4 Go de mémoire vive et plus sur le disque dur, par exemple 8 Go de RAM et 20 Go de fichier d'échange, il n'y aura jamais de "mémoire utilisée"?
Absolument cela ne veut pas dire cela. Un seul processus pourrait utiliser plus de mémoire que cela! Là encore, la quantité de mémoire utilisée par un processus n'a presque pas de lien avec la quantité d'espace d'adressage virtuel utilisée par un processus. Tout comme le nombre de voitures que vous conservez dans votre garage n'a aucun rapport avec le nombre de voitures que vous possédez.
De plus, 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 de ce code. Ils ne partagent pas d' espace d'adressage de mémoire virtuelle , ils partagent de la mémoire .
Ce que je veux dire, au cas où ce ne serait pas clair, c'est que vous devriez arrêter de penser à la mémoire et à l'espace d'adressage comme étant la même chose, car ils ne sont pas du tout la même chose.
Si ce système d'exploitation 32 bits dispose de 2 Go de RAM et de 2 Go de fichier d'échange, augmenter la taille du fichier d'échange ne sera pas préjudiciable aux performances. Est-ce vrai?
Vous avez cinquante voitures, un garage pour quatre voitures et un parking de 100 places dans la rue. Vous augmentez la taille du parking à 200 places. Est-ce que certaines de vos voitures vont plus vite parce que vous avez maintenant 150 places de stationnement supplémentaires au lieu de 50 places de stationnement supplémentaires?