Vous êtes sur la page 1sur 12

Gestion de mémoire

1 Introduction

Après l'UC, la mémoire centrale est le deuxième composant principal de


l’architecture de Von Neumann. Son rôle est de conserver les informations
(données et programmes) manipulées par l’UC et de les restituer en cas de 3. Libération de l’espace et restitution : Forcée ou volontaire.
besoin. Ainsi, pour qu’un programme puisse être exécuté sur des données par 4. Partager des informations (données et programmes) entre les porcess
l’UC, les (programme et données) doivent être chargés en MC d’abords. le utilisateurs
chargeur cherche un espace libre suffisant pour contenir P.
5. Protection de l’espace mémoire des processus et du SE.
Pour maximiser le rendement de l’UC dans un système multiprogrammé, 6. Surpasser les limites physiques de la capacité de la MC.
plusieurs questions se pose concernant :
 Ces objectifs doivent être accomplie d’une manière efficace, par
• Comment partager les données entre les processus ? augmentation des performances du système informatique et la transparence
• Comment protéger l’espace mémoire de chaque processus? pour l’utilisateur.
• Qui et comment faire l'allocation d’espace mémoire aux process?
• Comment et quand la Restitution de l’espace libéré par le process se 3 Gestion de la Mémoire centrale dans les systèmes
fait?
monoprogrammés
Pour répondre à ces exigences, le SE doit se doter d’un module spécial de MC
gestion de la MC appelé Gestionnaire de la MC -Memory Management Unit- Un système mono programmé est caractérisé par la présence SE
MMU. d’un seul processus utilisateur prêt dans la MC. Cette dernière
est divisée en deux zones :
2 Objectifs de la gestion de la mémoire centrale - Zone réservée au SE ou noyau (kernel), par ses Prog
différents modules et drivers où il sera toujours Usager
1. Organisation de la MC : structuration des données en un ensemble de mots résident durant toute l’activité de la machine.
mémoires et effectuer une traduction des adresses logiques des données à - Zone réservée à l’utilisateur actif (elle est totalement à
des adresses physiques. sa disponibilité).
2. Allocation et Réallocation : attribution d’un espace mémoire,
éventuellement libéré, à un processus demandeur

1
3.1 Swapping (ou méthode de va et vient) 4 Gestion de la Mémoire centrale dans les systèmes
Dans le mono programmé, le processus qui occupe un espace mémoire, il le multiprogrammés
gardera jusqu'à sa terminaison. Pour palier à ce problème, une libération
temporaire de l'espace occupé pour donner l'occasion aux processus en attente Nous distinguions deux approches principales de gestion de la mémoire :
dans le disque d'occuper la mémoire centrale.
1- Approche d’allocation contiguë : L’espace d’adressage du processus
Le principe de Swapping se base sur l'état d'un processus, si le processus P1 se est linéaire. L'espace des adresses physiques est l'ensemble des entiers
bloque suite à une E/S, un autre processus P2 est chargé pour s'exécuter. compris entre 0 et N-1
Un programme  ensemble de mots mémoires contiguës inséparables
3.2 Technique de recouvrement (insécables).
La taille d’un programme peut dépasser la taille de la MC. Pour surpasser On trouve dans cette approche principalement deux types de technique:
cette limitation dans un système monoprogrammé, le programmeur doit - Technique d’allocation par partitions fixes
diviser son programme au moment de la conception en un ensemble de - Technique d'allocation par partitions variables.
modules et les charger dynamiquement à l’exécution en MC de telle sorte qu’il 2- Approche d’allocation non contiguë :
garde que les modules dont il a besoin effectivement. Chaque nouveau module Un programme  ensemble de mots mémoires non contiguës séparables
chargé prend la place du module qui doit être déchargé. (sécables).
Un programme peut être divisé en une succession de morceaux contenant
chacun un ensemble de mots contiguës. Chaque morceau peut être traité
Zone Système Mémoire indépendamment des autres. On trouve dans cette approche principalement
Secondaire les technique de pagination, segmentation et la segmentation paginée
Swap Out
P1 P5 P2 Gestionnaire de MC dans un
système multiprogrammé
Process Actif
Faisant E/S se P3 P4
bloque
Allocation contiguë Allocation non contiguë
Swap In

Figure 1 Technique de swapping Allocation par Allocation par Système de Système de


partitions fixes partitions pagination segmentation
variables paginée

Système de
segmentation

Figure 2 Les approches de gestion de mémoire centrale dans un système


multiprogrammé
2
4.1 Allocation contiguë la libération de cette partition.
Il se peut qu’il existe des partitions libres, alors que des programmes sont en
4.1.1 Allocation contiguë par partitions fixes attentes dans des files d'attente des autres partitions.
La MC est partitionnée de manière statique (fixe) en un ensemble de zones
appelées « Partitions ». Le nombre et la taille de ces partitions est défini (ou 4.1.1.2 Programme translatable « relogeable »
fixé) par le système ou, par le constructeur de la MC. Le processus peut être logé dans n’importe partition à condition qu’elle soit
L’un des problèmes de conception de tel système est la difficulté de libre et suffisante. Par conséquent, le gestionnaire de la mémoire gère une
déterminer le nombre et les tailles adéquats de chaque partition. seule fille d’attente qui contient tous les processus en attente d’être logés
Remarque: dans une partition. A la libération d’une partition, le gestionnaire de la MC
Selon la nature du code du programme à exécuter (code absolu ou translatable va choisir (selon une stratégie) un processus adéquat de la file pour qu’il y
« relogeable »), un programme devra ou non être chargé et exécuté dans une soit logé.
partition précise.
4.1.1.3 Inconvénients de l’allocation contiguë par partition fixe
4.1.1.1 Programme absolu Deux effets sont générés dans cette approche :
L’exécutable est généré pour qu’il soit logé dans une partition bien Fragmentation Interne : Lorsqu’un processus n’occupe pas tout l’espace
déterminée. Au chargement, si cette partition est libre, le programme y sera de la partition. L’espace restant est inutilisable.
logé sinon le chargeur le met en attente. Ainsi, le gestionnaire associe à Fragmentation Externe : Lorsqu’un processus ne trouve pas une partition
chaque partition une file d’attente qui contient tous les programmes qui attendent de taille convenable alors que la somme des partitions libres le satisfait.

4.1.2 Allocation contiguë par partitions variables


SE L'ordre d'arriver SE Les processus suivant SE
des requêtes : ont terminé : Pour réduire la fragmentation interne, les partitions doivent êtres variables.
P1 - 128 P1 : P3 : Il consiste à partitionner la MC selon la demande des processus et au
1280K 128
P1 : 128 k P2 – 512 P2 moment de chargement. Ainsi, un processus aura un espace égal à sa taille
P2 : 512 (ou à son voisinage). Les zones libres sont organisées dans une liste
P3 : 256 doublement chaînée.
P4 : 128
P5 : 400 P3 - 256 256
4.1.2.1 Stratégies d'allocation
P4 -128 P4 -128 Dans une organisation à partitions variables, il existe à chaque instant un
Libre - Libre - ensemble de partitions libres de différentes tailles avec des processus
256 256 demandeurs d'espace mémoire. Trois principales stratégies d'allocation
existent : 1. First Fit 2. Best Fit 3. Worst Fit
Au début l’espace P5 en attente P5 en attente malgré que la
user est vide somme des espaces libres lui
suffise.
Figure 3 Fragmentation externe

3
4.1.2.1.1 First Fit - La Zone choisie est la meilleure
Parcourir la liste des zones libres jusqu’à la rencontre de la première zone Inconvénients :
supérieur ou égale à la demande. - Fragmentation Externe, les petites tailles seront rarement
Avantage: réutilisables.
Stratégie rapide en temps d'exécution  Allocation rapide - Recherche lente  Allocation lente.
Inconvénients:
4.1.2.1.3 Worst Fit :
Un processus est placé dans la partition la plus grande. Si le gestionnaire
Etat de la MC utilise une liste des zones libres, cette liste doit être triée par ordre
avant l'allocation décroissant pour éviter de parcourir toute la liste.
Résidu Avantage:
SE SE de 3 SE SE - La Fragmentation externe permet d'avoir des résidus de grande de
16 P 13 16 16 taille. Ceci augmente la possibilité de la réutilisation des résidus
Résidu
par d'autres process.
de 1
14 14 P 13 Inconvénient:
- Sans une liste triée la Recherche sera lente
Remarques:
5 5 5 5 Résidu
de 17 - Il est important d'utiliser une liste doublement chaînée contenant les
30 First 30 Best 30 Worst P 13 zones libres, trier ces zones selon un ordre (croissant ou
Fit Fit Fit décroissant), permet au gestionnaire de parcourir la liste de début à
17
P=13 P=13 fin et vis vers sa.
P=13 Comment peut on exploiter les résidus issus de la fragmentation interne
?

Figure 4 Exemple d'application de First Fit, Best Fit et Worst Fit. 4.1.2.2 Compactage de l'espace Mémoire libre
Une opération de compactage consiste à rassembler les partitions (zones)
On peut crée des partitions qui ne sont pas intéressantes (exp: 3k voir la ), qui résidus en une partition plus grande. Cette opération est appelée aussi
ne seront peut être jamais utilisé  Fragmentation interne. ramasse miettes ou Garbage Collector.
4.1.2.1.2 Best Fit : Remarque
Un processus est placé dans la partition dont le résidu mémoire sera Le compactage n’est possible que si le système se dote d’un chargeur
minimal. relogeable.
Choisir une zone dont la taille est la plus proche de la demande, ce qui
implique un parcours complet de la liste.
Avantage: 4
P1 MC

4 ko Case 0
Page 0
4.2 Allocation Non contiguë Case 1 Page 0-P1
Le gestionnaire de mémoire considère qu'un programme est partageable en Page 1 Case 2 Page 3-P1
morceaux qui peuvent occuper des espaces libres éparpillés dans la MC. Allocation
Page 2 Case 3
En fonction des tailles de ces morceaux, on distingue deux stratégies : Case 4 Page 0-P2
Page 3
Si les morceaux du programme sont de tailles fixes et égales, on parle de Case 5 Page 2-P1
Espace d’adressage
système de pagination. logique de 16 ko Case 6 Page 3-P1
- Chaque morceau est une page.
P2 Case 7 Page 1-P2
Si les morceaux du programme sont de tailles variables, on parle alors de Page 0
système de segmentation. Case Page Processus
Case 0 -1 (libre)
Page 1
- Chaque morceau est un segment. Case 1 0 P1
Espace d’adressage
Case 2 3 P1
4.2.1 Système de pagination logique de 7 ko Case 3 -1
Case 4 0 P2
L’espace d’adressage des programmes est divisé en un ensemble de Espace libre
Case 5 2 P1
Fragmentation
morceaux de même taille appelés PAGES. Cet espace est appelé l’espace interne Case 6 3 P1
logique du programme. Les adresses référencées sont relatives par rapport Case 7 1 P2
au début du programme (l’adresse zéro ‘0’, le chargeur doit être relogeable Table des cases
Figure 5 Exemple
m-1 n-1d’une pagination de deux processus 0
« de réimplantation ») elles sont, aussi, appelées adresses logiques.
- La MC est aussi divisée en un ensemble de morceaux de même taille Les n bits restants
CASES m-n de poids de poids faible
fort
- La taille d’une page égale à la taille d’une case. Cette taille est définie par le p d
matériel et le SE cible. Généralement c’est une puissance de 2 (Exp 24 K) Figure 6 Calcul d’une adresse paginée

4.2.1.1 Conversion d’une adresse logique à une adresse physique


Avec la pagination, l’adresse logique dans un programme devienne une Méthode de calcul de <p,d> pour une adresse adr écrite sur m bits, avec une
adresse paginée <p,d>. Cette adresse est formée d’un numéro de page p et taille des pages de 2n mots, est comme suit :
d’un déplacement d relatif par rapport au début de page Numéro de page (p) : m-n  p= adr Div 2n
Déplacement (d) : n bits restants  d=adr Mod 2n

Exemple :
Une adresse AB = 1010 1011 sur 8 bits, m=8 bits. Nous avons aussi des
pages de taille 26 mots.
Donc le nombre de pages est de 2m-n=28-6=4.
Le déplacement à l’intérieur d’une page est de n = 6bits. 5
Alors l’adresse logique devienne adresse paginée <P,D> comme suit :
P= 171 Div 64 = 2, P=2 La page numéro 2 UC MMU MC
D =171 Mod 64 = 43, D=43 un déplacement dans la page numéro 2. P1 adr Table des pages
PTBR adr
1010 1011  <2, 43> P1
Premier accès C
Dans la mémoire centrale il faut faire la correspondance adresse paginée  . mémoire
Inst @
adresse physique dans la MC. ….
L’adresse physique est obtenue en remplaçant le numéro de page P par le …. +
numéro de la case C. Le déplacement D dans la page étant le même dans la 1
case. De ce fait, pour chaque processus une table de pages est construite
contenant les correspondances numéro de page  numéro de case. P D + l’@ de la
Cette table est placée en mémoire centrale. 2 case C
@ paginée
l’@ physique
Chaque processus enregistre l’adresse de la table dans son PCB. @ recherchée
Lorsque un processus est élu, cette adresse est placée dans le registre PTBR Deuxième accès mémoire
(Page Table Base Registre) de la MMU. Figure 8 Accès mémoires pour calculer une adresse physique
Exemple :
Prenant les deux processus de la Figure 5 :

Processus 1
MC
Page 0 Case 1 Processus 2 Cache
Page 0 Case 4 MMU Table des pages
Page 1 Case 7 1 adr
Page 2 Case 5 Page 1 Case 7 p,c
P1
Page 3 Case 2 C
PTBR adr
- 1ere accès mémoire : pour lire l’@ début de la table des pages et trouvé
connaître le numéro de la case pour calculer l’adresse physique de la Non trouvé
case. + 2’
- 2emme accès pour l’adresse recherchée tel que adresse physique de la +
P D
case + déplacement. + 3’
d
l’@ physique
Pour accélérer les actions mémoire on utilise un cache placée pris de la MC, 2 @ recherchée
contient des couples (pages, adresses de cases) les plus récemment utilisées.
Figure 7 Un seul accès mémoire par le biais de cache pour calculer une
@ physique

6
4.2.1.2 Protection de données dans un système paginée l’adresse début du segment. Ceci est par l’utilisation de la table des
L’utilisation des tables de pages pour chaque processus garanti la protection segments qui est une structure logicielle stockée dans la MC (zone
des données. Ainsi, les pages peuvent être en lecture seul, protection contre système). Ainsi, le MMU posssede deux registres :
l’écriture malveillant des autres processus. Le STBR (Segment Table Base Register) qui contient un pointeur sur la
- table des segments d’un processus actif.
4.2.2 Système de segmentation de la MC - Le STLR (Segment Table Length Register) qui contient le nombre
de segment du processus actif.
Dans la pagination, le découpage de processus ne correspond pas à l’image
que le programmeur a de son programme.
Pour un programmeur, un programme est présenté par : adresse d’implantation Taille
MC
- des données manipulées par le programme du segment dans la MC Sys
- programme principal ou code S0 00 512
- sous-programmes (procédures / fonctions), pile. S1 512 300 Seg0
L’espace d’adressage d’un programme est divisé en un ensemble de morceaux S2 1212 64 512
n’ayant pas la même taille, mais correspond à chaque partie du programme. S3 1426 700 Seg1 : 300
Table des segments d’un processus 400
Donnée Segment 1 Seg3 : 64
50 ko Figure 9Segmentation d’un processus dans la MC
Fonction X Prog 150
principal Segment 2 Segment 3
20 ko 70 ko
Seg2 : 700
Pile
Segment 4
25 ko
Vue de l’utilisateur Le fonctionnement du gestionnaire est résumé dans l’algorithme suivant :
Segmentation
Figure 10 Vue de l’utilisateur & segmentation
Si (s> Nbr_s) alors
1 Déroutement (Segment inéxistant)
Sinon
Adr_table_s  s + adr (index d’entrée du segment)
4.2.2.1 Conversion d’une adresse logique à une adresse physique
Si (d> taiille) alors % taille de segment%
Avec la segmentation l’adresse logique est appelée adresse segmentée. Cette Déroutement (en dehors du segment)
2
adresse est formée du couple <s,d> : Sinon
- d’un numéro de segment : s @physique  adr + d %adr est une adresse
d’implantation du segement%
- d’un déplacement relatif par rapport au début du segment : d FinSi
Le MMU fait une conversion de l’adresse segmentée à une adresse physique FinSi
par l’association à chaque numéro de segment une adresse physique
d’implantation du segment mémoire, et par le déplacement d à partir de
7
MC
STLR
@ segmentée MMU MC
Nbr_S @ logique oui
< D
Table des segments
S D STBR S D
adr taille adr Ps Dps
>? S1
1
non S2 S2
+ + Taille adr
2 oui + +
S1 Addr f S0
@ Physique
non @ Physique
>? + S0
STBR
oui S3
S3
Table des segments Table des pages du segment
Déroutement Déroutement
Figure 12 Calcul d’adresse physique dans un système de segmentation paginé
Figure 11 Calcul de l’adresse physique d’une adresse segmentée

4.3 Mémoire virtuelle MV


4.2.2.2 Protection de données dans un système segmenté
Théoriquement, un programme de taille supérieure à la taille de la MC ne
La protection est identique à celle d’une pagination.
peut pas être chargé pour s’exécuter. Pour palier à ce problème, le principe
4.2.3 Système de segmentation paginée de la mémoire virtuelle est utilisé, il consiste à donner allusion aux
processus que la taille de la mémoire centrale est infinie. Une partie de code
Cette stratégie combine entre un système segmenté et un autre paginé. du programme est chargée dans la MC ,l’autre partie se situe dans une
Dans ce model, un segment est divisé à un ensemble de pages. De ce fait mémoire extension de la MC.
chaque processus a une table de segments. Chaque segment a sa propre table Le SE considère un espace de stockage de la mémoire secondaire (DD)
de pages. comme étant une extension logique de la MC. Cette espace est appelé zone
Le déplacement D dans un segment S est appelé Ds, ce dernier est converti en SWAP.
un couple <Ps,Dp> tel que, Ps est le numéro de la page dans le segment S et Un processus sera chargé par le SE entièrement dans (MC+SWAP),
Dp le déplacement à l’intérieur de la page uniquement une partie du process sera chargée dans la MC.

La plupart des systèmes d’exploitation implémentent la MV, en utilisant un


système de pagination.

4.3.1 Technique de chargement de pages - à la demande-


Chaque processus charge une seule page. Les autres pages ne sont chargées
que si elles se sont demandées par le processus. Si une instruction d’un prog
fait référence à une page qui n’existe pas dans la MC, cette page sera
8
Table des Pages de P1
MS Pour savoir quelles sont les pages qui sont dans la MC et celles dans la MS, le SE utilise un
Pge0 5 1 bit V dans la table des pages de chaque processus, ce bit est appelé bit de validation.
V MC
Pge1 2 1 V= 1  La page est chargée dans la MC, l’accès à elle est valide.
pg0 pg1 SE V=0  La page n’est pas chargée dans la MC, l’accès à elle n’est pas valide.
P1 Pge2 -- 0
pg2 pg3 Pge 3 -- Case 0 Pg1 – P3
0
Défaut de page :
Case 1 Pg0 – P2 Suite à une référence à une adresse adr, cette dernière est traduite en une adresse paginée
Table des Pages de P2
pg0 pg1 P2 2 Pg1 – P1 <p,d>. Le MMU consulte le bit V, si ce bit est à 0, le MMU génère un déroutement
Pge0 1 1 signalant que le processus veut accéder à une page inexistante dans la MC. Ce
Pge1 6 1 3 Pg2 – P3
déroutement est appelé défaut de pages.
pg0 pg1 4 Exemple : Dans le Pentium, l’interruption N° 14 correspond à un défaut de pages.
P3 Table des Pages P3
5 Pg0 – P1
pg2 Traitement de défauts de pages :
Pge0 -- 0 Pg1 – P2
6 La routine de traitement de cette interruption consiste à charger la page manquante de la
Pge1 0 1
7 MS vers la MC. le numéro de la page demandée est le même numéro qu’a celui qui existe
Pge2 3 1 dans la MS. La page dans la MS sera trouvée par l’utilisation de son adresse donnée dans la
table des pages.
Figure 13 La Mémoire Swap, la MC et les programmes sont divisés en pages
Dans le cas où il y des case vide dans la MC, la page demandée sera chargé dans cette case.
S’il n’ya aucune case vide, le MMU doit remplacer le contenue d’une page dans la MC
d’un processus par celle qu’a été demandée.
Table des Pages de P1 Questions :
MS La page victime est choisie parmi les pages du même processus ou d’un autre processus ?
Pge0 5 1
V MC  Stratégies de remplacement
Pge1 2 1 Le SE doit il sauvegarder le contexte de la page victime ?
pg0 pg1 SE
P1 Pge2 -- 0
pg2 pg3 4.3.1.1 Allocation globale ou locale
Pge 3 -- 0 Case 0 Pg1 – P3
Globale : la « victime » est prise de n’importe quel processus
Case 1 Pg0 – P2
Table des Pages de P2 Locale : la « victime » est prise du processus qui a besoin de la page. (un seul et le même
pg0 pg1 P2 2 Pg1 – P1 processus).
Pge0 1 1
Pge1 6 1 3 Pg2 – P3
pg0 4 4.3.2 Stratégies de remplacement de pages
pg1
P3 Table des Pages P3
5 Pg0 – P1 Les étapes à suivre suite à un défaut de page sont les suivantes :
pg2
Pge0 -- 0 Pg1 – P2
6 1- Chercher la page manquante dans la mémoire SWAP
Pge1 0 1
7 2- Trouver une case dans la MC libre
Pge2 3 1
- Si la case libre n’existe pas : Choisir une case Victime pour la faire sortir de la
Figure 14 La Mémoire Swap, la MC et les programmes sont divisés en pages MC vers la MS(swapper out) et mettre à jour la table des pages du processus
victime.
immédiatement chargée. 9
3- Charger la page désirée depuis la MS (Swapper In) et mettre à jour la Demandes 1 2 3 1 4 1 2 5 1 2 3 4 5
table des pages du process actif
Case 1 1 1 1 1 4 4 4 5 5 5 5 5 5
4- Continuer l’exécution du process actif. Case 2 2 2 2 2 1 1 1 1 1 3 3 3
Remarque : Case 3 3 3 3 3 2 2 2 2 2 4 4
D D D D D D D D D
Le contexte de la page victime est sauvegarder (Swap out), uniquement si elle
est modifiée. Sinon la nouvelle page écrasera l’ancienne page puisque une D veut dire un défaut de page  9 défauts de pages
copie de la page victime existe déjà dans la MS. Pour implémenter cette idée, Est-ce que par l’augmentation de nombre de case on diminue le nombre de
on ajoute un autre bit M dans la table des page appelé Bit ‘Modifier’ défauts de pages ?? Nous ajoutons une case. Et on va voir :
indiquant si la page a été a été modifié ou non. Demandes 1 2 3 1 4 1 2 5 1 2 3 4 5
Case 1 1 1 1 1 1 1 1 5 5 5 5 4 4
Notion de chaîne de références aux pages: Case 2 2 2 2 2 2 2 2 1 1 1 1 5
A un instant donné de l’exécution d’un processue P, la séquence des numéros Case 3 3 3 3 3 3 3 3 2 2 2 2
de pages référencées par P est appelée chaîne de références du process. Case 4 4 4 4 4 4 4 3 3 3
D D D D D D D D D D
Exemple
- Soit un processus divisé en 5 pages, la taille d’une page = 100. Le résultat est l’augmentation du nombre de défauts de pages à 10.
Un Processus P fait successivement référence aux adresses suivantes : Ce phénomène est appelé l’anomalie de Belady.
100, 210, 355, 120, 420, 110, 200, 550, 139, 201, 395, 404, 505.
4.3.2.2 Stratégie de la page la moins récemment utilisée (Least
De ce fait, la chaîne de références associée est : 1,2,3,1,4,1,2,5,1,2,3,4,5.
Recently Used)
Plusieurs méthodes de remplacement existent :
La page victime sera la page la moins référencée dans un passé proche
FIFO- First In First Out LRU Least Recently Used Autrement dit, cette page devrait être une page anciennement référencée.
NFU Not Frequantly Used Algorithme de la seconde chance Demandes 1 2 3 1 4 1 2 5 1 2 3 4 5
Case 1 1 1 1 1 1 1 1 1 1 5 1 1 5
4.3.2.1 Stratégie de remplacement FIFO 2 2 2 2 2 2 2 2 2 2 2
Case 2 2
La mise en œuvre de cette stratégie est simple, la page victime ( à remplacer) Case 3 3 3 3 3 3 5 5 5 5 4 4
est la page la plus anciennement chargée. Case 4 4 4 4 4 4 4 3 3 3
Exemple : mémoire à 3 cases, avec la chaîne de référence aux pages
D D D D D D D D
suivante :
 8 défauts de pages.
1, 2, 3, 1, 4, 1, 2, 5, 1, 2, 3, 4, 5.
4.3.2.3 Stratégie de la page qui n’a pas été fréquemment utilisée
(ou Not Frequently Used) NFU
10
La page victime est celle qui n’est pas fréquemment utilisée, c’est la page la Plusieurs stratégies de gestion de la MC dans un système multiprogrammé ont été
moins utilisée dans le passé proche parmi les autres. développées qui peuvent être regroupées en deux grandes approches :
Demandes 1 2 3 1 4 1 2 5 1 2 3 4 5 - Approche allocation contiguë
Case 1 1 1 1 1 1 1 1 1 1 5 1 1 5 - Approche d’allocation non contiguë.
Case 2 2 2 2 2 2 2 2 2 2 2 2 2
La première considère l’espace d’adressage d’un programme comme étant une seule entité
Case 3 3 3 3 3 3 5 5 5 3 3 4 de mots insécable (inséparable). On trouve les techniques d’allocation par partitions
Case 4 4 4 4 4 4 4 4 4 3 statiques et variables.
D D D D D D D La deuxième approche voie un programme comme étant une entité de mots sécable
7 défauts de pages. (séparable) en un ensemble de morceaux insécables. Ainsi chaque morceau peut être logé
dans une zone suffisante uniquement à lui indépendamment du reste du programme. On en
4.3.2.4 Stratégie de la page fréquemment utilisé MFU Most trouve la segmentation, la pagination et la segmentation paginée. La première considère les
tailles des morceaux non identiques, tant que la pagination exige que les morceaux aient
Frequently Used une taille identique et fixe.
Pour prédire la non utilisation d’une page chargée fréquemment dans la MC, la La mémoire virtuelle propose deux avantages :
page victime est la page qui est fréquemment référencée.
Demandes 1 2 3 1 4 1 2 5 1 2 3 4 5 1- un programme d’une taille supérieure à celle de la MC peut être chargé et exécuté dans
la MC.
Case 1 1 1 1 1 1 1 1 5 5 5 1 1 5
Case 2 2 2 2 2 2 2 2 1 2 2 2 2 2- un programme peut être exécuté malgré qu’il est partiellement chargé en MC.
Case 3 3 3 3 3 3 3 3 3 3 3 3 La MV crée une indépendance entre l’espace d’adressage logique tel qu’il est vu par
l’utilisateur et l’espace d’adressage physique.
Case 4 4 4 4 4 4 4 4 4 4
D D D D D D D D
La pagination à la demande est la forme d’implémentation la plus répandue de la MV. Elle
 8 défauts de pages. se base sur le principe qu’une page se situe par défaut dans la MV et elle n’est chargée en
MC qu’au moment ou elle est référencée par le processus actif donnant lieu un déroutement
4.3.3 Ecroulement (défaut de page). Pour traiter le déroutement, un remplacement de pages est effectué par le
Un processus s’écroule lorsqu’il passe plus de temps à paginer qu’à s’exécuter. choix d’une page victime ; plusieurs stratégies sont proposées, leurs points commun est
Pour résoudre ce problème, un mécanisme a été développé qui s’agit du working set, d’analyser la chaîne de référence dans le passé pour essayer de prévoir le comportement du
processus dans un future.
A chaque processus P est associé un entier ∆.qui définit le nombre minimum de pages
nécessaire que P doit avoir dans la MC pour commencer son exécution.
Si l’une des pages de P est choisie comme victime, ce choix sera accepté par P si le nombre de
ses pages chargées dans la MC est strictement supérieur à ∆, sinon ce choix sera refusé.

5 Conclusion
Les performances du SE en dépendent de la gestion de la MC qui est accomplie par un module
du SE appelé gestionnaire de la mémoire centrale MMU. Ce dernier doit gérer l’espace
mémoire alloué aux process en terme d’allocation et restitution, mais aussi en terme de
protection et partage des informations.
11
12

Vous aimerez peut-être aussi