Corrigez-moi je me trompe.
Q1) Je crois comprendre qu'en mode 32 bits, nous obtenons un espace d'adressage virtuel de 4 Go. Est-ce parce que Windows 32 bits ne peut prendre en charge que 4 Go de RAM physique?
Q2) Chaque processus reçoit son propre espace d'adressage privé de 4 Go. Mode utilisateur 2 Go et noyau 2 Go. Le processus mappe-t-il l'intégralité de son code en mode utilisateur et les composants du système d'exploitation nécessaires pour qu'il puisse communiquer avec le processeur afin d'exécuter le code sont chargés en mode noyau?
Q3) Si un processus obtient son propre espace privé de 4 Go. Si je charge 3 processus, un total de 12 Go d'espace d'adressage. Aurai-je un problème de performances car je ne dispose que de 4 Go de RAM?
Mais comme adresse virtuelle est conçu pour répondre à la nécessité de processus en cas de moins de RAM. SO ma vraie question, lorsqu’un processus (application à processus unique) est chargé, il mappe tout son code à l’adresse virtuelle de 4 Go, même si l’application n’exécute actuellement qu’une partie du code.
Ce que je comprends, c’est que lorsqu’un processus est démarré, tout son code est chargé dans un espace d’adresse virtuel de 2 Go en mode utilisateur et 2 Go en plus, il charge les fichiers du noyau du système d’exploitation. Maintenant, en utilisant les tables de pages, l'adresse virtuelle est mappée sur l'adresse physique dans la RAM et le disque. Toute l'adresse virtuelle de 4 Go sera-t-elle mappée sur 4 Go de RAM physique et restera-t-elle dans le fichier de page? Si je refuse d'utiliser le fichier d'échange, cela signifie-t-il qu'un seul processus avec une adresse virtuelle de 4 Go peut s'exécuter sur un système d'exploitation 32 bits de 4 Go?
=============================================== ============================ Merci pour les réponses précédentes.
Je suis encore un peu confus quant à la façon dont l'espace d'adressage utilisateur et noyau est divisé.
1) Est-ce que l'espace d'adressage du noyau de 2 Go est partagé par tous les processus, car il concerne l'ensemble du système et est chargé au moment du démarrage? ou chaque processus obtient-il 2 Go d'espace d'adressage du noyau? 2) Je lis une application mal écrite peut consommer tout son espace adresse.? Est-ce que cela signifie qu'il n'y a plus de place pour que d'autres applications s'exécutent maintenant sur une machine de 4 Go? 3) Si un espace d'adressage du noyau est partagé par tous les processus, est-ce qu'il ne manque jamais d'espace d'adressage ou jamais parce que l'adresse du noyau reste (je pense) restée fixe en fonction de l'architecture du système d'exploitation et partagée par tous les processus. 4) En utilisant le commutateur USERVA, l’adresse du noyau est réduite à 1 Go uniquement pour les applications avec adresse étendue. Pourquoi ne le fait-il pas pour tous les processus si l'espace d'adressage du noyau si 2 Go (ce qui, je pense) est partagé entre tous les processus? 5) Comment différencions-nous exactement la mémoire virtuelle b / w et le sace d’adresses virtuelles? ? Si une application nécessite 5 Go de mémoire selon devloper, ne sera-t-elle pas exécutée sur une machine 32 bits avec une adresse de 2 Go (est-il correct de dire que la mémoire virtuelle du processus = l'espace d'adressage virtuel du processus?)