chapitre iv –la mÉmoire virtuelle ii 4 mémoire virtuelle.pdf · multiprogrammation) 20/11/2017...
TRANSCRIPT
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 1
20/11/2017 1Khaled Hassine
Par :Khaled Hassine
CHAPITRE IV –LAMÉMOIRE VIRTUELLE
20/11/2017 2Khaled Hassine
Techniques de transfert
Généralités
Stratégies de remplacement
PLAN
20/11/2017 3
Gestion des adresses
Khaled Hassine
Techniques de transfert
Généralités
Stratégies de remplacement
PLAN
20/11/2017 4
Gestion des adresses
Khaled Hassine
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 2
Pourquoi une mémoire virtuelle ?
Constations : 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.
Conséquence : Utiliser la mémoiresecondaire "comme" mémoire RAM.
20/11/2017 Khaled Hassine 5
Définition
Mémoire physique = Ensemble des emplacements de la mémoire
centrale physiquement présents dans l'ordinateur.
Mémoire virtuelle = support de l'ensemble des informations
potentiellement accessibles Ensemble des emplacements dont l'adresse peut
être engendrée par le processeur.
20/11/2017 Khaled Hassine 6
Vues des mémoires réelles etvirtuelles
20/11/2017 Khaled Hassine 7
Mémoirevirtuelle
Mémoirede masse
Vue duconcepteurVue de
l'utilisateurMémoireprincipale
Swapping entre mémoiresréelle et virtuelle
20/11/2017 Khaled Hassine 8
N>>n
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 3
Techniques de transfert
Généralités
Stratégies de remplacement
PLAN
20/11/2017 Khaled Hassine 9
Gestion des adresses
Mécanisme de gestion
L'exécution des programmes engendre des adresses ditesvirtuelles.
Le mécanisme de gestion assure la traduction (dite aussitranslation) de ces adresses virtuelles en adresses réelles enmémoire centrale.
Le mécanisme de gestion des adresses doit être capable dedétecter si une information se trouve en mémoire centrale ou non.
On dispose des structures : table de traduction (translationtable) résidente en mémoire centrale, décrient le contenu de la mémoire centrale et celle de la
mémoire de masse.
20/11/2017 Khaled Hassine 10
De l’adresse virtuelle versl’adresse physique
20/11/2017 Khaled Hassine 11
adressesvirtuelles
0-4 K
4-8K
8-12 K8-12 K12-16 K
16-20 K20-24 K24-28 K28-32 K
32-36 K36-40 K
40-44 K44-48 K
01
23
4
56
78
9
10
11
x
x
x
x
0 4
1 5
2 x
3 2
4 8
n° page présence
table des pages
MMU
adressesphysiques
0-4 K
4-8 K
8-12 K
12-16 K
16-20 K
20-24 K24-28 K
28-32 K32-36 K
Module de gestion des adresses :deux cas
L'adresse virtuelle correspond à un bloc en mémoireprincipale : 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: 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.
20/11/2017 Khaled Hassine 12
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 4
Exécution d’une défaut de page
20/11/2017 Khaled Hassine 13
Mémoirevirtuelle
Remarques
Le signal de traitement de défaut de page est le même émis lorsqu'oncherche à 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 dudéfaut de page est semblable à celui utilisé lors des interruptions : 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 distinguefondamentalement par le fait que l'instruction ne doit pas se terminermais doit au contraire revenir en son état initial. Les registres altérés parl'exécution doivent être restitués de telle sorte, qu'après traitement dudéroutement, on puisse relancer l'instruction à son point de départ.
20/11/2017 Khaled Hassine 14
Exercice
Soit un programme dont le code occupe 1024octets en mémoire et qui utilise un vecteur de1000 caractères.
Ce programme est exécuté dans un systèmeayant les caractéristiques suivantes : 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/2017 Khaled Hassine 15
Questions
I) Donnez :1) Taille de la mémoire virtuelle2) Le nombre de bits du champ déplacement3) Le nombre de bits du numéro d’une page virtuelle4) Le nombre de bits d'une adresse réelle5) 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émoireengendre-t-il une fragmentation interne? Justifiezvotre réponse.
20/11/2017 Khaled Hassine 16
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 5
Techniques de transfert
Généralités
Stratégies de remplacement
PLAN
20/11/2017 Khaled Hassine 17
Gestion des adresses
Caractéristiques principales d’unalgorithme de demande de pages
Statique ou dynamique : 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. Stratégie de chargement :
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 decharger à l’avance un certain nombre de blocs).
Stratégie de remplacement (et de placement) : S’il n’y a 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é ?
20/11/2017 Khaled Hassine 18
Techniques de transfertStratégies de rechercheRemplacement local ouglobal.
20/11/2017 Khaled Hassine 19
Les stratégies de recherche (FetchStrategies)
Répondent à la question : quand on doit ramener la partiesuivante d'un programme ou ces données de la mémoire auxiliairevers la mémoire centrale ?
Deux catégories de méthodes : Pagination à la demande (Demand Fetch) :
Le chargement n'a lieu qu'en cas de défaut de page et on ne charge que lapage manquante.
Pour longtemps, la stratégie adoptée consiste à ramener vers la mémoirecentrale qu’une partie (programme ou donnée) que lors de sa demande.
Pagination anticipée (Anticipatory Fetch) : 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.
20/11/2017 Khaled Hassine 20
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 6
Pagination à la demande :avantages
Besoin minimal en E/S (du chargment desblocs)
Besoin minimal en MC
Réponse plus rapide ????
Plus de processus et/ou d’utilisateurs quipartagent la MC (degré demultiprogrammation)
20/11/2017 Khaled Hassine 21
Transfert des blocs vers lamémoire centrale
Si Défaut de pageAlors
Si existe une zone libreAlors
Charger la page dans la zone libreCalcul de l’adresse physique
SinonChoisir la page victimeSi La page victime est modifiéeAlorsEcriture d’une copie sur disque.
FinSiChargement de la nouvelle pageMise à jour de la table de pageRevenir à l’instruction abortée
FinSi
20/11/2017 Khaled Hassine 22
Pagination anticipé : Working set
Cas d'un système Multitâches Idée de base (principe de localité) :
la plut part des programmes référencent leur espace de travailuniformément (peu de changement d’une étape à une autre),
ces références tendent à se regrouper autour d'un petit nombre depages.
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 auquelcas on charge inutilement plusieurs pages.
20/11/2017 Khaled Hassine 23
Working set : caractéristiques
Working Set (Espace de travail) 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 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. 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 duredémarrage du programme en partant de l'espace de travailutilisé au moment où il a été suspendu.
20/11/2017 Khaled Hassine 24
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 7
Techniques de transfertStratégies de rechercheRemplacement local ouglobal.
20/11/2017 Khaled Hassine 25
Remplacement des pages
Ceci revient à répondre à la question : Commentrepartir les pages sur les différents processus et lesystème ?
Deux stratégies sont possibles : 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 Exemples :
Windows NT applique le mode de remplacement local Unix applique un remplacement global.
20/11/2017 Khaled Hassine 26
Stratégies deremplacementRemplacement localRemplacement global
20/11/2017 Khaled Hassine 27
Principe de base
A chaque processus, sont affectés un certainnombre de cadres : à 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 laliste de cadres qu’utilise un processus.
Ainsi, on peut appliquer à chaque processusun algorithme de remplacement différent.
20/11/2017 Khaled Hassine 28
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 8
Problématique
Le remplacement local demande que l'on réaliseun partage entre les différents processus : Si on alloue peu de case à un processus, son nombre
de défaut de pages va augmenter et on ralenti ainsison exécution.
Dans le cas contraire, le processus va pénaliser unsecond programme qui restera en attente de caselibre alors qu’un autre a plus que nécessaire.
Deux stratégies : Le partage équitable Le partage proportionnel
20/11/2017 Khaled Hassine 29
Le partage équitable
Si on dispose de m pages de mémoirephysique et de n processus, alors on alloue m/n pages par processus !
On retrouve ici un problème proche de lafragmentation interne : un grand nombre de pages est donné à un
processus qui en utilise effectivement peu.
20/11/2017 Khaled Hassine 30
Le partage proportionnel
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 :
Si le nombre de cadres allouées à un processus non prioritairetombe en dessous de son minimum vital, ce processus estconstamment 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 deswap et reviendra plus prioritaire quand il y aura de la place.
20/11/2017 Khaled Hassine 31
Exemple
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 cadres par processus
Allocation proportionelle :
20/11/2017 Khaled Hassine 32
a l lo c a t i o n f o r
i
ii i
S s
sa p m
S
1
2
1 06 4 5
1 3 71 2 7
6 4 5 91 3 7
a
a
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 9
Stratégies deremplacementRemplacement localRemplacement global
20/11/2017 Khaled Hassine 33
Principe de base
Décharger éventuellement les pages d’un autreprogramme pour exécuter le processus qui aprovoqué le défaut de page.
Le comportement d'allocation de pages auxprocessus dépend : de la charge du système du comportement des différents processus.
En général, le remplacement en mode global estplus utilisé et donne des meilleurs résultatsmais il est plus difficile à mettre en œuvre.
20/11/2017 Khaled Hassine 34
Exemple
Les compilateurs C allouent les structuresrépétitives sur des plages d'adresse croissantescontiguës : int m[A][B] est une matrice de A x B entiers. En mémoire (ligne par ligne) :
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]
En fortran l'allocation des tableaux se fait parcolonne (dans l'autre sens) …
20/11/2017 Khaled Hassine 35
Exemple en C : bonneinitialisation
On suppose que : 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;
}
20/11/2017 Khaled Hassine 36
Ce processus accède à unenouvelle page toute les2048 affectations.Nombre de défauts depages : 2048
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 10
Exemple en C : mauvaiseinitialisation
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;
}
20/11/2017 Khaled Hassine 37
Ce processus accède àune nouvelle page toutesles affectations !Nombre de défauts depages est : 2048 x 2048 Techniques de transfert
Généralités
Stratégies de remplacement
PLAN
20/11/2017 Khaled Hassine 38
Gestion des adresses
Problématique
Le principal problème : pas d'espace libre où loger le nouveaubloc 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 : 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. 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.
20/11/2017 Khaled Hassine 39
Performance d’un algorithme deremplacement
p : Probabilité d’un défaut de page 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
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 Swap éventuel de la page victime sur disque Swap de la page sollicitée en mémoire centrale Relancement de l’instruction
20/11/2017 Khaled Hassine 40
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 11
Exemple
Données réelles : Temps d’accès mémoire ~ 1 s Temps de Swap ~ 10 ms = 10000 s
50% du temps, la page remplacée a été modifiée=> elle sera swappée sur disque
Temps d’Accès EffectifTEA ~ (1 – p) x 1 + p x 5000
~ 1 + 5000 x p TAE est de l’ordre de la ms
20/11/2017 Khaled Hassine 41
Algorithme de pagination stable
On appelle suite de références w = p1 p2 ... pnune suite de numéros de pages correspondant àdes accès à ces pages.
Un algorithme A de pagination sur m cadres eststable 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 unegénération excessive de défauts de pages.
20/11/2017 Khaled Hassine 42
Graphe : Défauts de Pages enfonction Nombre de Cadres
20/11/2017 Khaled Hassine 43
Ecroulement
Pourquoi la pagination fonctionne ?
Modèle de localité 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/2017 Khaled Hassine 44
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 12
Comment améliorer laperformance ?
Il y a deux critères pour améliorer la performance dela 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 purementlogiciel
Pour illustrer les algorithmes de remplacement, onsuppose 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/2017 Khaled Hassine 45
Stratégies deremplacementL'algorithme optimalL'algorithme FIFOL'algorithme de la seconde chanceL'algorithme NRUL'algorithme LRUL'algorithme de vieillissementPlus Récemment utilisé MRUL’anomalie de Belday
20/11/2017 Khaled Hassine 46
Stratégies deremplacementL'algorithme optimalL'algorithme FIFOL'algorithme de la seconde chanceL'algorithme NRUL'algorithme LRUL'algorithme de vieillissementPlus Récemment utilisé MRUL’anomalie de Belday
20/11/2017 Khaled Hassine 47
Principe
Utiliser comme victime la page qui ne serapas utilisée pendant le plus longtemps.
Pour ce faire, le SE indexe chaque page parle nombre d'instructions qui seront exécutéesavant qu'elle ne soit référencée.
En cas de nécessité, le SE retire la paged'indice le plus élevé, c'est à dire la page quisera référencée dans le futur le plus lointain.
20/11/2017 Khaled Hassine 48
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 13
Exemple
20/11/2017 Khaled Hassine 49
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
0 7 7 7 2 2 2 2 2 7
1 0 0 0 0 4 0 0 0
2 1 1 3 3 3 1 1
Faut X X X X X X X X X
L’algorithme génère seulement 9 défautsde page.
Limites
Cet algorithme est pratiquement impossible àappliquer : Comment calculer les indices des pages
(instructions)?
Cet algorithme est stable. Utilisé pour mesurer les performances des
autres algorithmes avec un simulateur, on peut évaluer les
performances de cet algorithme et s'en servir commeréférence pour les suivants.
20/11/2017 Khaled Hassine 50
Stratégies deremplacementL'algorithme optimalL'algorithme FIFOL'algorithme de la seconde chanceL'algorithme NRUL'algorithme LRUL'algorithme de vieillissementPlus Récemment utilisé MRUL’anomalie de Belday
20/11/2017 Khaled Hassine 51
Premier Entrée Premier Sortie(FIFO : First In First Out).
On éjecte la page la plus ancienne enmémoire sans tenir compte des référencesqui ont pu être faite.
Le bon sens de cette approche : le bloc leplus anciennement chargé en mémoirecentrale est probablement (du moins onespère) celui qui a le moins de chance d'êtreutilisé lors des prochains accès
20/11/2017 Khaled Hassine 52
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 14
Exemple
20/11/2017 Khaled Hassine 53
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
0 7 7 7 2 2 2 4 4 4 0 0 0 7 7 71 0 0 0 3 3 3 2 2 2 1 1 1 0 02 1 1 1 0 0 0 3 3 3 2 2 2 1Faute X X X X X X X X X X X X X X X
L’algorithme génère 15 défauts de page.
Implémentation et limites
On peut implémenter cet algorithme grâce à une liste chaînée où 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 : Simple à implémenter
Inconvénients : manque d’efficacité. Il existe des suites de pages pour lesquelles cet algorithme fait plus
de défauts de page avec quatre cadres mémoire qu'avec troisPar 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.
20/11/2017 Khaled Hassine 54
Exemple : avec 3 cadres
Génère 9 défauts de page.
20/11/2017 Khaled Hassine 55
1 2 3 4 1 2 5 1 2 3 4 5
0 1 1 1 4 4 4 5 5 51 2 2 2 1 1 1 3 32 3 3 3 2 2 2 4Faute X X X X X X X X X
Exemple : avec 4 cadres
Génère 10 défauts de page.
20/11/2017 Khaled Hassine 56
1 2 3 4 1 2 5 1 2 3 4 50 1 1 1 1 5 5 5 5 4 41 2 2 2 2 1 1 1 1 52 3 3 3 3 2 2 2 23 4 4 4 4 3 3 3
Faute X X X X X X X X X X
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 15
Stratégies deremplacementL'algorithme optimalL'algorithme FIFOL'algorithme de la seconde chanceL'algorithme NRUL'algorithme LRUL'algorithme de vieillissementPlus Récemment utilisé MRUL’anomalie de Belday
20/11/2017 Khaled Hassine 57
Principe de base
Amélioration de l’algorithme FIFO : Conserve l’avantage de simplicité
Pallie les inconvénients en donnant une secondechance à la page en tête.
Comment faire ? Si la page en tête de liste est réutilisée, elle sera
enlevée au prochain remplacement.
20/11/2017 Khaled Hassine 58
Mise en œuvre 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. 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/2017 Khaled Hassine 59
Algorithme de la secondechance : liste chaînée
20/11/2017 Khaled Hassine 60
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 16
Algorithme de l’horloge : listecirculaire
Peut être vue comme une queue circulaireoù on avance sur les pages qui ont le bit à 1(en le positionnant à zéro) jusqu'à ce que l'ontrouve une page avec le bit d'utilisation àzéro.
Ceci est connu sous le nom de l'algorithmede l'horloge.
20/11/2017 Khaled Hassine 61
Algorithme de l’horloge : listecirculaire
20/11/2017 Khaled Hassine 62
Comme l'algorithme précédent mais l'utilisation d'uneliste circulaire évite de déplacer les pages.
Algorithme de l’horloge: unexemple (Stallings).
20/11/2017 Khaled Hassine 63
La page 727 est chargée dans le cadre 4.La prochaine victime est 5, puis 8.
Stratégies deremplacementL'algorithme optimalL'algorithme FIFOL'algorithme de la seconde chanceL'algorithme NRUL'algorithme LRUL'algorithme de vieillissementPlus Récemment utilisé MRUL’anomalie de Belday
20/11/2017 Khaled Hassine 64
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 17
Algorithme de remplacement de lapage 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.
Les pages sont reparties en 4 classes : 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.
L’algorithme NRU choisit la page à remplacer de laclasse non vide de plus petit numéro.
Cet algorithme a des performances assez satisfaisantes.
20/11/2017 Khaled Hassine 65
Pourquoi M et R ?
Différencier les pages récemment utilisées des autres : le système d’exploitation utilise les interruptions horloge : les
pages qui ont été utilisées (accédées en lecture ou en écriture) aurontleur bit à 1 et ne seront pas choisies par l’algorithme en cas deremplacement à effectuer.
L’algorithme tient aussi compte du bit de modification car 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.
20/11/2017 Khaled Hassine 66
Stratégies deremplacementL'algorithme FIFOL'algorithme de la seconde chanceL'algorithme NRUL'algorithme LRUL'algorithme de vieillissementPlus Récemment utilisé MRUL’anomalie de Belday
20/11/2017 Khaled Hassine 67
Principe de base
LRU (Least Recently Used : moins récemmentutilisé) se base sur l'heuristique suivante : Si un bloc en mémoire centrale est longuement non
sollicité, il y a des fortes chances que les prochainsaccè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ù cetteapproche échoue, elle a, en pratique, montré cesperformances.
20/11/2017 Khaled Hassine 68
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 18
Exemple
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
0 7 7 7 2 2 4 4 4 0 1 1 1
1 0 0 0 0 0 0 3 3 3 0 0
2 1 1 3 3 2 2 2 2 2 7
Faute X X X X X X X X X X X X
20/11/2017 Khaled Hassine 69
L’algorithme LRU génère 12 défauts de page.
Module 8 70
Comparaison de FIFO avec LRU
Contrairement à FIFO, LRU reconnaît que les pages 2 et 5 sontutilisées fréquemment
La performance de FIFO est moins bonne:
dans ce cas, LRU = 3+4, FIFO = 3+6
Difficulté de mise en œuvre
La mise en œuvre de l'algorithme LRU nécessite lamémorisation de l'heure de la dernière référence àchaque bloc présent en mémoire centrale.
Ceci pose de nombreux problèmesd'implémentation et peut demander de substantielsoutils matériels.
Tenir à jour une liste chaînée de pages : page la plus récemment utilisée en premier mettre à jour cette liste à chaque référence
mémoire. Couteux !!
20/11/2017 Khaled Hassine 71
Implémentation avec compteur
A chaque entrée de la table des pages, on ajoute uncompteur de temps qui est mis à jour à chaque accès. 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 pageréférencée on a toujours le temps de la dernière utilisation decette page
Rechercher sur l'ensemble de la table la victime : la pageavec la plus petite valeur de compteur
20/11/2017 Khaled Hassine 72
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 19
Implémentation avec pile
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.
20/11/2017 Khaled Hassine 73
Implémentation via des masques
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é à chaquepage.
On obtient ainsi un historique de l'utilisation de la page. 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.
20/11/2017 Khaled Hassine 74
Implémentation via des masques
Si l'on interprète ces octets comme des entiers nonsignés : 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 :
le meilleur pour implémenter le remplacement des pagespuisqu'il retire la page la moins pénalisante et celle quirisque fort d’être utilisée à nouveau.
le plus coûteux étant donné que les mises à jour sontfaite à chaque accès à une page.
20/11/2017 Khaled Hassine 75
Implémentation via des matrices
Les opérations sur les listes chaînées étant trèscoûteuse, les concepteurs ont eu recours aux matricescarré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 : 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 dansle cadre ayant la ligne contenant la plus petitevaleur binaire.
20/11/2017 Khaled Hassine 76
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 20
Exemple
20/11/2017 Khaled Hassine 77
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
Page 1 Page 3 Page 1
0 1 2 3 0 1 2 3 0 1 2 3
0 0 0 0 0 0 0 0 0 0 0
1 1 0 0 1 1 1 0 0 0 1
2 1 1 0 1 2 1 1 0 0 2
3 1 0 0 0 3 1 1 1 0 3
Page 2 Page 3
Suite deréférences :0 2 1 31 2 3
Stratégies deremplacementL'algorithme optimalL'algorithme FIFOL'algorithme de la seconde chanceL'algorithme NRUL'algorithme LRUL'algorithme de vieillissementPlus Récemment utilisé MRUL’anomalie de Belday
20/11/2017 Khaled Hassine 78
Critique du LRU
C'est une amélioration logicielle de l'algorithmeLRU en vu de le rendre moins coûteux.
A chaque entrée d'une page dans la table depages, on rajoute un champ compteur R qui estincrémenté de 1 quand une page est référencée.
En réalité : R est rajouté au compteur à chaque interruption de
l'horloge R est remise à 0 ensuite.
20/11/2017 Khaled Hassine 79
Critique du LRU
Quand un défaut de page se produit, si onremplace la page dont le compteur est le plusfaible, on risque d'avoir la situation suivante: une page accédée à maintes reprises il y aquelques temps sera considérée plus récentequ'une page accédée moins fréquemment etplus récemment.
La solution proposée consiste à inclure levieillissement du compteur.
20/11/2017 Khaled Hassine 80
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 21
Principe de l’algorithme
Le bit de référence R est inséré dans le bit de poidsfort du compteur en appliquant une opération dedécalage à droite. Si on regarde de près le principe del'algorithme, on remarque qu'en comptant à partir dela gauche : 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 pluspetite valeur du compteur.
20/11/2017 Khaled Hassine 81
Exemple
Top 0 Top 1 Top 2 Top 3 Top 4
Bits R 101011 110010 110101 100010 011000
Cadre 0 10000000 11000000 11100000 11110000 01111000
Cadre 1 00000000 10000000 11000000 01100000 10110000
Cadre 2 10000000 01000000 00100000 00010000 10001000
Cadre 3 00000000 00000000 10000000 01000000 00100000
Cadre 4 10000000 11000000 01100000 10110000 01011000
Cadre 5 10000000 01000000 10100000 01010000 00101000
20/11/2017 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
On ne peut pas distinguer deux pages dont tous les bits sont à 0 Le taille du compteur indique le nombre d’intervales comptabilisés
20/11/2017 Khaled Hassine 83
Stratégies deremplacementL'algorithme FIFOL'algorithme de la seconde chanceL'algorithme NRUL'algorithme LRUL'algorithme de vieillissementPlus Récemment utilisé MRUL’anomalie de Belday
20/11/2017 Khaled Hassine 84
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 22
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 etdifficiles à implémenter)
Facile à implémenter : Mémoriser seulement la dernière page référencée Minimise les surcharges
Assez efficace dans la pratique
20/11/2017 Khaled Hassine 85
Exemple 1
20/11/2017 Khaled Hassine 86
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
0 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 0
1 0 0 0 3 0 4 4 4 4 4 4 4 4 4 4
2 1 2 2 2 2 3 0 3 2 1 2 0 1 1
Faut X X X X X X X X X X X X X X X X
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 pourle LRU, l’algorithme engendre moins de surcharge (pas de recherche dumin, pas de structures de données complexes, …)
Exemple 2 : FIFO
Pagesollicitée
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 4 4 4 7
1 1 1 1 0 0 0 3 3 3 5 5 5
2 2 2 2 1 1 1 0 0 0 6 6
Faute depage
X X X X X X X X X X X X X
20/11/2017 Khaled Hassine 87
Total de fautes de pages : 13
Exemple 2 : LRU
Pagesollicitée
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 5 5 5
1 1 1 1 0 0 0 0 4 4 4 7
2 2 2 2 1 1 3 3 3 6 6
Faute depage
X X X X X X X X X X X X
20/11/2017 Khaled Hassine 88
Total de fautes de pages : 12
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 23
Exemple 2 : MRU
Pagesollicitée
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
1 1 1 1 2 2 2 2 2
2 2 3 3 4 5 6 7
Faute depage
X X X X X X X X X
20/11/2017 Khaled Hassine 89
Total de fautes de pages : 9
Stratégies deremplacementL'algorithme optimalL'algorithme FIFOL'algorithme de la seconde chanceL'algorithme NRUL'algorithme LRUL'algorithme de vieillissementPlus Récemment utilisé MRUL’anomalie de Belday
20/11/2017 Khaled Hassine 90
Exemple
Considérons la séquence de références despages suivante : 0-1-2-3-0-1-4-0-1-2-3-4.
On applique le PAPS comme algorithme deremplacement de page sur deux cas : 3 cadres
4 cadres
20/11/2017 Khaled Hassine 91
3 cadres
0 1 2 3 0 1 4 0 1 2 3 4
0 0 0 0 3 3 3 4 4 4 4 4 4
1 1 1 1 0 0 0 0 0 2 2 2
2 2 2 2 1 1 1 1 1 3 3Faute de page
X X X X X X X X X
20/11/2017 Khaled Hassine 92
Total de fautes de pages : 9
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 24
4 cadres
0 1 2 3 0 1 4 0 1 2 3 4
0 0 0 0 0 4 4 4 4 3 3
1 1 1 1 1 0 0 0 0 4
2 2 2 2 2 1 1 1 1
3 3 3 3 3 2 2 2
Faute de page X X X X X X X X X X
20/11/2017 Khaled Hassine 93
Total de fautes de pages : 10
Anomalie de Belady avecFIFO
20/11/2017 Khaled Hassine 94
Remarques
Si l'espace de travail est plus grand que la taille de lamémoire centrale (ou de la partie destinée à unutilisateur), il n’y a pas de miracle : les défauts depages seront très fréquents.
Lorsqu'un programme engendre, lors de sonexécution, des nombreux défauts de pages d'unemaniè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 passenormalement bien même si la taille du programme estlargement supérieure à la taille de la mémoirecentrale.
20/11/2017 Khaled Hassine 95
Remarques
Si le bloc à éjecter représente des donnéesmodifiées, il est indispensable de le réécrire enmémoire secondaire afin de garder une imagefidèle de son contenu. Par suite, pour accélérerle traitement de défaut de pages, la copie surdisque peut se faire pendent que l'UC exécutedes calculs et même sans qu'un traitement dedéfaut de pages ne se produise. Ceci permet derendre de plus en plus transparent à l'utilisateurla gestion en mémoire virtuelle.
20/11/2017 Khaled Hassine 96
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 25
Exercice
On considère un ordinateur dont le système demé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é (oui ou non) modifiée.
20/11/2017 Khaled Hassine 97
Question
En justifiant votre réponse, donner quelle sera la pageremplacée au prochain défaut de page pour chacundes quatre algorithmes de remplacement suivants :PAPS, NRU, LRU, MRU.
20/11/2017 Khaled Hassine 98
Cadre Date de Chargement(à l’instant t=)
Date d’accès(à l’instant t=)
Nombred’accès
Modifié
0 150 180 1 Oui
1 120 260 4 Non
2 230 275 2 Oui
3 100 320 5 Oui
Cas d’une organisationsegmentée de la mémoire
Si une information à laquelle on veut accéder ne setrouve pas en mémoire, le SE charge tout le segmentauquel elle appartient.
La taille non uniforme des segments impose ledégagement d'un espace suffisant pour le ranger enMC : 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 demasse.
Dans le deux cas, la manipulation est lourde et, parconséquent, coûteuse en temps.
20/11/2017 Khaled Hassine 99
Remarque
Toutes les informations présentes dans lesegment ne sont pas utilisées de la même façonpar 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ésentesdans le segment est chargée inutilement enmémoire puisqu'elle est peu (ou pas) utilisée.
20/11/2017 Khaled Hassine 100
Faculté des Sciences de GabesDépartement d’informatique
20/11/2017
Cours Système d'exploitation 26
Cas d’une organisation paginée de lamémoire : Gestion plus facile
L'organisation de la mémoire en pages permet deremédier aux inconvénients de la segmentation. Eneffet, 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 estbeaucoup plus simple que la réorganisation de lamémoire pour le placement des segments.
20/11/2017 Khaled Hassine 101 20/11/2017 Khaled Hassine 102