Faculté des Sciences de Gab`es Département Informatique

Transcription

Faculté des Sciences de Gab`es Département Informatique
Faculté des Sciences de Gabès
Département Informatique
Systèmes d’exploitation 2
Ch 4: Gestion de la mémoire virtuelle
Section: LFSI2/LARI2
A.U: 2014/2015
1
La pagination
La pagination permet d’avoir en mémoire un processus dont les adresses ne sont pas adjacentes. Pour réaliser ceci on partage l’espace d’adressage du processus en page et la mémoire
physique en cadre de même taille (Quelque KO). Les pages du processus sont chargées dans les
cadres libres de la mémoire.
2
Principe de la mémoire virtuelle
La mémoire virtuelle permet d’exécuter des programmes dont la taille dépasse la taille de la
mémoire réelle. Pour cela, on découpe les processus en pages et la mémoire en cadres de même
taille.
L’encombrement total du processus constitue l’espace d’adressage ou la mémoire virtuelle. Cette
mémoire virtuelle réside sur le disque. Le sous-ensemble de pages chargées en mémoire centrale
est appelé l’espace physique ou l’espace réel.
Lorsqu’une adresse est générée(le processus demande une adresse virtuelle ”Logique”), elle est
transcodée grâce à une table de pages (appelée aussi table de transcodage) pour lui faire correspondre son équivalent en mémoire physique. Ce transcodage est effectué par le MMU (Memory
Management unit ”Unité de gestion de mémoire”). Si cette adresse correspond à une adresse
physique, le MMU transmet sur le bus l’adresse réelle (physique) sinon il se produit un défaut
de page. Pour pouvoir accéder à la page dont est générée l’adresse, on devra préalablement la
charger en mémoire réelle. Si la mémoire est saturée, on choisit parmi les pages chargées en
mémoire réelle une page victime(en utilisant un algorithme de remplacement). Si cette dernière
a été modifiée, on la rapporte en mémoire virtuelle et on charge à sa place la page à laquelle on
désire accéder.
La taille de la mémoire virtuelle est fixée par la taille des registres, la plupart des machines
ont des registres de 32 bits donc les adresses logiques varient entre 0 et 232 − 1 c-à-d un espace
d’adressage de 4 GO.
3
Performance de la mémoire virtuelle
Le temps de traitement d’une faute de page (le choix d’une page victime, l’accès au disque,
le transfert, etc.) sera à l’ordre de 20 ms (10−3 s) à comparer avec un temps d’accès à la mémoire
de l’ordre de 80 ns (10−9 s). Si le taux de faute de page est P alors le temps d’accès à la mémoire
virtuelle sera :
T = (1 − p) ∗ 80ns + p ∗ 20ms.
(1)
On peut améliorer la performance de la mémoire virtuelle de 2 manières :
– Réduire le temps d’accès au disque.
– Réduire la valeur de p par le choix d’un algorithme de remplacement de page adéquat.
1
4
Caractéristique d’un algorithme de demande de page
1. Statique ou dynamique : Un algorithme statique alloue un nombre fixe de cadres pour
chaque processus. Un algorithme dynamique permet de changer le nombre de cadre d’un
processus en cours d’exécution.
2. Stratégie de chargement : Quand une page doit être chargée dans un cadre, on peut
choisir la demande de page pure (une page n’est chargée que si elle est demandée). On
peut aussi décider de pré-paginer c’est-à-dire de charger à l’avance un certain nombre de
pages dans des cadres.
3. Stratégie de remplacement : S’il n’y a pas des cadres libres, quelle page occupant un
cadre doit être tuée pour placer la nouvelle page.
4. Stratégie de placement : Dans quel cadre la la page doit être chargée ? Les choix sont
liées. Par exemple, si on choisit un algorithme statique alors la stratégie de placement est
imposée : une nouvelle page est toujours chargée dans le cadre qui vient d’être libéré par
l’algorithme de remplacement de page.
5
Algorithme statique de remplacement
Le meilleur algorithme est celui qui produit le moins de fautes de pages. Nous allons les
comparer à partir d’un exemple simple d’un processus qui dispose de 8 pages (numérotés de
0 à 7) et qui lui alloué 3 cadres de pages (initialement vides). Nous supposons qu’au cours de
l’exécution du processus, la séquence de demande de page est la suivante :
0-1-2-3-0-1-2-0-3-0-2-3-4-5-6-7
5.1
PAPS (FIFO)
C’est l’algorithme le plus simple qui peut être utilisé lorsqu’un défaut de page se produit,
c’est la page qui occupe depuis le plus long temps un cadre est tué (victime).
PAPS se base sur la durée de temps qu’une page a passé dans la mémoire et non sur son
taux d’utilisation. En pratique, PAPS est très peut utilisé, son seul avantage étant sa simplicité
d’implémentation.
Cadre 0 1 2 3 0 1 2 0 3 0 2 3 4 5 6 7
0
0 0 0 3 3 3 2 2 2 2 2 2 4 4 4 7
1
1 1 1 0 0 0 0 3 3 3 3 3 5 5 5
2
2 2 2 1 1 1 1 0 0 0 0 0 6 6
FDP X X X X X X X
X X
X X X X
Nombre de fautes de pages=13.
5.2
LRU (Least Recently Used) : Moins récemment utilisé
Lorsque un FDP se produit, la
Cadre 0 1 2 3 0 1
0
0 0 0 3 3 3
1
1 1 1 0 0
2
2 2 2 1
FDP X X X X X X
Nombre de fautes de pages=12.
victime est
2 0 3
2 2 2
0 0 0
1 1 3
X
X
la plus ancienne page utilisée.
0 2 3 4 5 6 7
2 2 2 2 5 5 5
0 0 0 4 4 4 7
3 3 3 3 3 6 6
X X X X
2
5.3
MRU (Most Recently Used) :Plus récemment utilisé
Lorsque un FDP se produit, la victime est la dernière page utilisée.
Cadre 0 1 2 3 0 1 2 0 3 0 2 3 4 5 6 7
0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1
1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
2
2 3 3 3 3 3 3 3 3 3 4 5 6 7
FDP X X X X
X
X X X X
Nombre de fautes de pages=9.
5.4
LFU (Least Frequently used) : Moins fréquemment utilisé
Lorsqu’une faute de page se produit, c’est la page qui été la moins référencée (moins au
nombre d’utilisation) qui est tuée. En cas d’égalité on choisit aléatoirement ou on applique un
autre algorithme.
Cadre 0 1 2 3 0 1 2 0 3 0 2 3 4 5 6 7
0
0 0 0 3 3 3 2 2 2 2 2 2 4 5 6 7
1
1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
2
2 2 2 1 1 1 3 3 3 3 3 3 3 3
FDP X X X X X X X
X
X X X X
Nombre de fautes de pages=12.
5.5
Algorithme optimal de Belady
Lorsqu’une faute de page se produit, c’est la
Cadre 0 1 2 3 0 1 2 0 3 0
0
0 0 0 0 0 0 0 0 0 0
1
1 1 1 1 1 2 2 2 2
2
2 3 3 3 3 3 3 3
FDP X X X X
X
Nombre de fautes de pages=9.
3
page qui sera utilisée le plus loin qui est tuée.
2 3 4 5 6 7
0 0 4 5 6 7
2 2 2 2 2 2
3 3 3 3 3 3
X X X X