Dans les systèmes d'exploitation, la pagination est un mécanisme de stockage utilisé pour récupérer les processus du stockage secondaire vers la mémoire principale sous forme de pages.
L'idée principale derrière la pagination est de diviser chaque processus sous forme de pages. La mémoire principale sera également divisée sous forme de frames.
maître d'origine git pull
Une page du processus est à stocker dans l'un des cadres de la mémoire. Les pages peuvent être stockées aux différents emplacements de la mémoire mais la priorité est toujours de retrouver les cadres ou trous contigus.
Les pages du processus sont placées dans la mémoire principale uniquement lorsqu'elles sont nécessaires, sinon elles résident dans la mémoire secondaire.
Différents systèmes d'exploitation définissent différentes tailles de trame. Les tailles de chaque cadre doivent être égales. Compte tenu du fait que les pages sont mappées sur les cadres dans Paging, la taille de la page doit être la même que la taille du cadre.
Exemple
Considérons que la taille de la mémoire principale est de 16 Ko et que la taille de la trame est de 1 Ko. La mémoire principale sera donc divisée en une collection de 16 images de 1 Ko chacune.
carte dactylographiée
Il existe 4 processus dans le système : P1, P2, P3 et P4 de 4 Ko chacun. Chaque processus est divisé en pages de 1 Ko chacune afin qu'une page puisse être stockée dans un cadre.
Initialement, toutes les trames sont vides, donc les pages des processus seront stockées de manière contiguë.
Les cadres, les pages et le mappage entre les deux sont illustrés dans l'image ci-dessous.
Considérons que P2 et P4 passent à l’état d’attente après un certain temps. Désormais, 8 cadres deviennent vides et d'autres pages peuvent donc être chargées à cet endroit vide. Le processus P5 de taille 8 Ko (8 pages) est en attente dans la file d'attente prête.
Étant donné que nous disposons de 8 trames non contiguës disponibles dans la mémoire, la pagination offre la flexibilité de stocker le processus à différents endroits. On peut donc charger les pages du processus P5 à la place de P2 et P4.
Unité de gestion de la mémoire
Le but de l'unité de gestion de la mémoire (MMU) est de convertir l'adresse logique en adresse physique. L'adresse logique est l'adresse générée par le CPU pour chaque page tandis que l'adresse physique est l'adresse réelle de la trame où chaque page sera stockée.
qu'est-ce que le hashset java
Lorsqu'une page doit être accessible par le processeur à l'aide de l'adresse logique, le système d'exploitation doit obtenir l'adresse physique pour accéder physiquement à cette page.
L'adresse logique comporte deux parties.
la modulation d'amplitude
- Numéro de page
- Compenser
L'unité de gestion de la mémoire du système d'exploitation doit convertir le numéro de page en numéro de trame.
Exemple
Compte tenu de l'image ci-dessus, disons que le CPU demande le 10ème mot de la 4ème page du processus P3. Étant donné que la page numéro 4 du processus P1 est stockée dans la trame numéro 9, le 10ème mot de la 9ème trame sera renvoyé comme adresse physique.