Le calcul d'une adresse physique à partir d'une adresse logique nécessite une unité de gestion de mémoire (MMU) et connaissance de la ou des tables de pages. Le processus comporte plusieurs étapes :
1. Segmentation (le cas échéant) :
* Certains systèmes utilisent la segmentation parallèlement à la pagination. Si la segmentation est utilisée, l'adresse logique est d'abord décomposée en un numéro de segment et un décalage au sein de ce segment. Le numéro de segment est ensuite utilisé pour localiser le descripteur de segment correspondant dans la table de segments. Le descripteur de segment contient des informations telles que l'adresse de base du segment dans la mémoire physique et sa limite (taille).
* Si le numéro de segment n'est pas valide ou si le décalage dépasse la limite du segment, une erreur de segmentation se produit.
2. Pagination :
* Que la segmentation soit utilisée ou non, la pagination est presque toujours impliquée dans les systèmes modernes. L'adresse logique (ou le décalage de l'étape de segmentation précédente) est divisée en un numéro de page et un décalage de page.
* Le numéro de page est utilisé comme index dans une table de pages . Ce tableau mappe les numéros de page virtuelles aux numéros de trames physiques. Chaque entrée de la table de pages contient le numéro de trame physique (ou un pointeur vers une table de pages de niveau inférieur dans une pagination multiniveau) où la page correspondante réside dans la mémoire physique.
* Passage à plusieurs niveaux : Pour gérer efficacement de très grands espaces d'adressage, les systèmes utilisent souvent des tables de pages à plusieurs niveaux (par exemple, à deux niveaux, à trois niveaux, etc.). Cela évite d’avoir un seul tableau de pages gigantesque. Dans ce cas, le numéro de page est décomposé davantage pour indexer des niveaux successivement inférieurs de tables de pages jusqu'à ce que le numéro de trame physique final soit trouvé. Chaque entrée dans une table de pages de niveau supérieur pointe vers le niveau suivant.
* Si une entrée de table de pages n'est pas présente (défaut de page), le système d'exploitation doit charger la page requise du stockage secondaire (par exemple, disque dur) dans la mémoire principale. Cela implique de suspendre le processus en cours.
3. Calcul de l'adresse physique :
* Une fois le numéro de trame physique obtenu à partir de la ou des tables de pages, l'adresse physique est calculé en concaténant le numéro de trame physique et le décalage de page . Le décalage de page reste inchangé tout au long du processus de traduction.
Formule (simplifiée pour la pagination à un seul niveau) :
`Adresse physique =(Numéro de page * Taille de la page) + Décalage de page`
Où:
* Numéro de page : Obtenu à partir de l'adresse logique.
* Taille de la page : Une constante définie par le système (par exemple, 4 Ko).
* Décalage de page : Obtenu à partir de l'adresse logique.
En résumé : La MMU utilise l'adresse logique et les tables de pages pour effectuer la traduction d'adresse. Le processus consiste à rechercher des entrées dans les tables de pages pour trouver le numéro de trame physique correspondant au numéro de page logique, puis à le combiner avec le décalage de page pour obtenir l'adresse physique finale. La complexité augmente avec l'utilisation de la segmentation et de la pagination multi-niveaux. Le système d'exploitation joue un rôle crucial dans la gestion des tables de pages et la gestion des défauts de page.
|