Mémoire virtuelle
Ce cours s'intéresse au principe de la mémoire virtuelle. Il aborde notamment les
notions liées aux défauts de pages.
I- Principe de la mémoire virtuelle
La multiprogrammation implique de charger plusieurs programmes en mémoire
centrale de manière à obtenir un bon taux d'utilisation du processeur. Supposons
comme sur la figure 1 ici que l'exécution des programmes 1, 2 et 3 soit nécessaire
pour obtenir ce taux d'utilisation du cpu satisfaisant. On peut remarquer qu'une fois
les programmes 1 et 2 chargés dans la mémoire, toutes les cases sont occupées : le
programme 3 ne peut pas être chargé.
MPS 2002/2003 1
Mémoire virtuelle
Espaces d'adressage
des programmes
Case 1
Case 2
Case 3
Case 4
Case 5
Case 6
Case 7
Page 1
Page 2
Page 4
Page 3 Page 1-1
Page 3-2
Page 2-1
Page 4-1
Mémoire physique
Page 1
Page 2
Page 3
Page 1
Page 2
Page 4
Page 3
Programme 1
Programme 2
Programme 3
Page 2-2
Page 1-2
Page 3-1
N°page, processus
Fig 1 : Cas de figure
Lorsque l'on regarde l'exécution d'un processus, on s'aperçoit qu'à un instant donné
le processus n'accède qu'à une partie de son espace d'adressage (par exemple la
page de code couramment exécutée par le processeur et la page de données
correspondante). Les autres pages de l'espace d'adressage ne sont pas accédées et
sont donc inutiles en mémoire centrale. Une solution pour pouvoir charger plus de
programmes dans la mémoire centrale est donc de ne charger pour chaque
programme que les pages couramment utilisées. Ici par exemple, seules les pages
1,2 et 4 du processus 1 sont chargées ainsi que la page 3 du processus 2 et les
pages 1,2,3 du programme 3.
Puisque les pages d'un espace d'adressage de processus ne sont pas toutes
chargées en mémoire centrale, il faut que le processeur puisse détecter leur
éventuelle absence lorsqu'il cherche à effectuer une conversion d'adresse paginée
vers l'adresse physique. Chaque entrée de la table des pages comporte alors un
champ supplémentaire, le bit Validation V, qui est à vrai (1 ou V) si la page est
effectivement présente en mémoire centrale.
La figure 2 montre les valeurs des bits de validation pour les tables des pages des
trois processus 1, 2 et 3, en tenant compte des chargements de leurs pages en
mémoire centrale. Ainsi pour le processus 1, la page 1 est chargée dans la case 2, le
bit de validation est à vrai (V). La page 2 est chargée dans la case 4, le bit de
validation est à vrai. Par contre la page 3 n'est pas présente en mémoire centrale et
donc le bit de validation est à faux (I pour Invalide) : dans ce cas, le champs de
case n'a pas de signification.
MPS 2002/2003 2
Bit de validation
Case 1
Case 2
Case 3
Case 4
Case 5
Case 6
Case 7
Page 1
Page 2Page 4
Page 3 Page 1-1
Page 3-2
Page 2-3
Page 4-1
Mémoire physique
Page 1
Page 2
Page 3
Page 1
Page 2Page 4
Page 3
Programme 1
Programme 2
Programme 3
Page 1-3
Page 2-1
Page 3-3
V
V
I
V
2
4
-
7
I
I
V
-
-
3
V
V
V
I
5
6
1
-
Processus 1 Processus 3
Processus 2
Fig 2 : Bit de validation
II- Notion de défaut de pages
Que se passe-t-il à présent lorsque qu'un processus tente d'accéder à une page de
son espace d'adressage qui n'est pas en mémoire centrale ? Ici le processus 2
génère une adresse paginée portant sur la page 2. La MMU accède à la table des
pages pour effectuer la conversion adresse paginée, adresse physique et teste la
valeur du bit de validation : elle le trouve à faux, ce qui veut dire que la page n'est
pas chargée dans une case et donc la conversion ne peut être réalisée. Il se produit
alors un défaut de page : c'est un déroutement qui oblige le processeur à suspendre
l'exécution du programme en cours pour lancer une entrée/sortie qui charge la page
manquante en mémoire centrale dans une case libre.
Définition : défaut de page
Le défaut de page est un déroutement qui oblige le processeur à suspendre
l'exécution du programme en cours pour lancer une entrée/sortie qui charge la
page manquante en mémoire centrale dans une case libre.
Les figures 3 et 4 illustrent le mécanisme de défaut de page. Le processus cherche à
convertir l'adresse logique <p,d>. Il accède donc à l'entrée de sa table des pages
correspondant à l'entrée de la page p, et teste la valeur du bit de validation. Celui-ci
est à faux (I) indiquant ainsi que la page n'est pas présente. Automatiquement,
puisque la traduction vers l'adresse physique ne peut pas être faite, le système lève
un défaut de page, qui entraîne une entrée/sortie pour charger la page manquante
en mémoire centrale.
Le défaut de page charge la page manquante dans une case libre de la mémoire
centrale, puis le système met à jour l'entrée de la table des pages correspondant à la
page p : le bit de validation passe à vrai et le numéro de case physique contenant la
page p est renseigné. Enfin, la traduction vers l'adresse physique reprend.
MPS 2002/2003 3
Défaut de page Mémoire
pd
adresse table
Registre adresse
Table des pages
+
-
Table des pages
Adresse logique
I
1. Déroutement
E/S disque
Fig 3 : Mécanisme du défaut de pages
MPS 2002/2003 4
Défaut de page Mémoire
pd
adresse table
Registre adresse
Table des pages
+
5
Table des pages
Adresse logique
I
case libre
2 Chargement de la page
3. Mise à jour table des pages
4. Reprise
instruction
Fig 4 : Mécanisme du défaut de pages
III- Les algorithmes de remplacement de pages
Lors d'un défaut de page, la page manquante est chargée dans une case libre. La
totalité des cases de la mémoire centrale peut être occupée : il faut donc libérer une
case de la mémoire physique globalement (parmi l'ensemble des cases) ou
localement (parmi les cases occupées par les pages du processus en défaut).
Le système d'exploitation utilise un algorithme pour choisir une case à libérer. Les
deux principaux algorithmes sont :
- FIFO (First In, First Out)
- LRU (Least Recently Used)
III.1- Algorithme de remplacement de pages FIFO
Avec cet algorithme, c'est la page la plus anciennement chargée qui est remplacée.
La figure 5 donne un exemple du fonctionnement de cet algorithme où l'on suppose
une mémoire centrale composée de trois cases initialement vides. La lettre D signale
l'occurrence de défaut de pages.
MPS 2002/2003 5
Algorithmes de remplacement de page
FIFO : la page la plus anciennement chargée est la page remplacée
Chaine de rérence
7 0 1 2 0 3 0 4 2 3 0
7 7
0
7
0
1
2
0
1
2
0
1
2
3
1
2
3
0
4
3
0
4
2
0
4
2
3
0
2
3
DDDDDDD
DDD
Fig 5 : Remplacement de pages FIFO
III.2- Algorithme de remplacement de pages LRU
Avec cet algorithme, c'est la page la moins récemment accédée qui est remplacée.
La figure 6 donne un exemple du fonctionnement de cet algorithme où l'on suppose
une mémoire centrale composée de trois cases initialement vides. La lettre D signale
l'occurrence de défaut de pages.
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!