1. Gestion de la mémoire
Algorithme de remplacement
Pr. My Driss LAANAOUI 1
2. Revue
• Quelle partie du matériel transforme les adresses logiques
en adresses physiques?
• Comment on appel l’événement quand une Trap est fait au
SE parce qu’une page n’est pas en mémoire?
• Quel problème est-ce que les tables de pages multiniveaux
résoudrent?
• Dans un Répertoire de page actives (RPA – TLB), quel genre
de mémoire doit on avoir pour accélérer les recherches?
• Pour un système avec une mémoire très, très grande, quelle
est notre solution pour remplacer les tables de pages qui
seraient effarantes?
2
3. Plan
• Pagination
• Remplacement de pages
• Algorithme LRU
• Algorithme PAPS
• Comparaison des algorithmes
• Application
• Segmentation
• Principe
• Application
• Segmetation vs pagination
• Solution hybride
3
4. Introduction
•On se rappel: la pagination suit un ensemble de
règles:
• Elle permet à un programme d’être chargé en mémoire
une page à la fois
• Il y a un genre de table qui identifie quelle page est
chargée dans quel cadre
• Quand une page est demandée et qu’elle n’est pas en
mémoire physique, un défaut de page se produit
• Le SE doit maintenant charger la page dans la mémoire. Si il n’y a
pas de cadre libre, une page doit être évincée de la mémoire.
Quelle page est choisit pour être évincée?
4
7. Introduction
Temps moyen d’accès à la mémoire
Supposons que:
• accès en mémoire: 100 nanosecs
• temps de traitement de défaut de page: 25 millisecs =
25,000,000 nanosecs
• p: probabilité de ne pas trouver une page en mémoire
(défaut) (quantité entre 0 et 1)
Alors Temps moyen d’accès mémoire:
(1-p) x 100 + p x 25,000,000
(pas de défaut + défaut)
7
8. Remplacement de pages
• Quoi faire si un processus demande une nouvelle page et il
n’y a pas de cadres libres en RAM?
• Il faudra choisir une page déjà en mémoire principale,
appartenant au même ou à un autre processus, qu’il est
possible d ’enlever de la mémoire principale
• la victime!
• Un cadre de mémoire sera donc rendu disponible
• Évidemment, plusieurs cadres de mémoire ne peuvent pas
être "victimisé":
• p.ex. cadres contenant le noyau du SE, tampons d ’E/S...
8
9. Remplacement de pages
•Choisir la victime de façon à minimiser le taux de
défaut de pages
•Page dont nous n`aurons pas besoin dans le futur?
impossible à savoir!
•Page pas souvent utilisée?
•Page qui a été déjà longtemps en mémoire.
9
10. Remplacement de pages
•Les algorithmes de choix de pages à remplacer
doivent être conçus de façon à minimiser le taux de
défaut de pages à long terme.
•Mais il ne peuvent pas impliquer des temps de
système excessifs, p.ex. mise à jour de tableaux en
mémoire pour chaque accès de mémoire.
•Ni l`utilisation de matériel dispendieux.
10
11. Remplacement de pages
•Il existe un ensemble d’algorithmes qui peuvent
être utilisés pour choisir quelle page va être la
meilleure candidate pour l’éviction
•Considérations:
• Les pages qui vont avoir été modifié doivent être écrites
sur le disque avant l’éviction
• L’utilisation de l’information d’état tel que les bits
d’utilisations (used) et de modifications (dirty) vont être
utiles pour prendre cette décision
• Ces algorithmes sont applicables à d’autres domaines de
recherche: caches, serveurs Web, etc...
11
12. Pagination
Le principe de la pagination est simple (sa mise en œuvre, par
contre, est assez complexe): l'espace d'adressage de chaque
programme est partagé en blocs de taille fixe (des tailles de 4-16KB
sont courantes), les pages, et seulement les pages en train d'être
utilisées sont chargées en mémoire. Le restant de l'espace
d'adressage est stocké sur le disque dur.
Les adresses physiques des pages en mémoire
sont stockées dans une page table.
DD
RAM
Espace
d'adressage
31 0
OS
Page Table
13. Pagination - Adressage
Une adresse virtuelle est donc composée de deux parties: un numéro
de page et un déplacement dans la page.
Cette transformation, réalisée par le MMU, permet d'une part de
travailler avec des espaces d'adressage plus grands que la mémoire
physique, et d'autre part de référencer des données sur une même
page avec peu de bits (ce qui permet l'utilisation de certains modes
d'adressage).
Numéro de page Déplacement
Base
31 12 11 0
25 12
MMU
Déplacement
11 0
Exemple:
Largeur des adresses = 32bits
Taille des pages = 4KB
Taille de la mémoire = 64MB
14. Pagination - Page faults
Une adresse virtuelle peut donc référencer soit une page en mémoire
(page hit) soit une page sur le disque dur (page miss).
Si la page cherchée se trouve sur le disque dur, le MMU engendre une
interruption (page fault) et une procédure se charge de transférer les
données en mémoire (une opération qui demande plusieurs millions de
cycles d'horloge).
La taille des pages est un paramètre fondamentale dans la
minimisation des page faults: une taille trop petite augmente le
nombre de page miss, et une taille trop grande augmente la pénalité
associé au transfert des données. Dans les systèmes actuels, la taille des
pages varie entre 4 et 16KB.
15. Pagination - Remplacement
Lors qu'une nouvelle page est transférée du disque dur à la mémoire,
il est parfois nécessaire d'en transférer une autre de la mémoire au
disque dur (swap).
Étant donné le "prix" très élevé d'un page fault, l'algorithme utilisé
pour décider quelle page va être "swappée" est fondamental pour la
performance d'un système. L'algorithme de choix pour cette opération
est le LRU (least recently used).
Si la mémoire est trop petite par rapport aux besoins d'un
programme, ou si l'algorithme de swap n'est pas efficace ou si les
données sont "mal" stockées, le phénomène appelé thrashing peut se
produire: la machine passe tout son temps à transférer des pages et
n'arrive pas à calculer.
16. Le MMU doit trouver l'adresse de la page physique
correspondant à une page virtuelle. Pour effectuer cette
opération, il consulte un tableau de pages (page table),
stocké en mémoire et géré par l'OS.
Page table address register
Pagination - Implémentation
Numéro de page Déplacement
Base
31 12 11 0
25 12
Déplacement
11 0
Exemple:
Largeur des adresses = 32bits
Taille des pages = 4KB
Taille de la mémoire = 64MB
VALID BIT
PAGE TABLE
17. Pagination - TLB
Pendant l'exécution d'un programme, la même page est
souvent référencée plusieurs fois de suite. Pour accélérer la
recherche de l'adresse physique, on utilise un "raccourci"
matériel: le TLB ou translation lookaside buffer (une petite
table dans le processeur). Page table address register
Numéro de page Déplacement
Base Déplacement
VALID BIT
PAGE TABLE
TLB
18. Algorithme LRU
•Ordre chronologique d’utilisation (LRU)
•Remplace la page dont la dernière référence
remonte au temps le plus lointain (le passé utilisé
pour prédire le futur)
• En raison de la localité des références, il s’agit de la
page qui a le moins de chance d’être référencée
• performance presque aussi bonne que l’algo. OPT
18
20. Algorithme LRU
• Chaque page peut être marquée (dans le descripteur dans la
table de pages) du temps de la dernière référence:
• besoin de matériel supplémentaire.
• La page LRU est celle avec la + petite valeur de temps
(nécessité d’une recherche à chaque défaut de page)
• On pourrait penser à utiliser une liste de pages dans l’ordre
d ’utilisation: perte de temps à maintenir et consulter cette
liste (elle change à chaque référence de mémoire!)
• D’autres algorithmes sont utilisés:
• LRU approximations
20
21. Algorithme PAPS
•Premier arrivé, premier sortie PAPS (FIFO)
• Facile à implémenter. Garde une liste de toutes les page
en mémoire en ordre quelles sont arrivées
• Sur un défaut de page, la page la plus vielle est enlevée et
une nouvelle page est ajoutée à la fin de la liste
• Avantage: Très facile à implémenter
• Désavantage: Aucune façon de déterminer si la page qui
est enlevée est en grande utilisation. L’âge peut être une
indication mais n’est pas nécessairement la meilleure
indication de l’utilisation d’une page.
21
22. Algorithme PAPS
•Logique: une page qui a été longtemps en mémoire
a eu sa chance d ’exécuter
•Les cadres forment conceptuellement un tampon
circulaire, débutant à la plus vieille page
• Lorsque la mémoire est pleine, la plus vieille page est
remplacée. Donc: “first-in, first-out”
•Simple à mettre en application
• tampon consulté et mis à jour seulement aux défauts de
pages...
•Mais: Une page fréquemment utilisée est souvent la
plus vielle, elle sera remplacée par FIFO!
22
24. Algorithme PAPS
•Les premières pages amenées en mémoire sont
souvent utiles pendant toute l’exécution d’un
processus!
• variables globales, programme principal, etc.
•Ce qui montre un problème avec notre façon de
comparer les méthodes sur la base d ’une séquence
aléatoire:
• les références aux pages dans un programme réel ne
seront pas vraiment aléatoires
24
25. Application
25
On considère un système de pagination dont la taille est égale à 4KO, la
mémoire physique est de 12 KO et le mot mémoire de 1 Octet.
1. Combien de cadres de pages contient cette mémoire?
2. Soit un programme de taille 24 KO, qui fait référence aux adresses
logiques suivantes:
2,5012,6200,2000,17800,50,13248,5741,9442,16524,23580,16895,22630,123
a. Donner pour chaque adresse, le numéro de page et le
déplacement dans la page (p,d)
b.Déduire la chaine de pages référencées durant l’execution de ce
programme
3. Calculer le taux de défaut de page résulté par un remplacement FIFO et
LRU. Quel algorithme minimise ce taux?