Vous êtes sur la page 1sur 14

LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

La gestion de la mémoire.
Rappel :
Habituellement, un programme réside sur disque comme un fichier binaire exécutable. Il doit
ensuite être chargé en MC pour être exécuté. Selon la politique de gestion de la MC et du
processeur utilisés, le programme peut ou non être déplacé entre le disque et la MC pendant la
même exécution. Durant ces étapes allant du code source au code exécutable, les adresses du
programme sont représentées différemment. En général, les adresses, dans le code source, sont
représentées sous forme symbolique (identificateurs) qui vont être reliées à des adresses
translatables (relatives) par le compilateur, le chargeur reliera ces adresses translatables à des
adresses absolues (physiques).
La liaison des objets d’un programme peut être effectuée à n’importe quelle étape du
développement :
a) à la compilation : si on connaît l’endroit où va résider le programme pendant l’exécution.
Par exemple, les programmes.com de MS-DOS sont du code absolu relié à la compilation.
b) Au moment du chargement : par exemple, le cas du chargeur absolu.
c) Pendant l’exécution : pour permettre le déplacement du processus d’une zone mémoire vers
une autre. La conversion au moment de l’exécution des adresses logiques en adresses
physiques est réalisée par un dispositif matériel appelé MMU ou «Memory Management
Unit ».
UC @ physique MC
@logique
Registre de base

Dans ce qui suit, nous considérons que le programme utilisateur génère des adresses logiques.

1. INTRODUCTION :
La MC est une ressource physique nécessaire à l’exécution d’un processus, ce dernier ne peut
être exécuté sans être chargé en MC. Ce chapitre est consacré à l’étude de la fonction de SE :
gestion de la MC.
La notion de mémoire virtuelle est considérée comme une interface présentée par le SE aux
usagers pour la ressource mémoire : mécanisme qui consiste à cacher la mémoire réelle
restreinte et non extensible derrière une mémoire virtuelle pratiquement infinie. Les techniques
de base utilisées pour réaliser cette mémoire virtuelle sont mises en œuvre par un module de SE
appelé le gestionnaire de la mémoire.

2. Gestionnaire de la mémoire :
C’est un module du SE dont le rôle est la gestion de la MC.

2.1. Objectifs du gestionnaire de la mémoire :


a) simulation d’une mémoire infinie : en fournissant des politiques d’allocation qui permettent
de simuler une MC infinie vis à vis l’usager.
b) Réallocation : lorsqu’un processus terminé libère de l’espace mémoire il est nécessaire de
réorganiser la MC pour optimiser son utilisation.
c) Protection : la coexistence de plusieurs processus en MC nécessite la protection de chaque
espace mémoire vis à vis des autres.

1
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

d) Partage : il est parfois utile de partager un espace mémoire entre plusieurs processus. Le
gestionnaire de la mémoire doit permettre des accès contrôlés sans compromettre la
protection.
e) Transparence : les opérations mises en œuvre pour la gestion de la MC doivent être
transparentes, i.e. totalement transparentes aux processus.

2.2) fonctions du gestionnaire de la mémoire :


a) Garder trace du statut de chaque portion de mémoire (allouée ou libre).
b) Déterminer une politique d’allocation qui permet de décider qui doit avoir de la mémoire,
combien et pour combien de temps.
c) Déterminer une technique d’allocation qui permet d’allouer de l’espace à un processus.
d) Déterminer une politique et une technique de libération de la mémoire.

3. classification des techniques d’allocation de la mémoire :

Techniques d’allocation

Implantation statique réimplantation dynamique

Allocation en zone unique partition


Registre de base segmentation pagination

Simple Swapping de taille fixe de taille variable

4. Techniques d’allocation avec implantation statique :


La correspondance entre adresses logiques et adresses physiques est établie une seule fois, soit
lors de la traduction soit lors du chargement  un programme pour être exécuté doit être
chargé en totalité.
Deux techniques sont à distinguer :
 Un programme en MC à la fois (allocation en zone unique)
 Partage de la MC entre plusieurs programmes (partitionnement)

4.1) allocation en zone unique :


a) une seule zone contiguë :
Dans ce cas, la MC est divisée en 2 zones, l’une allouée en permanence à la partie résidente du
SE la deuxième réservée aux programmes usagers. La gestion de la MC est simple : le SE garde
trace de deux zones uniquement.

2
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

L’algorithme d’allocation
Début
Si taille (programme) > taille (espace usager) alors
Erreur (chargement impossible)
Sinon
Charger (programme) et exécuter
En fin d’exécution, libérer l’espace alloué.
Finsi
Fin

Inconvénients :
 Mauvaise utilisation de la MC (taille du programme <<< taille de l’espace usager).
 Mauvaise utilisation du processeur (inactif pendant les transferts).
 Taille du programme limitée par la taille de l’espace usager disponible.

b) Le swapping (va-et-vient) : dans cette méthode, une zone fixe de MC est réservée aux
programmes utilisateurs. Les programmes sont conservés sur mémoire secondaire sous forme
absolue. Pour être exécuté, le programme est amené en MC dans sa totalité. L’allocation du
processeur aux programmes détermine alors les transferts. En cas de réquisition du processeur,
le programme actif doit être transféré temporairement pour libérer la zone mémoire qu’il
occupait au programme prioritaire. Lorsqu’on décide de reprendre à nouveau le programme, il
faut le recharger de nouveau en MC.

SE
swap out (1) P1
Espace
usager swap in (2)
P2

Avantages : gestion très simple de la MC.


Peut être utilisée sur installation de petite taille.
Inconvénients : mauvaise utilisation de l’espace mémoire.
Mauvaise utilisation du processeur.
Taille du programme limitée par la taille de l’espace utilisateur.

Améliorations possibles de la technique :


Lorsqu’un programme est sauvegardé sur disque, on ne transfère que la partie des données
susceptible d’être modifiée.
L’algorithme de « la peau d’oignon » : lorsqu’un programme est recouvert par un programme de
plus petite taille, il suffit pour restaurer le plus gros programme de charger la partie ayant été
recouverte.

4.2. Partition de la mémoire :


C’est une technique simple pour la mise en œuvre de la multiprogrammation. La MC est divisée
en zones séparées ou partitions. Chaque partition a son propre espace d’adressage. Le
partitionnement peut être statique ou dynamique.

3
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

4.2.1. Partitions multiples statiques :


La MC est divisée en partitions de tailles fixes. Le nombre de partitions et la taille de chaque
partition sont fixés à la génération du système. Le statut, la taille et la base de chaque partition
sont rangés dans une table appelée « Table de Description des Partitions » ou « TDP »

Exemple :
0 Base de la partition taille état
100 0 100 Libre
100 300 Alloué
400 400 150 Libre
550
550 250 Alloué
800 100 libre
800
900

a) chargement de programmes :
 Programmes absolus : la liaison des objets est effectuée au moment du chargement,
le programme est lié à une partition donnée et ne peut s'exécuter en dehors de celle-
ci. Le gestionnaire de la MC gère une file des jobs en attente par partition selon le
schéma suivant :

FA des jobs SE
de Partition1 Partition 1
FA des jobs
de Partition2 chargeur Partition 2

FA des jobs
de P n Partition n

 Programmes relogeables : la liaison est effectuée au moment de l’exécution ; le


programme n’est lié à aucune partition ; il peut être chargé et exécuté dans la première
partition libre et de taille suffisante. Le gestionnaire de la MC gère une seule file
d’attente selon le schéma suivant :

SE
Partition 1

FA des Partition 2
jobs Chargeur

Partition n

4
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

b. Fragmentation mémoire :

 fragmentation interne : soit un programme de taille M et une partition P de taille N. Si


la partition de taille N est allouée au programme de taille M alors la partie de la partition
non occupée par le programme s’appelle « fragmentation interne »
 fragmentation externe : soit un programme de taille M. Si toute partition libre de taille
Ni telle que Ni<M, alors le programme de taille M ne peut être chargé dans aucune
partition libre (même si somme (Ni)>M) ; on parle alors de « fragmentation externe »
de la mémoire.

4.2.2 Partitions multiples dynamiques :


Afin d’améliorer la technique d’allocation de la MC à partitions fixes, on partitionne
dynamiquement la MC selon la demande. A chaque processus est allouée une partition
exactement égale à sa taille. Quand un processus termine son exécution, sa partition est
récupérée par le SE pour être allouée à un autre programme, complètement ou partiellement
selon la taille demandée.

Remarques :
Le programme une fois chargé en MC y demeure jusqu’à ce qu’il se termine (pas de
réimplantation dynamique).
Le placement des programmes dans les partitions se fait selon différentes stratégies  le
gestionnaire de la MC doit garder trace des partitions occupées et des partitions libres. Une
solution consiste à maintenir deux tables : une pour les partitions libres et une pour les partitions
occupées.

Stratégies de placement :
 Stratégie du premier qui convient (first-fit) : la table des partitions libres est triée par
ordre des adresses croissantes. Pour allouer une partition donnée, on commence par la
partition libre de plus basse adresse et la recherche continue jusqu’à la rencontre de la
première partition dont la taille est au moins égale à celle du programme en attente.
 Stratégie du meilleur qui convient (best fit) : la table des partitions libre est triée par
ordre de tailles croissantes. Pour l’allocation d’une partition donnée, on commence par la
partition libre de plus petite taille et la recherche continue jusqu’à la rencontre de la
première partition dont la taille est au moins égale à la taille du programme en attente.
 Stratégie du pire qui convient (worst fit) : on alloue au programme la partition de plus
grande taille. On doit parcourir toute la table des partitions libres sauf si elle est triée.

Fragmentation externe et compactage :


Les 3 algorithmes de placement souffrent de fragmentation externe. Si on suppose qu’il y ait une
requête d’allocation pour un programme de taille M et qu’il ne soit pas possible de le charger bien
que l’espace global soit supérieur à M à cause d’un émiettement de la MC, la solution consiste à
appliquer la méthode du compactage ou relogement de programmes. Son principe consiste à
déplacer le contenu de la MC vers un sens afin d’obtenir un seul espace libre. Cependant pour
réaliser le compactage, le SE doit être muni d’outils de relogement tels que les registres de base, la
pagination ou la segmentation. Les principes de ces méthodes permettent une réimplantation
dynamique de programmes.

5
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

5. Gestion de la mémoire avec réimplantation dynamique :


5.1. Concept de mémoire virtuelle :
C’est l’ensemble des emplacements désignés par les adresses engendrées par le processeur.
Ces adresses sont effectives (après indirection, indexation, etc.)
Deux organisations de mémoire virtuelle sont fréquentes :
 Mémoire virtuelle linéaire : les emplacements mémoire sont organisés séquentiellement et
désignés par des entiers consécutifs.
 Mémoire virtuelle segmentée : constituée d’un ensemble e segments, chacun est constitué
d’un ensemble d’emplacements consécutifs et peut avoir une taille variable.

5.2. Techniques d’allocation dynamique de la MC :


Objectif : réaliser le concept de mémoire virtuelle en :
 Permettant l’exécution d’un programme partiellement chargé en MC, ce qui permet
d’exécuter un processus dont la taille est nettement > à celle de la mémoire physique.
 Assurant que l’information nécessaire à l’exécution de l’instruction soit disponible au
niveau du processeur. On cherche alors à réduire la probabilité que l’information soit
absente (cet événement est appelé défaut de page ou défaut de segment) de la MC
lorsqu’elle est référencée.

Une politique d’allocation dynamique de la MC doit donc spécifier les points suivants :

a) Quand charger un objet en MC ?


 Lorsqu’on en a besoin (chargement à la demande).
 Avant d’en avoir besoin (pré chargement).
b) Où charger cet objet ?
 S’il y a assez de place libre, où le placer ? (problème de placement).
 Sinon, quels objets renvoyer en mémoire secondaire pour libérer de la place en MC ?
(problème de remplacement)
Dans tous les cas, une technique d’allocation dynamique impose l’usage d’un mécanisme de
réimplantation dynamique.

5.2.1. Réimplantation dynamique par registre de base :


C’est le premier mécanisme ayant été utilisé pour réaliser le relogement de programmes.
L’implantation en mémoire physique se fait par segment unique en utilisant une paire de registres :
le registre de base (RB) et le registre limite (RL)
Pour une adresse virtuelle (RB, RL, d), le calcul d’adresse physique suivant s’effectue à chaque
accès :

a := RB+d
Si a  RL alors
adresse physique := a
Sinon erreur /*déroutement traité par le SE pour violation de mémoire */
Finsi

Ce mécanisme a été amélioré et étendu par le mécanisme de segmentation.

6
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

5.2.2. Segmentation :
Selon Niklaus Wirth, un programme est la composition de données et de code. En programmation
on le traduit par un programme principal, des procédures ou fonctions et une table des symboles.
La segmentation est une stratégie de gestion de la mémoire qui supporte la vue utilisateur de
la mémoire. L’espace d’adressage logique (d’un programme) est une collection de segments.
Chaque segment dispose d’un numéro de segment S et d’une taille. Une adresse virtuelle =
S+d (où d est le déplacement dans le segment).

Implantation de la segmentation :
SDT
Calcul d’adresse physique :

UC Limite base
S d MC
@ virtuelle

oui @ phy

non
Déroutement : erreur d’adressage

A chaque segment, est associé un descripteur qui contient son adresse d’origine et sa taille. Les
descripteurs sont regroupés dans une table appelée table de description des segments maintenue en
MC. L’adresse de base de la SDT est stockée dans un registre spécial SDTBR ou registre de base
de la table des segments.
La segmentation permet d’implanter un segment n’importe où en MC et de le déplacer avec un coût
minimum (mise à jour du descripteur), on peut donc utiliser un segment comme unité d’allocation
de la MC et gérer celle-ci par zones de tailles variables.

Politiques d’allocation :
Le chargement d’un segment se fait à la demande. Trois algorithmes sont généralement utilisés en
fonction du mode de représentation des zones (segments physiques) libres ; le plus important est :

Les Zones libres chaînées :


On associe à chaque zone libre un descripteur stocké dans la zone elle-même et qui contient son
adresse d’origine, sa taille et l’adresse d’origine de la zone libre suivante. Pour trouver une zone
libre de taille t, on explore la liste des zones libres. La liste est circulaire et la recherche part de la
dernière zone allouée. Les algorithmes de placement peuvent être :
 Le first-fit : l’objectif recherché est la rapidité de la recherche.
 Le best-fit : l’objectif est une meilleure utilisation globale de la MC.
 Le worst-fit : l’objectif est de combattre l’émiettement.
Cas d’une libération de zone : on la réinsère dans la liste puis on la fusionne avec les zones libres
suivantes.

7
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

5.2.3. La pagination
La pagination est une technique d’implantation de la mémoire permettant d’implanter un
programme dans des zones de mémoire non contiguës. Elle consiste à diviser la mémoire virtuelle
en zones de taille fixe appelées «pages ». La mémoire physique est aussi découpée en blocs de
même taille que les pages appelés «cadres de pages » ou «cases ». Lors du chargement d’un
programme en MC, chaque page est logée dans une case ou cadre de page.
On distingue deux modes de pagination : La pagination à un niveau et la pagination à deux
niveaux.

5.2.3.1. Pagination à un niveau :

1°/ Mécanisme de base :

Fonction de
pagination

Mémoire virtuelle mémoire physique


Défaut de page

2°/ Traduction d’adresse virtuelle en adresse physique :

F d
UC Npage d
f
ncase

F : adresses de base de chaque table des pages mémoire physique


Page dans la mémoire physique.
Taille de page : est en général une puissance de 2 pour faciliter la traduction d’une adresse logique
en numéro de page et un déplacement dans la page.
Si la taille de l’espace d’adressage est 2m et la taille d’une page est 2n alors le nombre de pages est
de 2m-n
Dans l’adresse logique : les (m-n) bits de poids fort désignent le numéro de page
Les n bits de poids faible désignent le déplacement à l’intérieur de la page.

3°/ Caractéristiques de la pagination :


 Fragmentation externe : le problème est résolu car chaque case libre peut être allouée à un
processus qui la demande.
 Fragmentation interne : le problème persiste car la dernière case allouée à un processus est en
général non pleine.
 Le scénario d’allocation peut être :

8
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

o soit à la demande (on parle de pagination à la demande).


o Soit à l’arrivée d’un processus : la taille du processus est exprimée en nombre de pages
et les cases requises et disponibles lui sont allouées ; la table des pages est mise à jour.

4°/ Mise en œuvre de la fonction de pagination :


Etant donné un numéro de page virtuelle « npage », la fonction de pagination permet de déterminer
si cette page figure dans la MC et dans quelle case. Cette fonction est réalisée par un mécanisme
matériel. Trois techniques ont successivement été utilisées :

4.1°/ Mémoire associative :


Cette mémoire associative contient autant d ‘entrées que de cases en MC. Chaque case conserve le
numéro de page qu’elle contient à l’instant. Le coût de la technique est très élevé (recherche
séquentielle).
Npage d

o
1
ncase npage Ncase d
Adresse physique

Défaut de page (si echec)

4.2°/ Registres topographiques : c’est un ensemble de registres indexés par le numéro de page.
Npage d

1
0

npage Ncase d
1 ncase

Défaut de page si bit de présence = 0

9
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

4.3°/ Table de pages en mémoire centrale : c’est la réalisation la plus courante de la pagination.

Npage d

Npage ncase

Reg-base-table-pages

Ncase d
npage Présent = 1
1 0 Pr ncase

Présent = 0  défaut de page


Table de pages

Le bit de présence indique la présence ou non de la page en MC.


Le bit modif[npage] indique si la page a été ou non modifiée depuis son chargement en MC.
Le bit prot[npage] indique le mode d’accès autorisé à la page.
La mémoire associative conserve les cases des pages récemment utilisées. En raison de la propriété
de localité on a 90% de chance de trouver dans la mémoire associative le numéro de page de la page
virtuelle référencée.

5.2.3.2. Pagination à deux niveaux :

Problématique : La croissance de la taille des mémoires virtuelles (espace d’adressage logique)


rend les tables de pages encombrantes. Par exemple pour un espace d’adressage logique à 32 bits, et
une taille de page de 4Koctets (212), une table de pages va posséder 232/212 entrées soit 1M-entrées.
Si chaque entrée est de 4 octets (taille du mot est de 32 bits) alors la taille de la table des pages = 4-
Moctets, ce qui est très encombrant.
Solution : paginer la table des pages  les pages de la table des pages peuvent être chargées de
façon non contigüe ; de plus seules seront chargées, les pages de la table des pages sujettes à une
utilisation actuelle. Le mécanisme permettant de réaliser cette solution est la pagination à 2 niveaux.

Mécanisme de base :
 La mémoire virtuelle est divisée en hyper-pages, elles-mêmes divisées en pages.
 Une adresse virtuelle est un triplet (nhyp, npage, d) où :
o Nhyp : permet d’accéder à une table des hyper-pages dont chaque entrée contient
l’adresse de la table des pages de l’hyper-page.
o LTP : longueur de la table des pages de l’hyper-page nhyp ; elle permet de contrôler
l’accès à la table des pages (test si LTP<npage)

10
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

 La mémoire associative conserve en permanence les triplets (nhyp, npage, ncase)

Nhyp npage d
Nhyp npage ncase

Reg.base
LTP

Table des hyper-pages


présent
LTP Ncase d
1
Si présent = 0 alors
défaut de page
Table des pages de
l’hyper-page nhyp

5.2.3.3. Implémentation de la mémoire virtuelle:


Elle s’effectue communément par le mécanisme de la pagination à la demande.

1°/ pagination à la demande :


Elle consiste à utiliser « un chargeur paresseux » qui ne charge une page en MC que si elle est
référencée.
Que se passe-t-il alors lorsqu’un processus tente d’utiliser une page qui n’a pas été chargée ?

La détection de la présence ou non d’une page en MC est assurée par la consultation de l’indicateur
présent.
Exemple : considérons le processus P constitué de 8 pages virtuelles :

0 A 0
1 2 1
1 B
1 4 2 A
2 C
0 3
3 D A C
0 4 B
4 E B
1 7 5 G
5 F D
0 6 E H E
6 G
0 F
7 H 7
0

Table de pages
MC
Dans cet exemple, seules les pages A, B, C du processus P sont chargées. Dans le cas où la page
référencée n’est pas présente, on dit qu’il y a défaut de page.

11
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

2°/ Traitement du défaut de page :

1. examen de la TDP dans le PCB du processus pour vérifier la présence en MC de P.


2. le SE est invoqué pour ramener la page P en MC.
3. La page P absente est repérée en MS.
4. Le SE cherche un cadre de page libre (algorithme de placement) et charge P.
5. Le SE met à jour la TDP dans le PCB du processus pour rendre le bit présent à 1.
6. Le SE redémarre l’instruction interrompue.

SE
(3)
TDP
(1)
Utiliser (P) (2)
(6) 0

Case libre (4)


(5)

3°/ performance de la pagination à la demande :


La pagination à la demande influe sur le temps d’accès effectif et donc sur les performances du
système (temps de réponse plus longs).
Si ma : temps d’accès à la MC.
Et P : probabilité de l’occurrence d’un défaut de page,
Alors le temps d’accès effectif = (1-P)*ma + P* temps de traitement d’un défaut de page.
(>>>>>ma)
Donc le temps effectif d’accès est directement proportionnel au taux de défauts de pages. Il est
important de maintenir le taux de défaut de page bas dans un système de pagination à la demande ;
sinon le temps effectif d’accès augmente en ralentissant l’exécution des processus.

4°/ remplacement de pages


Jusqu’à présent, lors d’un défaut de page, le chargement d’une page absente est possible du fait
qu’on a toujours supposé que la recherche d’un cadre de page libre en MC s’effectue toujours avec
succès. Que se passe-t-il alors si on ne trouve pas de cadre de page libre ?

Plusieurs solutions peuvent être envisagées par le SE :


1. Mettre fin au processus ayant provoqué le défaut de page. solution à rejeter car le
programmeur n’est pas responsable de cette solution
2. Décharger l’ensemble des pages d’un programme en attente de l’UC cette solution
pénalise le programme déchargé et réduit le taux de multiprogrammation
3. Décharger une seule page de la MC : on dit qu’on effectue un remplacement de page. La
page déchargée est appelée page victime.

L’algorithme de traitement du défaut de page devient alors :


1. Localiser sur disque la page désirée.
2. Trouver un cadre de page libre
a. S’il existe, l’utiliser
b. S’il n’existe pas, utiliser un algorithme de remplacement pour sélectionner un cadre
de page victime
3. Sauvegarder la page victime sur disque, modifier la table des pages.
4. Charger la page désirée dans le cadre de page libéré, modifier la TDP.

12
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

5. Redémarrer le processus utilisateur.

Techniques de remplacement de page


 Remplacement global ou local :
Un remplacement est local lorsque la page victime est sélectionnée parmi les pages du processus
ayant provoqué le défaut de page ; il est global lorsqu’elle est sélectionnée parmi toutes les pages
présentes en MC.

 Chaine de référence :
C’est la séquence de numéros de pages ayant fait l’objet de références successives au cours de
l’exécution d’un processus.
Exemple : considérons une MC paginée dont la taille d’une page = 100octets. L’exécution d’un
processus fait référence aux adresses physique suivantes : 730, 041, 122, 130, 145, 231, 256, 078,
331, 350, 029, 431, 432, 229. la chaîne de référence associée est : 7, 0, 1, 2, 0, 3, 0, 4, 2
Le nombre de défauts de page pour une chaîne de référence donnée dépend également du nombre
de cadres de pages en MC. En général quand ce nombre augmente le taux de défauts de page
diminue.

Par la suite nous considérons la chaîne de référence précédente et une MC de 3 cadres de pages.
 Algorithmes de remplacement :

a) Algorithme FIFO : la page victime est la plus anciennement chargée. Cet algorithme est
simple à implanter. Il associe à chaque page, son temps de chargement :
b)
7 0 1 2 0 3 0 4 2
7 7 7 2 2 2 2 4 4
0 0 0 0 3 3 3 2
1 1 1 1 0 0 0
* * * * * * * *

Nombre de défauts de page =8.

b) Algorithme LRU (Last Recently Used) : remplace la page qui n’a pas été utilisée pour une
grande durée. Il associe à chaque page son temps d’exécution (le temps de la dernière utilisation )
mis à jour à chaque référence de la page. Il peut être implanté de plusieurs façons :
 La pile : quand une page est référencée son numéro est placé en tête de pile  le N° de
page en tête de pile indique la page la plus récemment utilisée et le N° en bas de pile
indique la page la moins récemment utilisée (page victime).
 Le bit (les bits) de référence : à chaque page on associe un bit de référence dans la TDP.
Initialement tous les bits de référence sont nuls. A chaque référence d’une page, son bit de
référence est mis à 1. l’idée est d’utiliser plusieurs bits de référence (par exemple 8).les 8
bits contiennent alors l’historique de la page pendant les 8 dernières périodes.
Exp : - 8 bits = 0000 0000  la page n’a pas été utilisée.
- P1(11000100) et P2 (00001111)P1 a été référencée avant P2P1 est moins récemment
utilisée que P2

13
LMD - 2éme année SI - PS Chapitre 3: Gestion de la mémoire

Exemple :

7 0 1 2 0 3 0 4 2
7 7 7 2 2 2 2 4 4
0 0 0 0 0 0 0 0
1 1 1 3 3 3 2
* * * * * * *

Nombre de défauts de page = 7

c) Algorithme optimal : la page victime est celle qui ne sera pas utilisée dans le futur pour une
longue période. Il induit le taux de défaut de page le plus bas, cependant il est difficile à implanter
car il impose la connaissance de la chaîne de référence de chaque processus.
Exemple :

7 0 1 2 0 3 0 4 2
7 7 7 2 2 2 2 2 2
0 0 0 0 0 0 0 0
1 1 1 3 3 4 4
* * * * * *

Nombre de défauts de page = 6

d) Algorithme de la seconde chance : basé sur le remplacement FIFO en premier, l’algorithme


sélectionne la page la plus anciennement chargée mais scrute d’abord son bit de référence ; s’il est
nul alors la page sera remplacée ; s’il est égal à 1 ( la page a été récemment utilisée) alors on
donnera à la page une seconde chance et on sélectionne la prochaine page selon FIFO . quand une
page a bénéficié de la seconde chance, son bit de référence est remis à 0 et son temps d’arrivée est
réajusté au temps courant une page ayant bénéficié d’une seconde chance ne sera remplacée que
si toutes les autres pages ont été remplacée ou qu’elles on obtenus une 2ème chance.

14

Vous aimerez peut-être aussi