Stratégies de remplacement

publicité
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
CHAPITRE IV –LA
MÉMOIRE VIRTUELLE
Par :
Khaled Hassine
[email protected]
20/11/2016
Khaled Hassine
1
PLAN
Khaled Hassine
20/11/2016
2
PLAN
Généralités
Généralités
Gestion des adresses
Gestion des adresses
Techniques de transfert
Techniques de transfert
Stratégies de remplacement
20/11/2016
Cours Système d'exploitation
Khaled Hassine
Stratégies de remplacement
3
20/11/2016
Khaled Hassine
4
1
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Pourquoi une mémoire virtuelle ?

Constations :




Définition


Mémoire physique coûteuse.
Mémoire secondaire (disques, mémoire étendue,
...) peu coûteuse.
Programmes gourmands en mémoire et qui ne
"tiennent pas" toujours en RAM.


Khaled Hassine

5
support de l'ensemble des informations
potentiellement accessibles
Ensemble des emplacements dont l'adresse peut
être engendrée par le processeur.
20/11/2016
Khaled Hassine
6
Les vues de la mémoire
Les vues de la mémoire
Mémoire
virtuelle
Ensemble des emplacements de la mémoire
centrale
physiquement présents dans l'ordinateur.
Mémoire virtuelle =

Conséquence : Utiliser la mémoire secondaire
"comme" mémoire RAM.
20/11/2016
Mémoire physique =
Mémoire
de masse
Vue du
concepteur
Vue de
l'utilisateur
Mémoire
principale
N>>n
20/11/2016
Cours Système d'exploitation
Khaled Hassine
7
20/11/2016
Khaled Hassine
8
2
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Mécanisme de gestion
PLAN

Généralités

Gestion des adresses


Techniques de transfert
L'exécution des programmes engendre des adresses dites virtuelles.
Le mécanisme de gestion assure la traduction (dite aussi
translation) de ces adresses virtuelles en adresses réelles en
mémoire centrale.
Le mécanisme de gestion des adresses doit être capable de détecter
si une information se trouve en mémoire centrale ou non.
On dispose des structures : table de traduction (translation table)
 résidente en mémoire centrale,
 décrient le contenu de la mémoire centrale et celle de la
mémoire de masse.
Stratégies de remplacement
9
Khaled Hassine
20/11/2016
20/11/2016
De l’adresse virtuelle vers
l’adresse physique
adresses
virtuelles
0-4 K
4-8K
n° page
MMU
0
1
table des pages
x


8-12 K
3
0
4
12-16 K
16-20 K
4
1
5
16-20 K
2
x
3
2
20-24 K
24-28 K
4
8
28-32 K
5
24-28 K
6
28-32 K
7
32-36 K
8
36-40 K
9
40-44 K
10
44-48 K
11
x
x





x
Cours Système d'exploitation
Khaled Hassine
11
la traduction en adresse physique est facilement réalisée
on accède à l'information cherchée.
L'information ne se trouve pas en mémoire principale:

32-36 K
20/11/2016
L'adresse virtuelle correspond à un bloc en mémoire
principale :
4-8 K
2
20-24 K

0-4 K
8-12 K
12-16
8-12 KK
10
Le module de gestion des adresses
adresses
physiques
présence
Khaled Hassine
20/11/2016
Un événement (déroutement) dit de traitement de défaut de page est
généré.
Cet événement engendre l'interruption (abort) de l'instruction en cours
Donne la main au module de transfert pour charger la partie à exécuter (en
libérant si nécessaire de la place).
Ensuite, le module de gestion des adresses effectue la traduction de
l'adresse virtuelle en adresse physique
rend tout de suite la main au programme qui a causé l'abort pour terminer
normalement l'exécution.
Khaled Hassine
12
3
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Exécution d’une défaut de page
Remarques


Mémoire
virtuelle



Khaled Hassine
20/11/2016
13
Exercice





utilise la pagination de la mémoire ,
la taille de la mémoire réelle est de 1 Mo,
la taille d'une page est de 512 octets ,
les instructions à référence mémoire ont un champ
d’adresse de 24 bits.
20/11/2016
Cours Système d'exploitation
sauvegarde de l'adresse de l'instruction avortée,
l'unité centrale récupère l'adresse du programme de traitement dans une table
de vecteurs d'interruptions.
Bien que le traitement de défaut de pages est semblable au traitement d'une
interruption externe, le défaut de page s'en distingue fondamentalement par
le fait que l'instruction ne doit pas se terminer mais doit au contraire
revenir en son état initial. Les registres altérés par l'exécution doivent être
restitués de telle sorte, qu'après traitement du déroutement, on puisse
relancer l'instruction à son point de départ.
20/11/2016
Khaled Hassine
14
Questions
Soit un programme dont le code occupe 1024
octets en mémoire et qui utilise un vecteur de
1000 caractères.
Ce programme est exécuté dans un système ayant
les caractéristiques suivantes :

Le signal de traitement de défaut de page est le même émis lorsqu'on
cherche à accéder à une information située à une adresse supérieure à la
taille de la mémoire centrale ou à une zone de mémoire protégée (interdite
d'accès).
Le mécanisme de fourniture de l'adresse du programme de traitement du
défaut de page est semblable à celui utilisé lors des interruptions :
Khaled Hassine
I) Donnez :
1) Taille de la mémoire virtuelle
2) Le nombre de bits du champ déplacement
3) Le nombre de bits du numéro d’une page virtuelle
4) Le nombre de bits d'une adresse réelle
5) Le nombre de bits du numéro d’une page réelle (cadre)
6) Le nombre d'entrées de la table des pages virtuelles.
II) Le chargement de ce programme en mémoire
engendre-t-il une fragmentation interne? Justifiez
votre réponse.
15
20/11/2016
Khaled Hassine
16
4
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Caractéristiques principales d’un
algorithme de demande de pages
PLAN

Généralités
Statique ou dynamique :


Gestion des adresses

Stratégie de chargement :


Techniques de transfert

20/11/2016
Khaled Hassine

17
Quand un bloc doit il être chargé dans un cadre ?
On peut choisir la demande pure (un bloc n’est chargé que s’il est
demandé) mais on peut aussi décider de prés paginer (c.à.d de charger
à l’avance un certain nombre de blocs).
Stratégie de remplacement (et de placement) :

Stratégies de remplacement
Un algorithme statique alloue un nombre fixe de cadre à chaque
processus.
Un algorithme dynamique permet de changer le nombre de cadres d’un
processus au cours d’une exécution.
S’il n’y à pas de cadre libre quel cadre occupé doit-on déplacer pour
placer le nouveau bloc ?
Dans quel cadre un nouveau bloc doit être chargé ?
Khaled Hassine
20/11/2016
18
Les stratégies de recherche (Fetch
Strategies)

Techniques de transfert


Cours Système d'exploitation
Khaled Hassine
Pagination à la demande (Demand Fetch) :

Stratégies de recherche
Remplacement local ou
global.
20/11/2016
Répondent à la question : quand on doit ramener la partie suivante
d'un programme ou ces données de la mémoire auxiliaire vers la
mémoire centrale ?
Deux catégories de méthodes :


Pagination anticipée (Anticipatory Fetch) :



19
20/11/2016
Le chargement n'a lieu qu'en cas de défaut de page et on ne charge que la page
manquante.
Pour longtemps, la stratégie adoptée consiste à ramener vers la mémoire
centrale qu’une partie (programme ou donnée) que lors de sa demande.
On charge les pages à l'avance; mais comment prévoir efficacement ?
On croyait en fait que le temps passé pour prévoir l'avenir est un temps perdu.
Des nouvelles recherches ont montré que la recherche anticipée peut améliorer
l'état du système.
Khaled Hassine
20
5
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Pagination à la demande :
avantages




Transfert des blocs vers la
mémoire centrale
Si Défaut de page
Alors
Si existe une zone libre
Alors
Charger la page dans la zone libre
Calcul de l’adresse physique
Sinon
Choisir la page victime
Si La page victime est modifiée
Alors
Ecriture d’une copie sur disque.
FinSi
Chargement de la nouvelle page
Mise à jour de la table de page
Revenir à l’instruction abortée
FinSi
Besoin minimal en E/S
Besoin minimal en MC
Réponse plus rapide ????
Plus de processus et/ou d’utilisateurs qui
partagent la MC (degré de
multiprogrammation)
Khaled Hassine
20/11/2016
21
20/11/2016
Pagination anticipé : Working set










Cet ensemble est appelé : Working Set (Espace de
travail)
Charger l'espace de travail pendent qu'un autre utilisateur
est en train d'être servi par l'unité centrale.
L'inconvénient de cette approche se présente lorsqu'un
programme est en train de changer son espace de travail
auquel cas on charge inutilement plusieurs pages.
Cours Système d'exploitation
Khaled Hassine
Working Set (Espace de travail)

la plut part des programmes référencent leur espace de travail
uniformément (peu de changement d’une étape à une autre),
ces références tendent à se regrouper autour d'un petit nombre
de pages.
20/11/2016
22
Working set : caractéristiques
Cas d'un système Multitâches
Idée de base (principe de localité) :

Khaled Hassine
La variation de W(k,t) dans le temps est logarithmique car
le Working Set change lentement à la fin et très rapide pour
k petit.


23
représenté par une fonction W(k, t)
où k est le nombre de référence à la mémoire à l'instant t.
W(k,t) est une fonction monotone croissante car les k+1
références les plus récentes utilisent les k références précédentes
20/11/2016
Ceci sous-entend, qu'il existe un intervalle large de k pour
lequel l'espace de travail est constant.
Ceci permet de parier, avec des probabilités raisonnables de
succès, sur les numéros des pages qui seront nécessaires au
moment du redémarrage du programme en partant de l'espace
de travail utilisé au moment où il a été suspendu.
Khaled Hassine
24
6
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Remplacement des pages

Techniques de transfert

Stratégies de recherche
Remplacement local ou
global.
Ceci revient à répondre à la question : Comment
repartir les pages sur les différents processus et le
système ?
Deux stratégies sont possibles :



Exemples :


20/11/2016
Khaled Hassine
25
Remplacement local : chaque processus choisit parmi
les cadres de page qui lui sont déjà allouées
Remplacement global : un processus peut récupérer un
cadre de page d’un autre processus
20/11/2016
Windows NT applique le mode de remplacement local
Unix applique un remplacement global.
Khaled Hassine
26
Principe de base
Stratégies de
remplacement



Remplacement local
Remplacement global


20/11/2016
Cours Système d'exploitation
Khaled Hassine
A chaque processus, sont affectés un certain
nombre de cadres :
27
à utiliser de façon autonome,
son temps d'exécution ne dépend que de son
propre comportement.
Ceci peut se faire grâce à un pointeur sur la
liste de cadres qu’utilise un processus.
Ainsi, on peut appliquer à chaque processus
un algorithme de remplacement différent.
20/11/2016
Khaled Hassine
28
7
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Problématique

Le remplacement local demande que l'on réalise
un partage entre les différents processus :



Le partage équitable
Si on alloue peu de case à un processus, son nombre
de défaut de pages va augmenter et on ralenti ainsi son
exécution.
Dans le cas contraire, le processus va pénaliser un
second programme qui restera en attente de case libre
alors qu’un autre a plus que nécessaire.




Le partage équitable
Le partage proportionnel
Khaled Hassine
20/11/2016
29




Khaled Hassine
Si le nombre de cadres allouées à un processus non prioritaire
tombe en dessous de son minimum vital, ce processus est
constamment en défaut de page : il passe tout son temps à
réaliser des demandes de pages.
Ce processus doit être alors éjecté entièrement en zone de swap
et reviendra plus prioritaire quand il y aura de la place.



Nombre total de cadres : m = 64
2 processus P1 et P2,
Si : Taille nécesaire pour chaque processus




S1 = 10
S2 = 127
Allocation égale : 32 pages par processus
Allocation proportionelle :
S 

Cours Système d'exploitation
Khaled Hassine
31
20/11/2016
10
 64  5
137
127
a2 
 64  59
137
a1 
si
a i  a llo c a tio n f o r p i 
20/11/2016
30
Exemple
On peut améliorer cette approche en utilisant S = ΣSi où Si
est le nombre de pages du Processus i.
Chaque processus se voit attribué m (= Si/S) pages.
On peut encore améliorer en faisant varier ce rapport en
fonction de la priorité de chaque processus.
Ceci peut engendrer le problème d'écroulement :

un grand nombre de pages est donné à un
processus qui en utilise effectivement peu.
20/11/2016
Le partage proportionnel

alors on alloue m/n pages par processus !
On retrouve ici un problème proche de la
fragmentation interne :

Deux stratégies :

Si on dispose de m pages de mémoire
physique et de n processus,
si
 m
S
Khaled Hassine
32
8
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Principe de base
Stratégies de
remplacement


Remplacement local
Remplacement global
20/11/2016
Khaled Hassine



33









En fortran l'allocation des tableaux se fait par
colonne (dans l'autre sens) …
Cours Système d'exploitation
34
Khaled Hassine
la taille d’une page est 4 Kilooctets
int est codé sur 2 octets.
1 seul cadre est réservé pour les données du programmes
Le programme :
int m[2048][2048]
main
{ int i, j ;
for (i=0;i<2048;i++)
for (j=0;j<2048;j++)
m[i][j] = 1;
}
m[0][0] suivie de m[0][1] suivie de …
m[0][B-1]
m[1][0]
...
m[1][B-1]
…
m[A-1][0]
...
m[A-1][B-1]
20/11/2016
Khaled Hassine
On suppose que :

int m[A][B] est une matrice de A x B entiers.
En mémoire (ligne par ligne) :

En général, le remplacement en mode global est
plus utilisé et donne des meilleurs résultats mais
il est plus difficile à mettre en œuvre.
Exemple en C : bonne
initialisation
Les compilateurs C allouent les structures
répétitives sur des plages d'adresse croissantes
contiguës :

de la charge du système
du comportement des différents processus.
20/11/2016
Exemple

Décharger éventuellement les pages d’un autre
programme pour exécuter le processus qui a
provoqué le défaut de page.
Le comportement d'allocation de pages aux
processus dépend :
35
20/11/2016
Ce processus accède à une
nouvelle page toute les
2048 affectations.
Nombre de défauts de
pages : 2048
Khaled Hassine
36
9
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Exemple en C : mauvaise
initialisation

PLAN
Le programme (Inversion des indices) :
int m[2048][2048]
main
{int i, j ;
for (i=0;i<2048;i++)
for (j=0;j<2048;j++)
m[j][i] = 1;
}
Ce processus accède à
une nouvelle page toutes
les affectations !
Nombre de défauts de
pages est : 2048 x 2048
Khaled Hassine
20/11/2016
Généralités
Gestion des adresses
Techniques de transfert
Stratégies de remplacement
37
20/11/2016
Le principal problème : pas d'espace libre où loger le
nouveau bloc sollicité par le processeur

On cherche souvent le bloc "le moins utile" dans la suite de
l'exécution, c'est à dire, dont l'absence se fera le moins sentir.

Il faut :







Ce problème dépend de la dynamique de l'exécution,
difficile à prédire.
Les approches utilisées se basent sur le bon sens (des
heuristiques) dont on espère la réussite dans la majorité
des cas.
Cours Système d'exploitation
Khaled Hassine
p : Probabilité d’un défaut de page

prédire les références futures des informations présentes en MC
enlever le bloc dont la prochaine référence est espérée la plus
lointaine.
20/11/2016
38
Performance d’un algorithme de
remplacement
Problématique

Khaled Hassine


Temps d’Accès Effectif (TAE)
TAE = (1 – p) x accès MC + p x Temps défaut de
page
Temps de défaut de page = Somme de temps de



39
0  p  1.0
Si p = 0, pas de défauts de pages
Si p = 1, chaque référence est un défaut de page
20/11/2016
Swap éventuel de la page victime sur disque
Swap de la page sollicitée en mémoire centrale
Relancement de l’instruction
Khaled Hassine
40
10
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Exemple

Données réelles :




Temps d’accès mémoire ~ 1 s
Temps de Swap ~ 10 ms = 10000 s


Algorithme de pagination stable
50% du temps, la page remplacée a été modifiée
=> elle sera swappée sur disque

Temps d’Accès Effectif
TEA
~ (1 – p) x 1 + p x 5000
~ 1 + 5000 x p
TAE est de l’ordre de la ms
20/11/2016
Khaled Hassine

41
On appelle suite de références w = p1 p2 ... pn
une suite de numéros de pages correspondant à
des accès à ces pages.
Un algorithme A de pagination sur m cadres est
stable si ∀ m , ∀ w , on a :
Coût (A , m , w) <= Coût ( A , m+1 , w)
Cette notion est importante pour éviter
l'écroulement du SE (thrashing) par une
génération excessive de défauts de pages.
20/11/2016
Graphe : Défauts de Pages en
fonction Nombre de Cadres

Pourquoi la pagination fonctionne ?
Modèle de localité



Cours Système d'exploitation
Khaled Hassine
42
Ecroulement

20/11/2016
Khaled Hassine
43
Les processus migrent d’une localité à une autre
Les localités peuvent s’entrelacer
Pourquoi l’écroulement a lieu ?
 taille des localités > taille totale de la mémoire
20/11/2016
Khaled Hassine
44
11
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Comment améliorer la
performance ?




Stratégies de
remplacement
Il y a deux critères pour améliorer la performance de la
mémoire virtuelle :
Réduire le temps d’accès aux disques : critère purement
matériel
Réduire la valeur de p par le choix d’un bon algorithme
de demande de page : critère purement logiciel
L'algorithme optimal
L'algorithme FIFO
L'algorithme de la seconde chance
L'algorithme NRU
L'algorithme LRU
L'algorithme de vieillissement
Plus Récemment utilisé MRU
L’anomalie de Belday
Pour illustrer les algorithmes de remplacement, on
suppose qu'on dispose de


3 cadres en MC
On utilise la suite de pages suivante :
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
20/11/2016
Khaled Hassine
20/11/2016
45
Khaled Hassine
46
Principe
Stratégies de
remplacement


L'algorithme optimal
L'algorithme FIFO
L'algorithme de la seconde chance
L'algorithme NRU
L'algorithme LRU
L'algorithme de vieillissement
Plus Récemment utilisé MRU
L’anomalie de Belday
20/11/2016
Cours Système d'exploitation
Khaled Hassine

47
Utiliser comme victime la page qui ne sera pas
utilisée pendant le plus longtemps.
Pour ce faire, le SE indexe chaque page par le
nombre d'instructions qui seront exécutées
avant qu'elle ne soit référencée.
En cas de nécessité, le SE retire la page
d'indice le plus élevé, c'est à dire la page qui
sera référencée dans le futur le plus lointain.
20/11/2016
Khaled Hassine
48
12
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Exemple
Limites

0
7
0
1
2
7
7
7
2
2
2
2
2
7
0
0
0
0
4
0
0
0
1
1
3
3
3
1
1
X
X
X
X
X
X
X
1
2
Faut
X
X
0
3
0
4
2
3
0
3
2
1
2
0
1
7
0
1



L’algorithme génère seulement 9 défauts
de page.
20/11/2016
Khaled Hassine
Cet algorithme est pratiquement impossible à
appliquer :
Cet algorithme est stable.
Utilisé pour mesurer les performances des autres
algorithmes

49
Comment calculer les indices des pages (instructions)?
20/11/2016
avec un simulateur, on peut évaluer les performances
de cet algorithme et s'en servir comme référence pour
les suivants.
Khaled Hassine
50
Premier Entrée Premier Sortie
(FIFO : First In First Out).
Stratégies de
remplacement

L'algorithme optimal
L'algorithme FIFO
L'algorithme de la seconde chance
L'algorithme NRU
L'algorithme LRU
L'algorithme de vieillissement
Plus Récemment utilisé MRU
L’anomalie de Belday
20/11/2016
Cours Système d'exploitation
Khaled Hassine

51
20/11/2016
On éjecte la page la plus ancienne en
mémoire sans tenir compte des références qui
ont pu être faite.
Le bon sens de cette approche : le bloc le plus
anciennement chargé en mémoire centrale est
probablement (du moins on espère) celui qui a
le moins de chance d'être utilisé lors des
prochains accès
Khaled Hassine
52
13
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Exemple
Implémentation et limites

On peut implémenter cet algorithme grâce à une liste chaînée où


7
0
1
2
0
1
2
7
7
0
Faute
X
7
0
1
X
2
0
1
X
X
0
3
0
4
2
3
0
2
3
1
X
2
3
0
X
4
3
0
X
4
2
0
X
4
2
3
X
0
2
3
X
3
2
1
2
0
1
3
X
0
1
2
X
0
1
7
0
1
7
1
2
X
7
0
2
X
7
0
1
X
La page en tête est la première chargée en mémoire et celle en queue
est la dernière.
Le remplacement se fait sur la page en tête de liste.

Avantages :

Inconvénients : manque d’efficacité.



Simple à implémenter
Il existe des suites de pages pour lesquelles cet algorithme fait plus de
défauts de page avec quatre cadres mémoire qu'avec trois
Par exemple : 1 2 3 4 1 2 5 1 2 3 4 5.
Les vieilles pages peuvent aussi être celles qui sont le plus utilisées.
L’algorithme génère 15 défauts de page.
Khaled Hassine
20/11/2016
53
Exemple : avec 3 cadres

0

1
2
3
4
1
2
5
3
4
1
1
1
4
4
5
5
2
2
2
1
4
1
3
3
3
X
3
X
1
2
5
3
X
X
X
X
1
2
Faute X
20/11/2016
Cours Système d'exploitation
2
X
Khaled Hassine
2
54
Exemple : avec 4 cadres
Génère 9 défauts de page.
1
Khaled Hassine
20/11/2016
2
Génère 10 défauts de page.
5
1
2
1 1
0
1
2
2
3
Faute X X
4
X
55
20/11/2016
3
4
1
2
3
1
2
3
4
X
X
1
2
5
1
2
3
4
5
2
3
4
X
5
1
3
4
X
5
1
2
4
X
5
1
2
3
X
4
1
2
3
X
Khaled Hassine
5
4
5
2
3
X
56
14
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Principe de base
Stratégies de
remplacement



L'algorithme optimal
L'algorithme FIFO
L'algorithme de la seconde chance
L'algorithme NRU
L'algorithme LRU
L'algorithme de vieillissement
Plus Récemment utilisé MRU
L’anomalie de Belday
20/11/2016
Khaled Hassine

57

Si la page en tête de liste est réutilisée, elle sera
enlevée au prochain remplacement.
20/11/2016
Khaled Hassine
58
Algorithme de la seconde
chance : liste chaînée
Un bit associé à chaque page est positionné à 1 à
chaque fois qu'une page est utilisée par un processus.
Avant de retirer une page de la mémoire, on va essayer
de lui donner une deuxième chance.



Conserve l’avantage de simplicité
Pallie les inconvénients en donnant une seconde
chance à la page en tête.
Comment faire ?

Mise en œuvre

Amélioration de l’algorithme FIFO :
Si le bit d'utilisation est à 0 la page est swappée hors
mémoire (elle n'a pas été utilisée depuis la dernière
demande de page).
Si le bit est à 1, il est positionné à zéro et la page est mise
en queue de liste et on cherche une autre victime.
Ainsi une page ne sera swappée hors mémoire que si :


toutes les autres pages ont été utilisées,
utilisent aussi leur deuxième chance.
20/11/2016
Cours Système d'exploitation
Khaled Hassine
59
20/11/2016
Khaled Hassine
60
15
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Algorithme de l’horloge : liste
circulaire


Algorithme de l’horloge : liste
circulaire
Peut être vue comme une queue circulaire où
on avance sur les pages qui ont le bit à 1 (en le
positionnant à zéro) jusqu'à ce que l'on trouve
une page avec le bit d'utilisation à zéro.
Ceci est connu sous le nom de l'algorithme
de l'horloge.
Comme l'algorithme précédent mais l'utilisation d'une
liste circulaire évite de déplacer les pages.
20/11/2016
Khaled Hassine
61
20/11/2016
Khaled Hassine
62
Algorithme de l’horloge: un
exemple (Stallings).
Stratégies de
remplacement
L'algorithme optimal
L'algorithme FIFO
L'algorithme de la seconde chance
L'algorithme NRU
L'algorithme LRU
L'algorithme de vieillissement
Plus Récemment utilisé MRU
L’anomalie de Belday
La page 727 est chargée dans le cadre 4.
La prochaine victime est 5, puis 8.
20/11/2016
Cours Système d'exploitation
Khaled Hassine
63
20/11/2016
Khaled Hassine
64
16
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Algorithme de remplacement de la
page non récemment utilisée (NRU)

NRU (Not Recently Used) utilise 2 bits initialisés à 0:








Référence R : Si une page a été référencée, R ← 1
Modification M : Si une page est modifiée, M ← 1.
Différencier les pages récemment utilisées des autres :

Les pages sont reparties en 4 classes :


Pourquoi M et R ?
Classe 0 : non référencée et non modifiée
Classe 1 : non référencée et modifiée.
Classe 2 : référencée et non modifiée.
Classe 3 : référencée et modifiée.

20/11/2016
Khaled Hassine
L’algorithme tient aussi compte du bit de modification car


L’algorithme NRU choisit la page à remplacer de la
classe non vide de plus petit numéro.
Cet algorithme a des performances assez satisfaisantes.
65
le système d’exploitation utilise les interruptions horloge : les
pages qui ont été utilisées (accédées en lecture ou en écriture)
auront leur bit à 1 et ne seront pas choisies par l’algorithme en
cas de remplacement à effectuer.

20/11/2016
Une page peut être référencée et ensuite R remise à zéro et reste
ainsi quelques temps non utilisée.
Si jamais, cette page doit être enlevée de la mémoire, elle doit
forcement être sauvegardée sur le disque.
Dans ce cas, il vaut mieux choisir une page qui a été non
référencée et non modifiée qu’une page qui a été référencée et
modifiée.
Khaled Hassine
66
Principe de base
Stratégies de
remplacement


L'algorithme FIFO
L'algorithme de la seconde chance
L'algorithme NRU
L'algorithme LRU
L'algorithme de vieillissement
Plus Récemment utilisé MRU
L’anomalie de Belday
20/11/2016
Cours Système d'exploitation
Khaled Hassine
LRU (Least Recently Used : moins récemment
utilisé) se base sur l'heuristique suivante :


67
Si un bloc en mémoire centrale est longuement non
sollicité, il y a des fortes chances que les prochains
accès ne seront pas à ce bloc.
Inversement, on fait le pari que les pages qui ont été
récemment utilisées le seront dans un proche avenir.
Bien qu'on puisse trouver des cas où cette
approche échoue, elle a, en pratique, montré ces
performances.
20/11/2016
Khaled Hassine
68
17
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Comparaison de FIFO avec LRU
Exemple
0
7
0
1
2
4
2
3
0
7
7
7
2
0
0
0
2
4
4
4
0
1
1
1
0
0
0
3
3
3
0
1
0
1
3
3
2
2
2
2
2
7
X X X X
X
X X X X
X
X
X
1
2
Faute
0
3
0
3
2
1
2
0
1
7
0
1

L’algorithme LRU génère 12 défauts de page.

Contrairement à FIFO, LRU reconnaît que les pages 2 et 5 sont
utilisées fréquemment
La performance de FIFO est moins bonne:
 dans
Khaled Hassine
20/11/2016
Module 8
69
Difficulté de mise en œuvre




page la plus récemment utilisée en premier

mettre à jour cette liste à chaque référence
mémoire.
Cours Système d'exploitation

A chaque entrée de la table des pages, on ajoute
un compteur de temps qui est mis à jour à chaque
accès.



Couteux !!
20/11/2016
Khaled Hassine
70
Implémentation avec compteur
La mise en œuvre de l'algorithme LRU nécessite la
mémorisation de l'heure de la dernière référence à
chaque bloc présent en mémoire centrale.
Ceci pose de nombreux problèmes d'implémentation
et peut demander de substantiels outils matériels.
Tenir à jour une liste chaînée de pages :

ce cas, LRU = 3+4, FIFO = 3+6
71
20/11/2016
A chaque fois qu’une page est référencée, on copie
une horloge logique dans ce compteur
Quand une page est référencée, incrémenter l’horloge
logique et la copier dans le compteur de la page
référencée
 on a toujours le temps de la dernière utilisation de
cette page
Rechercher sur l'ensemble de la table la victime : la
page avec la plus petite valeur de compteur
Khaled Hassine
72
18
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Implémentation avec pile

Implémentation via des masques

A chaque fois que l'on accède à une page,
celle-ci est placée en sommet de la pile.




Le dessus est toujours la page la plus récemment
utilisée
Le fond de la pile la moins récemment utilisée.

On utilise un octet associé à chaque page.
Le système positionne à 1 le bit de poids fort à chaque
accès à la page.
Toutes les N (nanosecondes) click d'horloge, le système
applique un décalage à droite de l'octet associé à chaque
page.
On obtient ainsi un historique de l'utilisation de la page.



Khaled Hassine
20/11/2016
73
20/11/2016
Implémentation via des masques




c'est la page ayant le plus petit octet qui a été utilisée le
moins récemment
l'unicité des numéros n'étant pas assurée la sélection entre
numéros identiques se fait avec l'ordre FIFO.


Cet algorithme est en théorie :


Cours Système d'exploitation
Khaled Hassine
74
Les opérations sur les listes chaînées étant très
coûteuse, les concepteurs ont eu recours aux matrices
carrées de taille n, n est le nombre de cadres.
La matrice est initialisée à 0.
Lorsque la page logée dans le cadre n° i est référencée :

le meilleur pour implémenter le remplacement des pages
puisqu'il retire la page la moins pénalisante et celle qui
risque fort d’être utilisée à nouveau.
le plus coûteux étant donné que les mises à jour sont faite
à chaque accès à une page.
20/11/2016
Khaled Hassine
Implémentation via des matrices
Si l'on interprète ces octets comme des entiers non
signés :

L'octet à 00000000 indique que la page n'a pas été utilisée
depuis 8 cycles
L'octet 11111111 indique que la page a été utilisée pendant les 8
derniers cycles.
La page de masque 11000100 a été utilisée plus récemment que
01110111.
75


la ième ligne est mise à 1
ensuite la ième colonne est mise à 0.
La page la moins récemment référencée est celle dans
le cadre ayant la ligne contenant la plus petite valeur
binaire.
20/11/2016
Khaled Hassine
76
19
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Exemple
Suite de
références :
0213
123
0
1
2
3
0
1
2
3
0
1
2
3
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
2
0
0
0
0
2
0
0
0
0
2
1
1
0
1
3
0
0
0
0
3
0
0
0
0
3
0
0
0
0
Initialisation
Page 0
Page 2
0
1
2
3
0
1
2
3
0
1
2
3
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
2
1
0
0
1
2
1
0
0
0
2
1
0
0
0
3
0
0
0
0
3
1
1
1
0
3
1
0
1
0
1
2
3
Page 1
Page 3
0
1
2
3
0
0
0
0
0
1
1
0
0
2
1
1
0
3
1
0
0
1
2
3
0
0
0
0
0
0
1
1
1
0
0
0
1
1
2
1
1
0
0
2
0
3
1
1
1
0
3
0
Page 3
Khaled Hassine
20/11/2016
L'algorithme optimal
L'algorithme FIFO
L'algorithme de la seconde chance
L'algorithme NRU
L'algorithme LRU
L'algorithme de vieillissement
Plus Récemment utilisé MRU
L’anomalie de Belday
Page 1
0
Page 2
Stratégies de
remplacement
20/11/2016
77
Critique du LRU





R est rajouté au compteur à chaque interruption de
l'horloge
R est remise à 0 ensuite.
20/11/2016
Cours Système d'exploitation
Khaled Hassine
78
Critique du LRU
C'est une amélioration logicielle de l'algorithme
LRU en vu de le rendre moins coûteux.
A chaque entrée d'une page dans la table de
pages, on rajoute un champ compteur R qui est
incrémenté de 1 quand une page est référencée.
En réalité :

Khaled Hassine

79
Quand un défaut de page se produit, si on
remplace la page dont le compteur est le plus
faible, on risque d'avoir la situation suivante :
une page accédée à maintes reprises il y a
quelques temps sera considérée plus récente
qu'une page accédée moins fréquemment et
plus récemment.
La solution proposée consiste à inclure le
vieillissement du compteur.
20/11/2016
Khaled Hassine
80
20
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Principe de l’algorithme

Le bit de référence R est inséré dans le bit de poids fort
du compteur en appliquant une opération de décalage à
droite. Si on regarde de près le principe de l'algorithme,
on remarque qu'en comptant à partir de la gauche :




Exemple
si le bit de poids fort (p) est à 0, la page n'est pas
référencée depuis le dernier top d'horloge,
si le bit de poids (p-1) est à 0, la page n'est pas référencée
depuis les 2 derniers tops d'horloge,
etc.
Il est donc logique de retirer la page qui a la plus petite
valeur du compteur.
Khaled Hassine
20/11/2016
81
Top 0
Top 1
Top 2
Top 3
Top 4
101011
110010
110101
100010
011000
Page 0
10000000 11000000 11100000 11110000
01111000
Page 1
00000000 10000000 11000000 01100000
10110000
Page 2
10000000 01000000 00100000 00010000
10001000
Page 3
00000000 00000000 10000000 01000000
00100000
Page 4
10000000 11000000 01100000 10110000
01011000
Page 5
10000000 01000000 10100000 01010000
00101000
Bits R
20/11/2016
Khaled Hassine
82
Algorithme de vieillissement
Différence avec LRU:
 Si deux pages sont référencées entre deux interruptions alors
on ne peut pas dire laquelle a été référencée en dernier
 Les compteurs ont un nombre limité de bits
Stratégies de
remplacement
On ne peut pas distinguer deux pages dont tous les bits sont à 0
Le taille du compteur indique le nombre d’intervales comptabilisés
L'algorithme FIFO
L'algorithme de la seconde chance
L'algorithme NRU
L'algorithme LRU
L'algorithme de vieillissement
Plus Récemment utilisé MRU
L’anomalie de Belday


20/11/2016
Cours Système d'exploitation
Khaled Hassine
83
20/11/2016
Khaled Hassine
84
21
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Principe




Most Recently Used
Lorsqu’un défaut de page se produit, c’est la
dernière page utilisée qui sera tuée.
MRU permet de remédier aux inconvénients de
LRU (trop gourmands en temps de calcul et
difficiles à implémenter)
Facile à implémenter :



Exemple 1
0
Faut
0
1
2
3
0
1
2
0
0
0
0
3
3
3
1
1
1
0
2
2
X
X
1
2
Faute de
page
X
X
0
2
3
0
4
3
0
3
2
1
2
0
1
7
7
7
7
7
7
7
7
7
7
7
7
7
0
0
0
0
3
0
4
4
4
4
4
4
4
4
4
4
1
2
2
2
2
3
0
3
2
1
2
0
1
1
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
85
Cours Système d'exploitation
2
0
1
86
Exemple 2 : LRU
3
0
4
5
6
7
Page
sollicitée
0
1
2
3
0
1
2
2
2
2
4
4
4
7
0
0
0
0
3
3
3
2
0
0
3
3
3
5
5
5
1
1
1
1
0
0
2
1
1
1
0
0
0
6
6
2
2
2
2
X
X
X
X
X
X
X
X
X
Faute de
page
X
X
X
Khaled Hassine
7
Khaled Hassine
20/11/2016
2
3
X
X
0
3
0
2
3
4
5
6
7
2
2
5
5
5
0
0
4
4
4
7
1
1
3
3
3
6
6
X
X
X
X
X
X
X
Total de fautes de pages : 12
Total de fautes de pages : 13
20/11/2016
X
0
L’algorithme MRU génère 16 défauts de page.
L’algorithme FIFO génère 15 défauts de page.
L’algorithme LRU génère 12 défauts de page.
Même si le nombre de défaut de pages est supérieur pour le MRU que pour
le LRU, l’algorithme engendre moins de surcharge (pas de recherche du
min, pas de structures de données complexes, …)
Exemple 2 : FIFO
Page
sollicitée
1
7
2
Assez efficace dans la pratique
Khaled Hassine
0
7
1
Mémoriser seulement la dernière page référencée
Minimise les surcharges
20/11/2016
7
87
20/11/2016
Khaled Hassine
88
22
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Exemple 2 : MRU
Page
sollicitée
0
1
2
3
0
0
0
0
0
1
1
1
2
Faute de
page
X
X
0
1
2
0
3
0
2
3
4
5
6
7
0
0
0
0
0
1
2
2
2
2
2
2
3
3
4
5
6
7
X
X
X
X
X
X
X
Stratégies de
remplacement
L'algorithme optimal
L'algorithme FIFO
L'algorithme de la seconde chance
L'algorithme NRU
L'algorithme LRU
L'algorithme de vieillissement
Plus Récemment utilisé MRU
L’anomalie de Belday
Total de fautes de pages : 9
Khaled Hassine
20/11/2016
20/11/2016
89
Exemple



90
3 cadres
Considérons la séquence de références des
pages suivante : 0-1-2-3-0-1-4-0-1-2-3-4.
On applique le PAPS comme algorithme de
remplacement de page sur deux cas :

Khaled Hassine
0
0
1
2
3
0
1
4
0
1
2
3
4
0
0
0
3
3
3
4
4
4
4
4
4
1
1
1
0
0
0
0
0
2
2
2
2
2
2
1
1
1
1
1
3
3
X
X
X
X
X
X
X
1
2
3 cadres
4 cadres
Faute de page
X
X
Total de fautes de pages : 9
20/11/2016
Cours Système d'exploitation
Khaled Hassine
91
20/11/2016
Khaled Hassine
92
23
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Anomalie de Belady avec
FIFO
4 cadres
0
0
0
1
1
0
2
0
3
0
1
1
2
2
3
Faute de page
X
X
X
0
1
4
4
0
4
1
4
2
4
3
3
4
3
1
1
0
0
0
0
4
2
2
2
1
1
1
1
3
3
3
3
2
2
2
X
X
X
X
X
X
X
Total de fautes de pages : 10
20/11/2016
Khaled Hassine
93
20/11/2016
Remarques



Cours Système d'exploitation
94
Remarques
Si l'espace de travail est plus grand que la taille de la
mémoire centrale (ou de la partie destinée à un
utilisateur), il n’y a pas de miracle : les défauts de
pages seront très fréquents.
Lorsqu'un programme engendre, lors de son exécution,
des nombreux défauts de pages d'une manière
continue, on dit que le programme s'écoule.
Si le programme utilise un espace de travail qui évolue
lentement dans le temps, tout se passe normalement
bien même si la taille du programme est largement
supérieure à la taille de la mémoire centrale.
20/11/2016
Khaled Hassine
Khaled Hassine
95

Si le bloc à éjecter représente des données
modifiées, il est indispensable de le réécrire en
mémoire secondaire afin de garder une image
fidèle de son contenu. Par suite, pour accélérer le
traitement de défaut de pages, la copie sur disque
peut se faire pendent que l'UC exécute des calculs
et même sans qu'un traitement de défaut de pages
ne se produise. Ceci permet de rendre de plus en
plus transparent à l'utilisateur la gestion en
mémoire virtuelle.
20/11/2016
Khaled Hassine
96
24
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Exercice


Question
On considère un ordinateur dont le système de
mémoire virtuelle dispose de 4 cadres (frames)
qui sont tous occupés.
Le tableau suivant donne, pour chacun d'eux, :




la date en microsecondes du chargement de la page
qu’ils contient,
l’heure en microsecondes du derniers accès à cette
page ,
le nombre d’accès effectués sur cette page,
Si la page a été modifiée.
Khaled Hassine
20/11/2016
97
Cadre
0




soit en réorganisant le contenu de la mémoire,
soit en libérant de la place par recopie d'un segment
résident en mémoire principale dans la mémoire de masse.
Dans le deux cas, la manipulation est lourde et, par
conséquent, coûteuse en temps.
20/11/2016
Cours Système d'exploitation
Khaled Hassine
Oui
120
260
4
Non
2
230
275
2
Oui
3
100
320
5
Oui
En justifiant votre réponse, donner quelle sera la
page remplacée au prochain défaut de page pour
chacun des quatre algorithmes de remplacement
suivants : PAPS, NRU, LRU, MRU.
Khaled Hassine
98
Remarque
Si une information à laquelle on veut accéder ne se
trouve pas en mémoire, le SE charge tout le segment
auquel elle appartient.
La taille non uniforme des segments impose le
dégagement d'un espace suffisant pour le ranger en
MC :

Modifié
1
20/11/2016
Cas d’une organisation segmentée
de la mémoire

Date de Chargement Date d’accès Nombre
(à l’instant t=)
(à l’instant t=) d’accès
150
180
1
99

Toutes les informations présentes dans le
segment ne sont pas utilisées de la même façon
par l'unité centrale.



En moyenne 80 % du temps d'exécution est engendré
par 20 % d'un programme.
L’UC n'accède pas à toutes les données avec la même
fréquence.
Une grande partie des informations présentes
dans le segment est chargée inutilement en
mémoire puisqu'elle est peu (ou pas) utilisée.
20/11/2016
Khaled Hassine
100
25
20/11/2016
Faculté des Sciences de Gabes
Département d’informatique
Cas d’une organisation paginée de
la mémoire : Gestion plus facile

L'organisation de la mémoire en pages permet de
remédier aux inconvénients de la segmentation. En
effet, l'intérêt de cette organisation est double :



Seule la page à laquelle appartient l'information recherchée
est chargée en mémoire centrale.
Les pages sont toutes de même taille, la gestion de l'espace
mémoire est grandement simplifiée par rapport à ce que
l'on peut faire avec la segmentation.
Le remplacement des pages les unes par les autres est
beaucoup plus simple que la réorganisation de la
mémoire pour le placement des segments.
20/11/2016
Cours Système d'exploitation
Khaled Hassine
101
20/11/2016
Khaled Hassine
102
26
Téléchargement