Le calcul d'une adresse de pagination implique la traduction d'une adresse logique (l'adresse utilisée par le programme) en une adresse physique (l'adresse dans la mémoire principale). Cette traduction est gérée par l'unité de gestion de la mémoire (MMU). Le processus dépend des spécificités du système de radiomessagerie, mais les étapes générales sont les suivantes :
1. Divisez l'adresse logique en parties :
L'adresse logique est divisée en deux parties :
* Numéro de page (PN) : Cela indique à quelle page de l'espace d'adressage logique le programme fait référence. Le nombre de bits utilisés pour le numéro de page dépend de la taille de la page et de la taille de l'espace d'adressage logique.
* Décalage de page (PO) : Cela indique le décalage dans la page référencée. Le nombre de bits utilisés pour le décalage de page est déterminé par la taille de la page (par exemple, une taille de page de 4 Ko utilise 12 bits pour le décalage car 2
12
=4096).
Exemple : Disons que nous avons une adresse logique de 32 bits et une taille de page de 4 Ko (2
12
octets).
* Décalage de page (PO) : 12 bits (2
12
=4096 octets)
* Numéro de page (PN) : 20 bits (32 - 12 =20 bits)
2. Consultez le tableau des pages :
Le numéro de page (PN) est utilisé comme index dans la table des pages. La table des pages est une structure de données gérée par le système d'exploitation qui mappe les pages logiques aux trames physiques. Chaque entrée de la table des pages contient :
* Numéro de cadre (FN) : Numéro du cadre physique dans la mémoire principale où réside la page correspondante.
* Bit valide/invalide : Indique si la page est actuellement dans la mémoire principale (valide) ou non (invalide – probablement sur le stockage secondaire). D'autres indicateurs peuvent également être présents (par exemple, bit sale, bits de protection).
3. Construisez l'adresse physique :
Si l'entrée de la table de pages pour le PN donné est valide, l'adresse physique est construite en concaténant le numéro de trame (FN) et le décalage de page (PO).
* Adresse physique =Numéro de trame (FN) || Décalage de page (PO)
Exemple (suite) :
Disons que l'adresse logique est « 0x0000FFFF ».
* Bon de commande : `0xFFFF` (12 bits)
* PN : `0x0000` (20 bits)
La MMU utilise PN (`0x0000`) pour rechercher l'entrée correspondante dans la table des pages. Supposons que l'entrée de la table des pages pour le PN `0x0000` contient :
* FN : `0x1000` (Il s'agit du numéro de trame dans la mémoire physique)
* Bit valide : 1 (Valide)
L’adresse physique est donc :
* Adresse physique =`0x1000FFFF`
Passage à plusieurs niveaux :
Dans les systèmes dotés de grands espaces d'adressage, une pagination à plusieurs niveaux est utilisée. Cela implique plusieurs tables de pages (par exemple, un répertoire de pages pointant vers des tables de pages, qui pointent ensuite vers des cadres physiques). Le processus est similaire mais nécessite plusieurs recherches dans la table pour déterminer le numéro de trame final.
Segmentation :
La segmentation est un schéma de gestion de mémoire différent qui divise la mémoire en segments de taille variable. La pagination et la segmentation peuvent également être combinées. Le calcul de l'adresse dans ces schémas est plus complexe.
En résumé, le calcul de l'adresse de radiomessagerie implique l'utilisation de l'adresse logique pour trouver l'adresse physique correspondante via une série de recherches dans des tables. Les détails exacts dépendent de l'architecture spécifique et de la mise en œuvre de la gestion de la mémoire du système d'exploitation.
|