0% ont trouvé ce document utile (0 vote)
59 vues34 pages

La Mémoire Virtuelle

La mémoire virtuelle permet l'exécution de processus partiellement chargés en mémoire centrale, augmentant ainsi la capacité d'exécution des programmes. Des techniques comme le recouvrement et la pagination à la demande sont utilisées pour gérer l'allocation de mémoire, permettant de charger des pages uniquement lorsque nécessaire. Les algorithmes de remplacement de pages, tels que FIFO, sont appliqués pour minimiser les défauts de pages, bien qu'ils puissent parfois entraîner des anomalies comme l'anomalie de Belady.

Transféré par

qh2h2rb8j8
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPSX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
59 vues34 pages

La Mémoire Virtuelle

La mémoire virtuelle permet l'exécution de processus partiellement chargés en mémoire centrale, augmentant ainsi la capacité d'exécution des programmes. Des techniques comme le recouvrement et la pagination à la demande sont utilisées pour gérer l'allocation de mémoire, permettant de charger des pages uniquement lorsque nécessaire. Les algorithmes de remplacement de pages, tels que FIFO, sont appliqués pour minimiser les défauts de pages, bien qu'ils puissent parfois entraîner des anomalies comme l'anomalie de Belady.

Transféré par

qh2h2rb8j8
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPSX, PDF, TXT ou lisez en ligne sur Scribd

Introduction

Définition Mémoire centrale


Objectifs du gestionnaire de la MC
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle

Dr. Hamza Nemouchi


[email protected]

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
Objectifs du gestionnaire de la MC
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle :

• La mémoire virtuelle (Virtual Memory) permet l’exécution de processus ne


pouvant pas être chargés dans leur totalité en MC.
• Un processus est donc constitué de morceaux (pages ou segments) ne nécessitant pas
d’être tous en MC durant l’exécution. Afin qu’un programme soit exécuté, seulement
les morceaux qui sont en exécution ont besoin d’être en MC. Les autres morceaux
peuvent être sur mémoire secondaire (Ex. disque en général), prêts à être amenés en
MC sur demande.
La capacité d’exécuter un processus se trouvant partiellement en mémoire présenterait
plusieurs avantages :
• La taille d’un programme n’est plus limitée par la taille de la mémoire physique.
• Exécuter des programme avec une taille supérieur a la taille de la MC
• Comme chaque programme utilisateur pourrait occuper moins de mémoire physique,
il serait possible d’exécuter plus de programmes en même temps.

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Recouvrement

Recouvrement
Le recouvrement (Overlay) est une technique qui permet de remplacer une partie de la
MC par une autre.
À un instant donné, un programme n'utilise qu'une petite partie du code et des données
qui le constituent. Les parties qui ne sont pas utiles en même temps peuvent donc se
“recouvrir” ; c'est-à-dire, occuper le même emplacement en mémoire physique.

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Recouvrement

Considérons un code assembleur composé deux passes. Passe 1, Passe 2, table des symboles
et des routines communes. La taille de chaque élément est:
• Passe 1: 8K
• Passe 2: 10K
• Table des symboles : 14K
• Routines communes: 5K.
#include <stdio.h>
La taille de mémoire disponible est de 32Ko.
int main() {
int a = 5;
int b = 3;
Exemple d’un programme int sum = a + b;

printf("La somme est : %d\n", sum);


return 0;
}

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Recouvrement


section .data
msg db "La somme est : %d", 10, 0
#include <stdio.h> section .bss
sum resd 1 ; Allouer un espace pour la variable "sum"
section .text
int main() { global _start

int a = 5; _start:
int b = 3; mov eax, 5 ; Charger la valeur 5 dans eax (pour a)
mov ebx, 3 ; Charger la valeur 3 dans ebx (pour b)
int sum = a + b; add eax, ebx ; additionner eax et ebx et stocker dans eax
mov [sum], eax ; stocker le résultat dans sum
push dword [sum] ; Mettre la somme au sommet de la pile
printf("La somme est : %d\n", sum); push dword msg ; Mettre l'adresse du message sur la pile
return 0; call printf ; Appeler printf
mov eax, 1 ; Code du syscall pour "exit"
} xor ebx, ebx ; Code de retour 0
int 0x80 ; Appel système pour quitter

Passe 1 = 8 Ko

Passe 1 crée la table de symboles


Passe 2 = 10 Ko
Dr. Hamza Nemouchi Système d’exploitation 2
Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Recouvrement

On remarque que passe 1 et passe 2 ne peuvent pas être exécuté simultanément.

Table des symboles 14 ko


Table des symboles
Routine communes 5 ko
32 ko
Routines communes Gestionnaire d’overlay 2 ko
11 ko

Passe 1 Passe 2
Passe 1 Passe 2
8 ko 10 ko

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Pagination à la demande

Le principe de la mémoire virtuelle


est couramment implémenté avec la
pagination à la demande (On-
Demand Paging).
Dans la pagination à la demande on
utilise un swapping paresseux (Lazy
Swapping) qui ne transfère une page
en mémoire que si l’on a besoin.
Chaque entrée de la table des pages
comporte un champ supplémentaire,
le bit validation V (Valid-Invalid
Bit), qui est à Valide (i.e. 1) si la page
est effectivement présente en MC,
Invalide (i.e. 0) sinon. Initialement,
ce bit est initialisé à Invalide pour
toutes les entrées de la table.
Dr. Hamza Nemouchi Système d’exploitation 2
Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Pagination à la demande

Suite de référence: Une suite de référence est une séquence d'adresses de


pages ayant fait l'objet de références successives pendant une exécution.

Exemple: Un processus qui génère la séquence suivante d'adresses pendant son


exécution (100, 432, 101, 612, 102, 103, 104, 101, 611)
sera représenté par la séquence suivante: (1, 4, 1, 6, 1, 6).

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Pagination à la demande

Mais que se passe-t-il si le processus essaye


d’utiliser une page qui n’est pas chargée en
mémoire ?

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Pagination à la demande

Charger la page demandé dans un frame

Frame libre Pas de Frame libre

Déroutement !
(défaut de page)

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Si je trouve un frame libre


Alors charger la page
mettre a jours la table des pages
sinon exécuter un algorithme de remplacement ( choisir un page victime)

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Comment choisir la page victime ?

Algorithme de remplacement :
Il existe plusieurs algorithmes de remplacement de pages. Ces algorithmes sont
conçus dans l’objectif de minimiser le taux de défaut de pages à long terme.
L’évaluation de ces algorithmes s’effectue en comptant sur une même séquence de
références mémoires, le nombre de défauts de pages provoqués. Cette séquence est
appelée chaîne de références (Reference String) et elle est définie par la séquence
des numéros de pages référencées successivement au cours de l’exécution d’un
processus.

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme FIFO (FIFO Algorithm)


Cet algorithme mémorise dans une file FIFO les pages présentes en mémoire, de
la page la plus ancienne à la page la plus récente. Lorsqu'un défaut de page se
produit, il retire la plus ancienne ; c'est-à-dire, celle qui se trouve en tête de file.
Une nouvelle page est placée en queue de file.

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
Frame 1 7 7 7 2 2 2 2 4 4 4 0 0 0 0 0 0 0 7 7 7
Frame 2 0 0 0 0 3 3 3 2 2 2 2 2 1 1 1 1 1 0 0
Frame 3 1 1 1 1 0 0 0 3 3 3 3 3 2 2 2 2 2 1
Défauts D D D D D D D D D D D D D D D
de page
Taux de défauts de pages 15/20*100=75%

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

L’algorithme FIFO est simple à mettre en œuvre. Cependant, cet algorithme ne tient
pas compte de l'utilisation de chaque page. Par exemple, à la dixième référence la page
0 est retirée pour être remplacée par la page 3 puis tout de suite après, la page retirée
est rechargée. L'algorithme est rarement utilisé car il y a beaucoup de défauts de page.

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Anomalie de Belady (Belady’s Anomaly)


Intuitivement, on peut penser que plus il y a de frames disponibles, moins il y a de défauts
de pages. Ceci n’est pas toujours le cas. Belady a montré par un contre-exemple que
l’algorithme FIFO donne plus de défauts de pages avec l’accroissement du nombre de
frames. Ceci est connu sous le nom de l’anomalie de Belady.

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Contre exemple de Belady:


Appliquer l’algorithme FIFO sur la chaîne de références
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

En considérant les deux cas suivants :


1er cas : Trois (03) frames disponibles.
1 2 3 4 1 2 5 1 2 3 4 5
Frame 1 1 1 1 4 4 4 5 5 5 5 5 5
Frame 2 2 2 2 5 5 5 5 5 3 3 3
Frame 3 3 3 3 2 2 2 2 2 4 4
Défauts D D D D D D D D D
de page
Taux de défauts de pages 9/12*100=75%
Dr. Hamza Nemouchi Système d’exploitation 2
Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Contre exemple de Belady:


Appliquer l’algorithme FIFO sur la chaîne de références
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
En considérant les deux cas suivants :
2eme cas : Trois (04) frames disponibles.
1 2 3 4 1 2 5 1 2 3 4 5
Frame 1 1 1 1 1 1 1 5 5 5 5 4 4
Frame 2 2 2 2 2 2 2 1 1 1 1 5
Frame 3 3 3 3 3 3 3 2 2 2 2
Frame 4 4 4 4 4 4 4 3 3 3
Défauts D D D D D D D D D D
de page
Taux de défauts de pages 10/12*100=83,83%
Dr. Hamza Nemouchi Système d’exploitation 2
Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme Optimal:

Algorithme de remplacement optimal (Belady ou Optimal Algorithm)


L'algorithme optimal de Belady consiste à retirer la page qui sera référencée le plus tard
possible dans le futur ; c’est-à-dire, la page pour laquelle la prochaine référence est la
plus éloignée dans le temps.
Cette stratégie est impossible à mettre en œuvre car il est difficile de prévoir les
références futures d'un programme. Le remplacement de page optimal a été cependant
utilisé comme base de référence pour les autres stratégies, car il minimise le nombre de
défauts de page.

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme Optimal:

Appliquer l’algorithme de Belady (optimal) sur la chaîne de références ci-après, avec trois (03)
blocs disponibles.

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
Frame 1 7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2 7 7 7
Frame 2 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 0 0
Frame 3 1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1
Défauts D D D D D D D D D
de page
Taux de défauts de pages 9/20*100=45%

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme LRU (Least Recently Used Algorithm):


Avec l'algorithme LRU, la page la moins récemment utilisée est retirée. Cette stratégie utilise
le principe de la localité temporelle selon lequel les pages récemment utilisées sont celles
qui seront référencées dans le futur.

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme LRU (Least Recently Used Algorithm):


• Appliquer l’algorithme LRU sur la chaîne de références ci-après, avec trois (03) blocs
disponibles.
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
Frame 1 7 7 7 2 2 2 2 4 4 4 0 0 0 1 1 1 1 1 1 1
Frame 2 0 0 0 0 0 0 0 0 3 3 3 3 3 3 0 0 0 0 0
Frame 3 1 1 1 3 3 3 2 2 2 2 2 2 2 2 2 7 7 7
Défauts D D D D D D D D D D D D
de page
Taux de défauts de pages 12/20*100=60%

Le problème avec cet algorithme est la difficulté d'implémentation, qui requiert


un support matériel. Il faut une manière de mémoriser le temps à chaque fois
qu'une page est référencée.
Dr. Hamza Nemouchi Système d’exploitation 2
Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme LFU (Least Frequently Used Algorithm):

Cette stratégie consiste à suivre le nombre d'accès de chaque page à l’aide d’un compteur.
La page ayant le nombre d’accès le plus bas sera celle qui sera déchargée en priorité.

Remarque:
Lorsque deux éléments ont le même compteur dans l'algorithme LFU, il existe plusieurs
stratégies pour décider laquelle enlever. La plus courante est de retirer l'élément le plus
ancien parmi ceux ayant le même compteur.

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme LFU (Least Frequently Used Algorithm):


Appliquer l’algorithme LFU sur la chaîne de références ci-après, avec trois (03) blocs disponibles.
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
Frame 1 7 7 7 2 2 2 2 4 4 3 3 3 3 3 3 3 3 3 3 3
Cpt_Ref 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2
Frame 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Cpt_Ref 1 1 1 2 2 3 3 3 3 4 4 4 4 4 5 5 5 6 6
Frame 3 1 1 1 3 3 3 2 2 2 2 2 1 2 2 1 7 7 1
Cpt_Ref 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 1 1 1
Défauts D D D D D D D D D D D D D
de page
Taux de défauts de pages 13/20*100=65%

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme de seconde chance (Second Chance Algorithm)


Cet algorithme, aussi appelé algorithme de l’horloge, est une approximation de
l'algorithme LRU. Dans cet algorithme, les pages en mémoire sont mémorisées dans une
liste circulaire en forme d'horloge.

Notion de bit de référence:


Un pointeur désigne la page la plus ancienne. Lorsqu'un défaut de page se produit, la page
indiquée par le pointeur est analysée.
 Si le bit de référence de cette page est à 0, elle est supprimée, la nouvelle page est
insérée à sa place, et le pointeur se déplace d'une position.
 Le bit de référence est réinitialisé à 0 et le pointeur avance d'une position.
 Une page ajoutée, son bit de référence est initialisé à 1.
Dr. Hamza Nemouchi Système d’exploitation 2
Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme de seconde chance (Second Chance Algorithm)

Trouve_Page_Victime()
Début
Etiq: Si (P.Bit_Ref = 0) alors
page_victime.find = VRAI;
Ecrire_Disque(page_victime);
Lire_Disque(page);
P  P.svt;
sinon
P.Bit_Ref  0;
P  P.svt;
Goto Etiq;
Fsi;
Fin.

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme de seconde chance (Second Chance Algorithm)

Appliquer l’algorithme de la seconde chance sur la chaîne de références ci-après, avec trois
(03) blocs disponibles.

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
Frame 1 7 7 7 2 2 2 2 4 4 4 4 3 3 3 3 0 0 0 0 0
Frame 2 0 0 0 0 0 0 0 2 2 2 2 2 1 1 1 1 7 7 7
Frame 3 1 1 1 3 3 3 3 3 0 0 0 0 2 2 2 2 2 1
Défauts D D D D D D D D D D D D D D
de page
Taux de défauts de pages 14/20*100=70%

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme NRU (Not Recently Used)

• Cet algorithme utilise les bits R et M ensemble pour déterminer les pages non
récemment utilisées.
• Le bit M (Modification Bit) désigne si une page a été modifié récemment, si c’est le
cas, une sauvegarde de cette dernière sur le disque est nécessaire.
• M = 1 désigne une page modifiée et M = 0 désigne une page non modifié.
• A chaque référence, si le bit de référence R d’un page modifiée est égale à 1. Le bit
de modification M = 0*
• L'Astérix (*) désigne que la page doit être sauvegarder sur le disque.

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Algorithme de remplacement de page victime

Algorithme NRU (Not Recently Used)

 Lorsqu'un défaut de page se produit, l'algorithme NRU sélectionne la page à retirer en


procédant comme suit :
• Il vérifie s'il existe des pages non référencées et non modiées (R=0 et M=0).
• Sinon, il vérifie s'il existe des pages non référencées et modifées (R=0 et M=1).
• Sinon, il vérifie s'il existe des pages référencées et non modifées (R=1 et M=0).
• Sinon, il sélectionne une page référencée et modifiée et la retire (R=1 et M=1).

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La mémoire virtuelle  Comparaison des algorithmes de remplacement

Comparaison des algorithmes de remplacement en terme de défaut de page en fonction du


nombre de frame
Comparaison des algortihmes de remplacements
80
FIFO LRU LFU Optimal
70
Taux de défauts de page en %

60

50

40

30

20

10

0
2 3 4 5 6 7 8 9 10 11

Nombre de frame dans la mémoire centrale

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La gestion de la mémoire centrale  Exercice:

Une mémoire segmentée paginée  Taille_Case = 4 Ko.


La mémoire centrale compte au total 15 cases numérotées de 1 à 15.
Deux processus A et B.
Le processus A est composé de 3 segments S1A = 8 Ko, S2A = 12 Ko et S3A = 4 Ko.
Le processus B est composé de 2 segments S1B = 16 Ko et S2B = 8 Ko .
Le processus A: Les pages 1 et 2 du segment S1A, la page 2 du segment S2A et la page 1 du
segment S3A sont chargées en mémoire centrale respectivement dans les cases 4, 5, 10, 6.
Le processus B: Les pages 2 et 3 du segment S1B et la page 1 du segment S2B sont chargées
en mémoire centrale respectivement dans les cases 11, 2 et 15.
1. Représenter par un schéma les structures allouées (table des segments, tables des pages)
et la mémoire centrale correspondant à l’allocation décrite.

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La gestion de la mémoire centrale  Exercice:


Table Base Bit_V
0
Processus A P1 12288 1
1
4
S1A _Page_1 P2 16384 1 2

S1AS1A
8
_Page_2 Table Base Bit_V
3
Seg Base L 12
S2A _Page_1 S1A 12288 8 Ko P1 - 0 16
4

S2AS2A
_Page_2 S2A 36864 12 Ko P2 36864 1 20
5

S2A _Page_3 S3A 20480 4 Ko P3 - 0


24
6

S3AS3A
_Page_1 Table Base Bit_V
28
7

8
P1 20480 1
32
Processus B Table Base Bit_V 36
9
10
S1B _Page_1 P1 - 0 40
11
S1B _Page_2 P2 40960 1 44
S1B 12
S1B _Page_3 Seg Base L P3 4096 1 48
13
S1B _Page_4 S1B 40960 16 Ko P4 - 0 52
14
S2B _Page_1 Table Base Bit_V 56
S2B S2B 57344 8 Ko 15
S2B _Page_2 P1 57344 1 60
P2 - 0 Mémoire Centrale
Dr. Hamza Nemouchi Système d’exploitation 2
Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

2. Soit l’adresse logique <S1A, 4108>. Quelle adresse réelle lui correspond-elle ?

<S1A, 4108>
(4018o < 8Ko) alors
 P = 4108 div 4096 = 1
 d = 4018 mod 4096 = 12
<S1A, P1, 12>
(Bit_V_P1 = VRAI) alors Seg Base L

S1A 12288 8 Ko
 @physique = @_base_page + d
S2A 36864 12 Ko
@physique = 12288 + 12 = 12300
S3A 20480 4 Ko

Table S1A Base Bit_V Table S2A Base Bit_V Table S3A Base Bit_V

P1 12288 1 P1 - 0 P1 20480 1

P2 16384 1 P2 36864 1

P3 - 0

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

3. Soit l’adresse logique <S2B, 8202>. Quelle adresse réelle lui correspond-elle ?

<S2B, 8202> Seg Base L


(8202o < 8Ko) alors S1B 40960 16 Ko
 P = 8202 div 4096 = 2
S2B 57344 8 Ko
 d = 8202 mod 4096 = 10
<S2B, P2, 10>
Table S2B Base Bit_V Table S1B Base Bit_V
(Bit_V_P2 = FAUX) alors
P1 57344 1 P1 - 0
 Défaut de page (déroutement)
P2 - 0 P2 40960 1

P3 4096 1

P4 - 0

Dr. Hamza Nemouchi Système d’exploitation 2


Introduction
Définition Mémoire centrale
1. Recouvrement
Objectifs du gestionnaire de la MC
2. Pagination à la demande
Caractéristiques liées au chargement d’un programme
Stratégies d’allocation
Introduction

La gestion de la mémoire centrale  Exercice:


4. Adresses linéaires suivantes, 4098 pour le processus A, 12292 pour le processus A, 8212
pour le processus B. Donnez l’@ virtuelle et physique correspondantes à chacune.

@ linéaire 4098 est dans S1A car S1A  [0, 8192[ (taille 8 Ko)
 P = 4098 div 4096 = 1 et d = 4098 mod 4096 = 2
 Donc @virtuelle = <S1A, 1, 2>
 @physique = @base_page + d = 12290 (Bit_V_P1 = VRAI)

@ linéaire 12292 est dans S2A car S2A  [8192, 20480[ (Taille 12 Ko)
 P = 12292 div 4096 = 3 et d = 12292 mod 4096 = 4
 Donc @virtuelle = <S2A, 3, 4>
 Défaut de page (Bit_V_P2 = FAUX )

@ linéaire 8212 est dans S1B car S1B  [0, 16384[ (Taille 16 Ko)
 P = 8212 div 4096 = 2 et d = 8212 mod 4096 = 20
 Donc @virtuelle = <S1B, 2, 20>
 @physique = @base_page + d = 40980 (Bit_V_P2 = VRAI)
Dr. Hamza Nemouchi Système d’exploitation 2

Vous aimerez peut-être aussi