Académique Documents
Professionnel Documents
Culture Documents
Chapitre 3 Gestion de La Mémoire Moodle PDF
Chapitre 3 Gestion de La Mémoire Moodle PDF
1. Introduction :
Tout processus existant dans le système a besoin d'espace mémoire pour y charger son programme
et ses données. Car le programme d'un processus ne peut être exécuté que s'il est chargé en
mémoire centrale (principale). Le processeur prélève les instructions à exécuter à partir de la
mémoire centrale.
2. Définition
Une mémoire est un circuit permettant d’enregistrer, de conserver et de restituer des informations.
Elle se présente sous la forme d’un ensemble de cases. Chaque case possède une adresse et peut
contenir un mot de données d’une longueur m qui est toujours une puissance de 2.
Figure 1: MMU
4. Gestion de la mémoire
C'est un module système dont la fonction est de gérer la mémoire principale. Il doit garder en
permanence des informations concernant l'espace libre et occupé de la mémoire. Le gestionnaire
alloue de la mémoire aux processus qui en ont besoin et récupère la mémoire libérée par un
processus. La mémoire principale étant limitée, le gestionnaire ne peut pas charger tous les
processus en mémoire centrale. Pour satisfaire les besoins des processus, le gestionnaire doit
décharger certains programmes de la mémoire principale et charger d'autres programmes à partir du
disque. Il est à noter que les programmes déchargés de la mémoire principale sont sauvegardés sur
1/6
Université de Blida 1 Système d’exploitation
Département d’informatique 2ème année LMD
disque (mémoire secondaire ou auxiliaire). Les principales fonctions d'un gestionnaire de la mémoire
sont les suivantes :
Allouer / libérer l'espace de la mémoire principale,
Charger / décharger (sauvegarder) les programmes des processus,
Protéger les programmes et les données des processus,
Partager des programmes et/ou des données entre plusieurs processus.
2/6
Université de Blida 1 Système d’exploitation
Département d’informatique 2ème année LMD
3/6
Université de Blida 1 Système d’exploitation
Département d’informatique 2ème année LMD
Inconvénient :
Cette forme d'allocation conduit éventuellement à l'apparition de trous trop petits pour les allouer à
d’autres processus : c'est la fragmentation externe.
Exemple : Soit un programme qui demande un espace mémoire de 50 unités et une mémoire avec 2
partitions libres de taille respective 30 et 40 unités.
La requête de ce programme ne peut pas être satisfaite, car il n'existe pas de partition libre dont Occupée
la taille est supérieure ou égale à la taille demandée par le programme. Libre : 30
On dit qu'il y a fragmentation externe, si un programme de taille n est en attente de la mémoire Occupée
alors qu'il existe un espace mémoire total suffisant pour satisfaire la requête (demande) du Occupée
programme mais cet espace n'est pas contigu : Il est constitué de plusieurs petites partitions (la
Libre : 40
somme des tailles des partitions libres >= taille du programme).
Une solution consiste à compacter les zones allouées en les déplaçant, toutes, vers une extrémité
de la mémoire (généralement en bas). Ce qui fait apparaître de l'autre bout une zone libre unique
dont la taille est la somme des tailles des zones libres existantes. Le compactage nécessite beaucoup
de temps processeur : il n'est pas très recommandé.
C. Etat de la mémoire :
Gestion par table de bits
La mémoire est divisée en unités d’allocation dont la taille peut varier de quelques mots à plusieurs
Ko. A chaque unité, on fait correspondre un bit dans une Table de bits ou bitmap qui est mis à 0 si
l’unité est libre et à 1 si elle est occupé .
Figure 5 (a) Une partie de la mémoire occupée par 5 processus (b) Table de bits correspondante (c) Liste chaînée
Libération d’un segment : Cet exemple, montre que quatre cas peuvent se présenter lors de la
libération de l’espace occupé par un processus X.
- 1er cas. Modifier l’indicateur de l’état du segment (il passe à libre).
- 2ème cas. Fusionner les deux segments (il passe à libre).
4/6
Université de Blida 1 Système d’exploitation
Département d’informatique 2ème année LMD
- 3ème cas. Modifier l’indicateur de l’état du segment (il passe à libre). Fusionner les deux
segments.
- 4éme cas. Modifier l’indicateur de l’état du segment (il passe à libre). Fusionner les trois
segments
Remarque :
Des simulations montrent que, par rapport au taux d'utilisation de la mémoire, la première
technique est meilleure que les autres.
Le taux d'utilisation de la mémoire est meilleur en partition variable qu'en partition fixe.
5/6
Université de Blida 1 Système d’exploitation
Département d’informatique 2ème année LMD
15
14
Table de pages
13
12
11
10
3
9 0 14
2 8
1 7
1 4
0 6 2 8
Processus 5
4 3 12
3
2
1
0
Mémoire physique
Figure 7: Pagination.
Lorsqu’un processus est à l’état actif et qu’il désire accéder à la mémoire centrale, le processus
génère toujours une adresse relative. Cette adresse est transformée en un couple (n, d) où n est le
numéro de la page et d est le déplacement dans cette page. Le numéro de page est utilisé comme
indexe dans la table des pages. La table des pages contient l’adresse de base de chaque page dans la
mémoire physique. Cette adresse de base est combinée au déplacement de page pour définir
l’adresse mémoire physique.
4.2.2 La Segmentation
Comme la pagination, la segmentation divise un programme en un certain nombre de blocs appelés
segments mais de taille variables.
Un programme est généralement constitué de plusieurs entités logiques: programme principal,
procédures, fonctions bibliothèques, tables de données, ..
La segmentation utilise donc des parties de programme qui ont une valeur logique (des modules)
La MMU s'appuie sur une table globale des segments indicée par un couple (n° processus, n°
segment).
6/6