Vous êtes sur la page 1sur 37

Gestion de la mémoire

Hana Jouini
ISET de Jendouba
• Introduction
• La technique de recouvrement
• La technique de swapping
• La mémoire virtuelle
• La pagination
• La segmentation
Introduction
• Le rôle de gestionnaire de la mémoire est de
partager la mémoire entre l'OS et les diverses
applications.
• Le terme "mémoire" fait référence à la
mémoire principale, c'est à dire à la RAM,
Introduction
1. La monoprogrammation : Le modèle de base
Accepter un seul processus à la fois auquel on permet d'utiliser
toute la mémoire disponible en dehors de celle qu'utilise le
système.
Introduction
2. La multiprogrammation
Accepter plusieurs processus dans la mémoire disponible en
dehors de celle qu'utilise le système.
Il existe deux façons pour partager la mémoire entre les
processus:
• Multiprogrammation avec partitions fixes
• Multiprogrammation avec partitions variables
Introduction
2. La multiprogrammation
– Multiprogrammation avec partitions fixes
Le partitionnement est fait une fois pour tous au
démarrage du système par l'opérateur de la
machine, qui subdivise la mémoire en partitions
fixes.
Introduction
2. La multiprogrammation
– Multiprogrammation avec partitions fixes
Il existe deux versions:
(a) Chaque nouveau processus est placé dans la file
d'attente de la plus petite partition qui peut le
contenir (a).
(b) Utiliser une seule file d'attente : dès qu'une
partition se libère, le système y place le premier
processus de la file qui peut y tenir (b).
Introduction
2. La multiprogrammation
– Multiprogrammation avec partitions fixes
Introduction
2. La multiprogrammation
– Multiprogrammation avec partitions fixes
Le partitionnement peut se faire en
partitionnant la RAM en partition fixes de
tailles égales ou en partition fixes de tailles
inégales.
La multiprogrammation avec partitions fixes
peut conduire au problème de fragmentation
interne.
Introduction
2. La multiprogrammation
– Multiprogrammation avec partitions variables
Au lancement du système, on crée une seule zone libre
de taille maximale.
Lorsqu'on charge un programme, on le place dans une
zone libre suffisante, et on lui alloue exactement la
mémoire nécessaire.
Le reste devient une nouvelle zone libre. Lorsqu'un
programme s'achève, sa partition redevient libre, et
peut éventuellement grossir une zone libre voisine.
La multiprogrammation avec partitions variables peut
conduire au problème de fragmentation externe.
Introduction
2. La multiprogrammation
– Multiprogrammation avec partitions variables
La technique de recouvrement
• Si le nombre de processus devient supérieur
au nombre de partitions, on peut simuler la
présence en mémoire centrale de tous les
processus.
• La technique de recouvrement permet de
stocker temporairement sur disque des
images de processus afin de libérer la RAM
pour d'autres processus.
La technique de recouvrement
• Cette amélioration de l'usage de la RAM
nécessite un mécanisme plus complexe
d'allocation et de libération => le swapping (le
va-et-vient)
La technique de swapping
• Le swapping (ou le va-et-vient) consiste à
créer une zone mémoire (Swap) similaire à la
RAM dans une mémoire secondaire (disque
dur).
• Le swap se comporte comme la mémoire vive,
à la différence qu'on ne peut y exécuter des
processus (pour exécuter un processus sur le
swap, il faut le charger en mémoire vive)
La technique de swapping
La technique de swapping
• Un processus qui est inactif (soit bloqué, soit
prêt) peut donc être placé dans le swap.
La mémoire virtuelle
• Principe de la mémoire virtuelle: la taille de
l’ensemble formé par le programme et les
données peut dépasser la capacité disponible
de mémoire physique. Le SE conserve les
parties de programme en cours d’utilisation
dans la mémoire principale et le reste sur le
disque.
La mémoire virtuelle
• L’espace d’adressage d’un processus est
potentiellement illimité (limité à l’espace
mémoire total de la machine). On parle alors
d’adressage virtuel.
• Seule une partie de la mémoire virtuelle est
physiquement présente en RAM à un instant
donné. Ceci permet de gérer un espace virtuel
beaucoup plus grand que l'espace physique.
La mémoire virtuelle
• La Mémoire Virtuelle est une mémoire idéale;
elle a pour but principal de pouvoir exécuter des
processus sans qu'ils soient logés en mémoire en
leur totalité.
• Séparation entre la mémoire logique de
l’utilisateur et la mémoire physique.
• Seulement une partie d’un programme a besoin
d’être dans la mémoire pour l’exécution.
• Rend plus facile la tâche de programmation: le
programmeur n’a pas besoin de se préoccuper de
la quantité de mémoire physique disponible.
La mémoire virtuelle
La technique de pagination
• La mémoire physique est découpée en blocs
de taille fixe appelés cadres de pages.
• La mémoire virtuelle (logique) est également
subdivisée en blocs de même taille appelés
pages.
Taille pages = Taille cadres
La technique de pagination
• Pour exécuter un programme de n pages, il
faut trouver n cadres libres et charger le
programme.
• Il faut savoir quels cadres sont alloués, les
quels sont disponibles, etc.
• Cette information est disponible dans la table
de cadres (Frame table)
• Table de pages: traduit l’adresse logique en
adresse physique.
La technique de pagination
La technique de pagination
• La MMU (Memory Management Unit ou unité de
gestion de la mémoire) traduit les adresses
virtuelles en adresses physiques.
• La MMU mémorise :
– les cadres physiques alloués à des processus (sous
forme d'une table de bits de présence-table de
cadres)
– Les cadres mémoire alloués à chaque page d'un
processus (sous forme d'une table de Pages )
• On dit qu'une page est mappée ou chargée si elle
est physiquement présente en mémoire.
La technique de pagination
• Dans l'exemple précédent, les pages ont une
taille de 4 Ko. L'adresse virtuelle 12292
correspond à un déplacement de 4 octets
dans la page virtuelle 3 (car 12292 = 12288 + 4
et 12288 = 12*1024). La page virtuelle 3
correspond à la page physique 2. L'adresse
physique correspond donc à un déplacement
de 4 octets dans la page physique 2, soit :
(8*1024) + 4 = 8196.
La technique de pagination
• Par contre, la page virtuelle 2 n'est pas
mappée. Une adresse virtuelle comprise entre
8192 et 12287 donnera lieu à un défaut de
page. Il y a défaut de page quand il y a un
accès à une adresse virtuelle correspondant à
une page non mappée.
La technique de pagination
• En cas de défaut de page, une interruption se
produit et le processeur est rendu au SE. Le
système doit alors effectuer les opérations
suivantes :
– Déterminer la page à décharger sur le disque
(page victime) pour libérer un cadre
– Lire sur le disque la page à charger
– Modifier la table de bits et la table de pages
La technique de pagination
• Inconvénients:
– Taille arbitraire
– Fragmentation interne
– Plein de données inutiles (Pas forcément tout ce
dont on a besoin)
• Idée => Découper en tenant compte de la
structure du processus ! (code + données)
La technique de pagination
• Inconvénients:
– Taille arbitraire
– Fragmentation interne
– Plein de données inutiles (Pas forcément tout ce
dont on a besoin)
• Idée => Découper en tenant compte de la
structure du processus ! (code + données)
La segmentation
• l’espace d’adressage d’un processus est divisé
en segments, générés à la compilation.
Chaque segment est repéré par son numéro S
et sa longueur variable L.
• Un segment est un ensemble d'adresses
virtuelles contiguës.
La segmentation
• Adresse logique=Numéro de segment+ décalage
• Une adresse est donnée par un couple (S, d), où
S est le n° du segment et d le déplacement dans
le segment, d [0, L [.
• Résolution Memory Management Unit
– Transformer segment + décalage en adresse physique
– Vérifier que le décalage ne sort pas du segment
La segmentation
• Principe de résolution d’adresse
– Géré au niveau de la MMU
– On utilise une table des segments
– Numéro de segment (selecteur) → adresse physique
de base
– Base + décalage → adresse physique
ANNEXE
La fragmentation
• Fragmentation = apparition de zone
inutilisées dans la mémoire.
• Types:
– Fragmentation externe : il existe un espace
mémoire total suffisant pour satisfaire une
requête, mais il n’est pas contigu.
– Fragmentation interne : la mémoire allouée peut
être légèrement plus grande que le mémoire
requise.
La fragmentation
• Compactage:
Adresse virtuelle et adresse physique
• Adresse virtuelle (logique) Adresse générée
par la CPU.
• Adresse physique Adresse vue par l’unité de
mémoire physique.
• MMU (Memory Management Unit): Dispositif
matériel qui fait la conversion des adresses
virtuelles à physiques.
Adresse virtuelle et adresse physique
• Le programme utilisateur n’aperçoit jamais les
adresses physiques; il traite les adresses
logiques.

Vous aimerez peut-être aussi