Vous êtes sur la page 1sur 25

Gestion de la mémoire

Responsable de cours : Amina CHAABANE

Année universitaire: 2022-2023


Plan
 Concepts de base
 Allocation contiguë
Partitions fixes
 Partitions fixes de tailles égales

 Partitions fixes de tailles inégales

Partitions dynamiques
 Les algorithmes de placement : First Fit, Best Fit,
Worst Fit
 Allocation non-contiguë
Pagination
Segmentation
Pagination et Segmentation
Concepts de base : Introduction

 Hiérarchisation de la mémoire : les ordinateurs ont une


petite quantité de mémoire très rapide, chère et volatile
(mémoire RAM) et beaucoup de gigabytes de mémoire plus
lente et non volatile.
Registres UC

Capacité de stockage
Volatile
Mem.

Vitesse d’accès
M. Cache

RAM
Volatile
Mem. Non

Disque Dur

 Le SE a le rôle de coordonner l’utilisation des différentes


3
mémoires.
Concepts de base : Introduction
 La mémoire RAM est une ressource importante qui doit
être gérée avec attention.
 Même si la quantité de mémoire d’un ordinateur a
beaucoup augmentée, la taille des programmes s’accroît
aussi.
 La situation idéale serait de donner à chaque programmeur
une mémoire infiniment grande, infiniment rapide et non
volatile.
 Une mémoire est caractérisée principalement par :
– Sa capacité de stockage
– Son temps d’accès en lecture ou en écriture
4
– La non volatilité
Gestion de la Mémoire Centrale :
Définitions et rôles Mot mémoire = 1 octet
@ adresse

 Mémoire : grand tableau de mots (octets),


chacun possède sa propre adresse.
 Le CPU extrait les instructions de la mémoire
RAM en fonction de la valeur d’un compteur .
.
d’instructions (compteur ordinal). .

 Le système de gestion de la mémoire est une

partie du SE qui :
– Suit les parties de la mémoire qui sont utilisées ou non
utilisées.
– Alloue/libére l’espace mémoire aux processus.
– Contrôle le va-et-vient (swapping) entre la mémoire 5
principale et le disque.
Gestion de la Mémoire Centrale : Objectifs

 Optimisation de l’utilisation de la mémoire principale (RAM)


 Le plus grand nombre possible de processus actifs doit y être
gardés, de façon à optimiser le fonctionnement du système en
multiprogrammation :
- Garder le système le plus occupé possible, surtout le CPU

- S’adapter aux besoins de mémoire de l’usager

6
Adresse Physique et Adresse Logique
 Adresse physique : identifie un emplacement physique dans
une mémoire.
 Adresse logique : C’est une adresse virtuelle dans l’espace
d’adressage d’un programme.

Il faut séparer ces deux concepts car normalement, les programmes


sont chargés de fois en fois dans des positions différentes de la
mémoire
Adresse physique ≠ adresse logique
MMU (Memory Management Unit ) : Dispositif matériel qui
fait la conversion des adresses virtuelles à physiques
7
Monoprogrammation
 Exécuter un seul programme à la fois.
 La mémoire est habituellement subdivisée en deux

partitions, une pour le SE et l’autre pour les processus


utilisateur

La manière la plus simple de gestion de mémoire!

8
Multiprogrammation (Temps partagé)

 La plupart des SE modernes autorisent l’exécution de


processus multiples en même temps :
 Lorsqu’un processus est bloqué (en attente d’une E/S), un
autre peut utiliser le CPU.
 La mémoire est partagée entre plusieurs processus.

 SE maintient une table indiquant les parties de la mémoire


disponibles et celles qui sont occupées.
 Trou (hole) : bloc de mémoire disponible.

9
Multiprogrammation

Étapes de chargement des processus en mémoire :


 Trouver de la mémoire libre pour un processus:
Contiguë : Le processus est chargé en entier dans la mémoire
en un bloc contigu.
Non contiguë : Le processus est subdivisé et éparpillé dans
RAM, et un mécanisme est défini pour retrouver les
différentes briques une fois le programme chargé.
 Faire le Swapping (va-et-vient) si la mémoire RAM est
saturée pour charger un processus
10
Swapping (va-et-vient)
 Parfois la mémoire principale est insuffisante pour maintenir
tous les processus courant actifs : il faut conserver les
processus supplémentaires sur un disque.
 Swapping : Un programme ou une partie de programme,
peut être temporairement enlevé de la mémoire pour
permettre l’exécution d’autres programmes :
 Il est mis dans la mémoire secondaire, normalement le disque
(Partie Swap)
 Et il sera ensuite ramené en mémoire pour continuer son
exécution.
Contraintes : Processus à transférer doit être inactif.

11
Allocation contiguë

La mémoire peut être :


 Partitionnée : subdivisée depuis le démarrage du SE en
partitions fixes
 Non-partitionnée : les partitions seront créées au fur et
à mesure que les programmes sont chargés et déchargés
de la mémoire Partitions dynamiques
Multiprogrammation avec partition fixe

La manière la plus simple de faire de la


Multiprogrammation consiste à subdiviser la mémoire
principale RAM en régions distinctes : partitions
 Les partitions sont soit de même taille soit de tailles

inégales
 N’importe quel programme peut être affecté à une

partition qui soit suffisamment grande


 Un programme doit tenir sur une seule partition

 Une partition ne peut contenir qu’un seul


programme
 Chaque espace inutilisé d’une partition fixe est perdu

Problème de fragmentation: Il y’a assez d’espace


pour exécuter un programme, mais cet espace est (a) (b)
13
fragmenté de façon non contiguë.
Fragmentation
La fragmentation est un problème qui survient quand
on dispose d’une partie libre de la mémoire mais
qu’on ne peut pas allouer à un processus. On distingue
deux types de fragmentation :
 Fragmentation interne : la partie
d'une partition restante et non
utilisée par un processus. C’est un
espace dans les partitions.
 Fragmentation externe : L’ensemble
des partitions qui ne sont pas
utilisées. C’est un espace
entre les partitions. 14
Partitions fixes de tailles égales
 Principe :
 Diviser la mémoire en N partitions de même taille
 Chaque nouvelle tâche est placée dans la première partition
libre
Problèmes :
 La taille de partition doit être assez grande pour supporter
n’importe quel processus
 Gros problème de fragmentation interne

15
Application 1
Soit un système utilisant l'allocation contiguë basée sur des partitions fixes à taille
égale : 4 partitions de 128 Mo.
Soit un cas de partage de la zone mémoire entre 5 processus A, B, C, D et E.
On considère la séquence d’événement suivante (1) à (6), ou les processus rentrent
et quittent le système tour à tour. Les () indiquent pour chacun des événements les
besoins mémoires de chacun des processus. Donnez pour chacun des événements
(1) à(6) l’organisation de la mémoire en précisant les ids des processus, les numéros
de partition, les tailles des espaces mémoires occupés et vides. Indiquez finalement
pour l’événement (6) le taux de fragmentation mémoire. (1) A(96 Mo) (4) A(quitte)
(2) B(34 Mo) (5) D(48 Mo)
(3) C(18 Mo) (6) E(50 Mo)
Correction

128 Mo 128 Mo 128 Mo 128 Mo

128 Mo 128 Mo 128 Mo 110 Mo

C 18 Mo

128 Mo 128 Mo 94 Mo 94 Mo

B 34 Mo B 34 Mo
32 Mo 32 Mo 32 Mo
128 Mo
A 96 Mo A 96 Mo A 96 Mo
(1) A(96 Mo) (4) A(quitte)
(E. Initial) (1) (2) (3)(5) D(48 Mo)
(2) B(34 Mo)
(3) C(18 Mo) (6) E(50 Mo)
17
(1) A(96 Mo) (4) A(quitte)
(2) B(34 Mo) (5) D(48 Mo)
(3) C(18 Mo) (6) E(50 Mo) Correction

78 Mo
128 Mo 128 Mo

E 50 Mo

110 Mo 110 Mo 110 Mo

C 18 Mo C 18 Mo C 18 Mo

94 Mo 94 Mo 94 Mo

B 34 Mo B 34 Mo B (34) 34 Mo

80 Mo 80 Mo
128 Mo

D 48 Mo D (48 Mo) 48 Mo

(4) (5) (6)

18
Application 2
Soit un système utilisant l'allocation contiguë basée sur des partitions fixes à taille
égale : 3 partitions de 256 Mo.
Soit un cas de partage de la zone mémoire entre 5 processus A, B, C, D et E.
On considère la séquence d’événement suivante (1) à (6), ou les processus rentrent
et quittent le système tour à tour. Les () indiquent pour chacun des événements les
besoins mémoires de chacun des processus. Donnez pour chacun des événements
(1) à(6) l’organisation de la mémoire en précisant les ids des processus, les numéros
de partition, les tailles des espaces mémoires occupés et vides. Indiquez finalement
pour l’événement (6) le taux de fragmentation mémoire. (1) A(200 Mo) (4) C(80 Mo)
Si toutes les partitions sont libres, est ce qu’on peut (2) B(150 Mo) (5) D(20 Mo)
(3) A(quitte) (6) E(30 Mo)
l’utilisée pour un seul processus de taille 512 Mo?
Partitions fixes de tailles inégales
 La mémoire est subdivisée en partitions de tailles inégales.
 L’espace non utilisé dans une partition est perdu
(problème de fragmentation).
 Il existe deux méthodes de gestion :

 Une
Une file
filed’attente
d’attentepar
parpartition
partition
 Une seule file d’attente globale

20
Partitions fixes de tailles inégales :
Une file d’attente par partition
 Chaque nouveau processus est placé P P

dans la file d’attente de la plus petite


partition qui peut le contenir.
 Inconvénients :
P P P
 Faire attendre un processus dans une
file alors qu’une autre partition
pouvant le contenir est libre;
 Fragmentation externe : Il peut y avoir des partitions
inutilisées (leur file d’attente est vide )
 Saturation des files d’attentes des petites partitions
 Fragmentation interne : On perd en général de la place
au sein de chaque partition 21
Partitions fixes de tailles inégales
 La mémoire est subdivisée en partitions de tailles inégales.
 L’espace non utilisé dans une partition est perdu
(problème de fragmentation).
 Il existe deux méthodes de gestion :

 Une file d’attente par partition


 Une seule
seulefile
filed’attente
d’attenteglobale
globale

22
Partitions fixes de tailles inégales :
Une file d’attente globale
 Dès qu'une partition se libère, on lui affecte la plus grande
tâche de la file qui peut y tenir.
 Inconvénient : Fragmentation interne

23
Application 1
Soit une mémoire centrale utilisant la technique d’allocation contiguë par
partitionnement fixe. Cette mémoire est composée de 5 partitions
éparpillées P1, P2, P3, P4 et P5. Ces partitions ont pour tailles
respectives 100, 500, 200, 300 et 600 KO. Soient 4 processus A, B, C et
D de tailles respectives 212, 417, 112 et 426 KO.
Donner les différents états de la mémoire centrale pour charger les 4
processus A, B, C et D dans le cas d’une file d’attente par partition et
dans le cas d’une file d’attente pour toutes les partitions.

24
Application 2
Soit une mémoire centrale utilisant la technique d’allocation contiguë par
partitionnement fixe. Cette mémoire est composée de 3 partitions de
tailles 300, 125 et 260 KO (dans cet ordre). Soient 4 processus A, B ,C
et D de tailles respectives 100, 250 ,250 , et 290 KO.
Donner les différents états de la mémoire centrale pour charger les 4
processus A, B et C dans le cas d’une file d’attente par partition et dans
le cas d’une file d’attente pour toutes les partitions.

Si toutes les partitions sont libres, est ce qu’on peut


l’utilisée pour un seul processus de taille 560 Ko? 25

Vous aimerez peut-être aussi