Expose Allocation Memoire
Expose Allocation Memoire
Expose Allocation Memoire
SOMMAIRE
1
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
INTRODUCTION GÉNÉRALE
La mémoire principale est le lieu où se trouvent les programmes et les données quand
le processeur les exécute. On l’oppose au concept de mémoire secondaire, représentée par
les disques, de plus grande capacité, où les processus peuvent séjourner avant d’être
exécutés. La nécessité de gérer la mémoire de manière optimale est toujours fondamentale,
car en dépit de sa grande disponibilité, elle n’est, en général, jamais suffisante. Ceci en
raison de la taille continuellement grandissante des programmes.
Nous allons dans un premier temps définir quelques termes, donner les rôles de la
gestion de la mémoire ; ensuite nous expliquerons les techniques d’allocations de la
mémoire et leurs fonctionnements et une conclusion générale mettra fin à notre travail.
I. DÉFINITION ET RÔLES
2
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
Partitions Fixes
Mémoire principale subdivisée en régions distinctes : partitions. Les partitions sont
soit de même taille ou de tailles inégales. N’importe quel programme peut être affecté à
une partition qui soit suffisamment grande.
o Un programme doit tenir sur une seule partition ;
o Une partition ne peut contenir qu’un seul programme
Problème de fragmentation : Il y’a assez d’espace pour exécuter un programme,
mais cet espace est fragmenté de façon non contiguë.
o Fragmentation interne : espace entre les partitions ;
o Fragmentation externe : espace dans les partitions ;
3
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
Problèmes : La taille de partition doit être assez grande pour n’importe quel
processus. Gros problème de fragmentation interne.
4
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
5
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
b) La Fragmentation
6
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
Chaque fois qu’un processus est chargé ou supprimé du bloc de mémoire physique, il
crée un petit trou dans l’espace mémoire appelé fragment. En raison de la fragmentation,
le système ne parvient pas allouer l’espace mémoire contigu à un processus même s’il a la
quantité de mémoire demandée mais, de manière non contiguë. La fragmentation est
classée en deux catégories :
La fragmentation interne
La fragmentation externe.
Le tableau ci-dessous donne les raisons, les différences et les solutions derrière la
fragmentation interne et externe :
7
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
a) Pagination
Définition : La mémoire est partitionnée en petits morceaux de même taille : les pages
physiques ou cadres ou frames. Chaque processus est aussi partitionné en petits morceaux
de même taille appelés pages logiques (pages). Les pages logiques d’un processus peuvent
donc être assignées aux cadres disponibles n’importe où en mémoire principale.
Conséquences : un processus peut être éparpillé n’importe où dans la mémoire physique. La
fragmentation externe est éliminée.
Exemple : Supposons que le processus B de la figure suivante se termine ou est suspendu.
8
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
• Nous pouvons maintenant transférer en mémoire un processus D, qui demande 5 cadres. Bien
qu’il n’y ait pas 5 cadres contigus disponibles.
• La fragmentation externe est limitée au cas où le nombre de pages disponibles n’est pas
suffisant pour exécuter un processus en attente
• Seule la dernière page d’un processus peut souffrir de fragmentation interne. En moyenne
1/2 cadre par processus.
9
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
Traduction d’Adresses :
• L’adresse logique est facilement traduite en adresse physique
Car la taille des pages est une puissance de 2
Les pages débutent toujours à des adresses qui sont des puissances de 2
Qui ont autant de 0 à droite que la longueur de l’offset
Donc ces 0 sont remplacés par l’offset (déplacement)
10
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
• Exemple : si 16 bits sont utilisés pour les adresses et que la taille d’une
page = 1K : on a besoin de 10 bits pour le décalage, laissant ainsi 6 bits pour le
numéro de page
• L’adresse logique (p, d) est traduite en adresse physique (f,d) en utilisant
p comme index sur la table des pages et en le remplaçant par l ’adresse f trouvée
depuis la table.
d ne change pas
11
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
12
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
b) Segmentation
Chaque processus est constitué d'un ensemble de segments. Chaque segment est un
espace linéaire.
Les segments sont des espaces d'adressages indépendants de différentes longueurs et
qui peuvent même varier en cours d'utilisation. Ils correspondent à des subdivisions logiques
déterminées par le programmeur ou par le compilateur.
Les segments contiennent des informations de même nature : le code, les données, la
pile, des tables, etc. Il est dès lors possible d'attribuer des protections adaptées à chaque type
de segment : un segment de code peut être déclaré en exécution seule, une table de constantes
en lecture seule mais pas en écriture ni en exécution. Certaines zones de code en exécution
seule peuvent être partagées par plusieurs processus ; cela se fait par exemple pour des
bibliothèques de sous-programmes.
L'accès aux segments se fait via une table de segments. Chaque entrée de la table
comporte l'adresse de départ du segment et sa taille.
L'adresse logique est constituée du numéro de segment et d'un offset. Contrairement aux
pages dont le fonctionnement est transparent pour le programmeur, les segments sont des
entités logiques qu'il connaît et manipule. Il distingue les deux informations contenues dans
l'adresse : le numéro du segment et l'offset.
Le numéro de segment sert d'index pour retrouver l'adresse du début du segment dans
la table de segment. Cet offset doit être inférieur à la taille du segment consignée elle aussi
dans la table de segment. Si ce n'est pas le cas, une erreur est générée qui provoque l'abandon
du programme. L'offset est ensuite ajouté à l'adresse de début de segment pour former
l'adresse physique.
La Segmentation utilise des parties de programme qui ont une valeur logique (des
segments: main, méthodes, variables globales, objets, matrices, etc.)
13
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
Étant donné que les segments sont plus petits que les programmes entiers, cette
technique implique moins de fragmentation
14
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
15
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
16
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL
THEME : TECHNIQUES D’ALLOCATION DE LA MÉMOIRE
Mécanisme pour 2 processus qui exécutent un seul programme sur données différentes
Segmentation et protection
Chaque entrée dans la table des segments peut contenir des infos de protection :
longueur du segment privilèges de l’usager sur le segment : lecture, écriture,
exécution Si au moment du calcul de l’adresse on trouve que l’usager n’a pas de
droit d’accès
CONCLUSION GENERALE
Nous pouvons retenir que la gestion de mémoire repose sur ses différents concepts :
17
Devoir rédigé par : BAHOUACK ABEGA, DEMANOU RENEL CADIN et DINAMOU MICHAEL