Vous êtes sur la page 1sur 7

La gestion de la

mémoire
1. Introduction
La mémoire principale est le lieu où ce trouve les programmes et les
données quand le processus les exécute. On l’oppose au concept de
mémoire secondaire représenté par les disques de plus grande capacité où
les processus peuvent séjourner avant d’être exécutés.

Plus que la ressource processeur, la mémoire constitue la ressource la plus


critique des systèmes d’exploitation, dont la mauvaise gestion peut avoir
des effets dramatiques sur les performances globales des systèmes.

Les fonctionnalités attendues d’un gestionnaire efficace de la mémoire


sont les suivantes :

 Connaître les parties libres de la mémoire physique.

 Allouer de la mémoire au processus en évitant autant que possible


le gaspillage.

 Récupérer la mémoire libérée par la terminaison d’un processus

 Offrir au processus des services de mémoire virtuelle, de taille


supérieure à celle offerte par la mémoire physique disponible, au
moyen des techniques de va et vient et pagination.

2. Multiprogrammation
Le concept de multiprogrammation s’oppose à celui de
monoprogrammation.
La monoprogrammation ne permet qu’à un seul processus utilisateur d’être
exécuté à la fois.
La multiprogrammation autorise l’exécution de plusieurs processus
indépendants à la fois. Cette technique permet d’optimiser le taux
d’utilisation du processeur en réduisant notamment les attentes sur des
entrées-sorties. La multiprogrammation implique le séjour de plusieurs
programmes en même temps en mémoire et c’est cette technique qui a
donnée naissance à la gestion moderne de la mémoire.

3. Principe de gestion
Pour effectuer le chargement d’un programme en mémoire, le système
alloue un espace de mémoire libre et il y place le processus. Il libérera cet
emplacement une fois le programme est terminé.
Dans beaucoup de cas il n’est pas possible de supporter tous les
programmes ensemble en mémoire. Parfois même la taille d’un seul
programme est trop importante. Le système peut dans ce cas mettre en
œuvre une stratégie de recouvrement consistant à découper un programme
en module et à charger ces modules quand ils sont nécessaires. Ceci est
cependant très fastidieux (fatiguant) et nécessite pour chaque nouveau
programme un redécoupage.
Les systèmes d’exploitation modernes mettent en œuvre des stratégies qui
libèrent le programmeur de ces préoccupations. Il existe quelques
stratégies pour gérer les chargement : le va et vient, pagination, mémoire
virtuelle,…

4. L’allocation
Avant d’implémenter une technique de gestion de la mémoire il est
nécessaire de connaître son état (zones libres ou occupées), de disposer
d’une stratégie d’allocation et enfin de disposer d’une procédure de
libération.
4.1. Etat de la mémoire
Le système garde la trace des emplacements occupés de la mémoire par
l’intermédiaire d’une table de bits ou bien d’une liste chaînée. La mémoire
étant découpée en unités d’allocation (bloc mémoire).
L P P L P

0 5 8 10 15 20

a. Table des bits


On peut conserver l’état en mémoire grâce à une table de bits. Les unités
libres étant notées par zéro et ceux occupées par 1 (ou l’inverse).
Cette technique est simple à implémenter mais elle est peut utilisée. En
effet, plus l’unité d’allocation est petite moins on a de perte lors des
allocations, mais en revanche plus cette table occupe de place en mémoire.
0 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 0 0

b. Liste chaînée
On peut représenter la mémoire par une liste chaînée de structure dont les
membres sont : L’état (occupé ou libre) ; L’adresse de début ; La
longueur ; Un pointeur sur l’élément suivant.
L P P L
0 5 8 10
5 3 2 5

2
4.2. Stratégie d’allocation
L’allocation d’un espace libre pour un processus peut se faire suivant 3
stratégies principales : le premier ajustement (First Fit), le meilleur
ajustement (Best Fit), et le pire ajustement (Worst Fit).
 Dans le cas (First Fit) : on prend le premier bloc libre de la liste qui
peut contenir le processus qu’on désire charger.
 Le meilleur ajustement (Best Fit) alloue au processus l’espace
mémoire le plus petit qui peut le contenir.
 Le pire ajustement (Worst Fit) alloue au processus le plus grand
bloc de mémoire disponible.
4.3. Libération
La libération d’un bloc mémoire se produit quand un processus est évacué
de la mémoire et on le fusionne éventuellement avec des blocs adjacents
libres. Supposons que x est le bloc qui se libère, on aura le schéma
suivant :
A X B A lib B

Avant libération Après libération

A X lib A lib

Avant libération Après libération

5. Le va et vient

Zone de va et P4
vient
P3

P2

P1

Disque dur Mémoire principale


Si on veut ajouter un processus P5 : on peut envoyer un de (P1, P2, P3, P4)
vers la zone de va et vient et lancer P5, mais il faut que le processus
envoyé ne soit pas en état d’exécution.
Le va et vient est mis en œuvre lorsque tous les processus ne peuvent pas
tenir simultanément en mémoire. On peut déplacer temporairement
certains processus de la mémoire principale sur une mémoire provisoire,
en générale une partie réserve du disque dur (cette partie est appelée zone
de va et vient (swapp area ou zone d’échange)).
Le système de va et vient, s’il permet de résoudre le problème de manque
de mémoire nécessaire à plusieurs processus, n’autorise cependant pas

3
l’exécution de programme de taille supérieure à celle de la mémoire
centrale.

6. La pagination

Page Cadre

P4

Disque dur Mémoire principale

Table de pages
(transcodage)

On doit découper (paginer) P4 en des parties et de même la mémoire


centrale et déplacer des parties de P4 dans la mémoire centrale même les
parties qui ne sont pas adjacents.
La pagination permet d’avoir en mémoire un processus dont les adresses
sont non adjacentes. Pour réaliser ceci on doit partager l’espace
d’adressage de processus en page et la mémoire physique en cadre de
même taille, de quelques Ko.
Les pages de processus sont alors chargées dans les cadres libres de la
mémoire. On conserve l’emplacement des pages dans une table de pages
(appelé aussi transcodage).

7. La mémoire virtuelle
7.1. Présentation
0 0
5
Mémoire 4 2 1
virtuelle 5
4 3 5 2
3 2
1 3 3
2
1 0
UCT Mémoires Périphériques
0 Adresse
virtuelle CPU

Adresse MMU
réelle

Disque dur Bus

4
La mémoire virtuelle permet d’exécuter des programmes dont la taille
excède la taille de la mémoire réelle. Pour ceci on découpe les processus
en pages et la mémoire réelle en cadres de quelques Ko.
……dans feuille
7.2. Performance de la mémoire virtuelle
Le temps de traitement d’une page (code exécuté, accès au disque,
transfert) sera de l’ordre de 20 ms à comparer avec un temps d’accès à la
mémoire centrale de l’ordre de 80μs. Si le taux de demande de page p
alors le temps d’accès effectif à la mémoire virtuelle est égal :
T  (1  p )  (80 s )  p  20ms
Si p  0.01 alors T  (1  0.01)  (80 s )  0.01 20ms  279 s
Il y à deux critère pour améliorer la performance de la mémoire virtuelle :
 Réduire le temps d’accès aux disques
 Réduire la valeur de p par le choix d’un bon algorithme de
demande de page.
7.3. Caractéristiques principales d’un algorithme de demande de
pages
 Statique ou dynamique :
Un algorithme statique alloue un nombre fixe de cadre à chaque processus.
Un algorithme dynamique permet de charger le nombre de cadres d’un
processus au cours d’une exécution.
 Stratégie de chargement :
Quand une page doit elle être chargée dans un cadre ?
On peut choisir la demande de page pure (une page n’est chargé que si elle
est demandée) mais on peut aussi décider de prés paginer (c.à.d de charger
à l’avance un certain nombre de pages dans un cadre).
 Stratégie de remplacement :
S’il n’y à pas de cadre libre quelle page occupant un cadre doit-on tuer
pour faire placer à la nouvelle page.
 Stratégie de placement :
Dans quel cadre une nouvelle page doit être chargée ?
7.4. Algorithmes statiques de remplacements de pages
Le meilleur algorithme est celui qui fourni le moins de faute de page. Nous
allons les comparer à partir de l’exemple simple d’un processus disposant
de 8 pages (numéroté de 07) et qui s’est vue alloué 3 cadres initialement
vide dans la mémoire centrale, nous supposons qu’au cours de l’exécution
de processus les demandes de pages suivantes se produise 0-1-2-3-0-1-2-0-
3-0-2-3-4-5-6-7.
 PAPS :
C’est l’algorithme le plus simple. Lorsqu’une faute de page se produise
c’est la page qui occupe depuis le plus longtemps le cadre qui sera tuée.

5
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 2 2 2 4 4 4 5
1 1 1 1 0 0 0 0 3 3 3 3 3 5 5 5
2 2 2 2 1 1 1 1 0 0 0 0 0 6 6
Faute de page X X X X X X X X X X X X X

Total de fautes de pages :13

 LRU (Last Recently Used):


Lorsqu’une faute de page se produise c’est la plus ancienne page utilisée
qui sera tué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 2 2 2 2 5 5 5
1 1 1 1 0 0 0 0 0 0 0 0 4 4 4 7
2 2 2 2 1 1 1 3 3 3 3 3 3 6 6
Faute de page X X X X X X X X X X X X

Total de fautes de pages : 12

 MRU (Most Recently Used):


Lorsqu’une faute de page se produise c’est la dernière page utilisée qui
sera tué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 0 0 0 0 0 0 0
1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2
2 2 3 3 3 3 3 3 3 3 3 4 5 6 7
Faute de page X X X X X X X X X

Total de fautes de pages : 9

 LFU (Last Frequently Used):


Lorsqu’une faute de page se produise c’est la page la moins référenciée
(moins de nombre d’utilisation) qui sera tuée. Les cas égaux seront réglés
par tirage au sort ou PAPS.

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 2 2 2 4 5 6 7
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
2 2 2 2 1 1 1 3 3 3 3 3 3 3 3
Faute de page X X X X X X X X X X X X

Total de fautes de pages : 12

7.5. L’anomalie de Belday

6
Considérons la séquence de référence de page suivante : 0-1-2-3-0-1-4-0-
1-2-3-4.
Dans un premier cas on considère le cas où les 3 cadres disponibles et nous
choisissons PAPS comme algorithme de remplacement de page.

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 3
Faute de page X X X X X X X X X

Total de fautes de pages : 9

Nous prenons la même séquence où 4 cadres sont disponibles, toujours


avec PAPS comme algorithme de remplacement de page

0 1 2 3 0 1 4 0 1 2 3 4
0 0 0 0 0 0 0 4 4 4 4 3 3
1 1 1 1 1 1 1 0 0 0 0 4
2 2 2 2 2 2 2 1 1 1 1
3 3 3 3 3 3 3 2 2 2
Faute de page X X X X X X X X X X

Total de fautes de pages : 10

Nous obtenons 10 fautes de pages bien que le nombre de cadres soit plus
grand : c’est l’anomalie de Bleday.

Vous aimerez peut-être aussi