Le mappage d'adresse virtuelle à adresse physique dans les systèmes informatiques est un processus crucial qui permet à plusieurs processus de s'exécuter simultanément tout en ayant apparemment un accès exclusif à l'ensemble de la mémoire du système. Ceci est obtenu grâce à une combinaison de composants matériels et logiciels, principalement la MMU (Memory Management Unit). et le tableau des pages . Voici une répartition :
1. Adresses virtuelles :
* Chaque processus reçoit son propre espace d'adressage virtuel privé. Cet espace est indépendant des espaces d'adressage virtuels des autres processus, ce qui signifie qu'un processus peut accéder à l'adresse 0x1000 sans conflit avec un autre processus utilisant également 0x1000.
* Cet espace d'adressage virtuel est vaste, dépassant souvent de loin la RAM physique disponible. Cela permet aux processus d’utiliser plus de mémoire qu’il n’en existe physiquement.
2. Adresses physiques :
* Ce sont les adresses réelles dans la RAM physique. La MMU traduit les adresses virtuelles en adresses physiques.
* L'espace d'adressage physique est limité par la quantité de RAM installée dans le système.
3. L'unité de gestion de la mémoire (MMU) :
* La MMU est un composant matériel qui effectue la tâche cruciale de traduction des adresses virtuelles en adresses physiques. Il le fait en temps réel, chaque fois qu'un processus tente d'accéder à la mémoire.
* Il utilise la table des pages (décrite ci-dessous) pour effectuer la traduction.
4. Tableaux de pages :
* Les tables de pages sont des structures de données résidant en mémoire qui contiennent le mappage entre les pages virtuelles et les trames physiques.
* Pages : L'espace d'adressage virtuel est divisé en blocs de taille fixe appelés pages. Une taille de page typique est de 4 Ko.
* Cadres : La mémoire physique est également divisée en blocs de taille fixe appelés cadres, généralement de la même taille que les pages.
* La table des pages agit essentiellement comme une table de recherche. Étant donné un numéro de page virtuelle, il renvoie le numéro de trame physique correspondant.
5. Le processus de traduction (simplifié) :
1. Segmentation des adresses virtuelles : L'adresse virtuelle est divisée en deux parties :le numéro de page virtuelle (VPN) et le décalage de page.
2. Recherche dans la table des pages : Le VPN est utilisé comme index dans la table des pages pour trouver l'entrée correspondante. Cette entrée contient le numéro de cadre physique (PFN) et d'autres informations telles que les autorisations d'accès (lecture, écriture, exécution).
3. Construction d'adresse physique : Le PFN est combiné avec le décalage de page de l'adresse virtuelle d'origine pour créer l'adresse physique finale.
4. Accès à la mémoire : La MMU utilise ensuite cette adresse physique pour accéder à l'emplacement mémoire.
6. Tableaux de pages à plusieurs niveaux :
Pour éviter des tables de pages trop volumineuses (ce qui serait le cas si une seule table de page mappait l'intégralité de l'espace d'adressage virtuel), de nombreux systèmes utilisent des tables de pages à plusieurs niveaux. Cela crée une structure hiérarchique, où chaque niveau pointe vers le suivant, conduisant finalement au numéro de trame physique. Cela économise de la mémoire et améliore l'efficacité.
7. Tampon de recherche de traduction (TLB) :
Le TLB est un cache au sein de la MMU qui stocke les traductions d'adresses virtuelles vers physiques récemment utilisées. Cela accélère considérablement le processus de traduction, car l'accès au TLB est beaucoup plus rapide que l'accès à la mémoire principale pour consulter la table des pages. Si une traduction n'est pas trouvée dans le TLB (un échec du TLB), la MMU doit accéder à la table des pages, ce qui est nettement plus lent.
8. Pagination et échange :
* Pagination : Si un processus tente d'accéder à une page qui n'est pas actuellement dans la RAM (une erreur de page), le système d'exploitation charge la page nécessaire du stockage secondaire (disque dur) dans la RAM.
* Échange : Le système d'exploitation peut échanger les espaces d'adressage virtuels de processus entiers dans et hors de la RAM pour gérer efficacement la mémoire.
En résumé : Le mappage d'adresse virtuelle à adresse physique est un mécanisme complexe mais essentiel qui permet une gestion efficace de la mémoire, une protection et une exécution simultanée de plusieurs processus. La MMU, les tables de pages et le TLB fonctionnent ensemble pour effectuer cette traduction de manière transparente, la rendant transparente pour les applications.
|