Вы находитесь на странице: 1из 33

Ecole Supérieure Des Sciences

et De La Technologie De Hammam Sousse

CHAPITRE 1
GESTION DE LA MÉMOIRE

PARTITIONNEMENT, PAGINATION,
SEGMENTATION

SONIA KEFI

1 ÈRE LFI
Année universitaire : 2019-2020
CONCEPTS DE BASE
GESTION DE LA MÉMOIRE
CONCEPTS DE BASE
• La mémoire est une ressource importante et limitée qui
doit être gérer d’une façon optimale.
• Plusieurs types de mémoires peuvent être utilisés lors de
l’exécution d’un programme.
• Mais, pour exécuter un programme, il doit être placé en
mémoire centrale.
• La gestion de la mémoire peut se faire avec ou sans va-
et-vient (swapping).

3
GESTION DE LA MÉMOIRE CENTRALE :

OBJECTIFS
• Optimisation de l’utilisation de la mémoire principale
(RAM)
• Les plus grand nombre possible de processus actifs
doit être gardé, de façon à optimiser le
fonctionnement du système en multiprogrammation
• Garder le système le plus occupé possible, surtout l’UCT
• S’adapter aux besoins de mémoire de l ’usager
• Allocation dynamique au besoin
• Concepts
• Adresse physique et adresse logique
• Remplacement
• Allocation contiguë (partitions fixes et variables)
• Pagination
• Segmentation
• Segmentation paginée

4
MÉMOIRE PHYSIQUE ET MÉMOIRE
LOGIQUE
• Mémoire physique :
• La mémoire principale RAM de la machine
• Adresses physiques : les adresses de cette mémoire
• Mémoire logique : l’espace d’adressage d’un
programme
• Adresses logiques : les adresses dans cet espace
• Il faut séparer ces concepts car normalement, les
programmes sont chargés à chaque fois dans
des positions différentes de la mémoire
• Donc adresse physique ≠ adresse logique

5
TRADUCTION ADRESSES PHYSIQUES &
LOGIQUES

6
CHARGEMENT D’UN MODULE EN
MÉMOIRE
• Étapes de chargement
• Trouver de la mémoire libre pour un module de chargement
• Contiguë ou non contiguë
• Traduire les adresses du programme et effectuer les liaisons
par rapport aux adresses où le module est chargé
• Dans les premiers systèmes, un programme était toujours
chargé dans la même zone mémoire
• La multiprogrammation et l’allocation dynamique ont
engendré le besoin de charger un programme dans
différentes positions
• Au début, ceci était fait par le chargeur (loader) qui
changeait les adresses avant de lancer l ’exécution
• Aujourd’hui, ceci est fait par le MMU au fur et à mesure que le
programme est exécuté
• Ceci ne cause pas d’hausse de temps d’exécution, car
le MMU agit en parallèle avec d’autres fonctions d’UCT
• Par ex. l ’MMU peut préparer l ’adresse d’une instruction en
même temps que l’UCT exécute l ’instruction précédente
7
PERMUTATION (SWAPPING)

• Un programme, ou une partie de programme, peut


être temporairement enlevé de mémoire pour
permettre l’exécution d’autres programmes.
• Il est mis dans la mémoire secondaire, normalement le
disque.

8
ALLOCATION EN MÉMOIRE

- Plusieurs types d’allocation :


• Contiguë: Le processus est chargé en entier dans la mémoire,
dans un bloc contigu
• L’allocation contiguë n’est plus utilisée aujourd’hui pour la mémoire
centrale, mais les concepts que nous verrons sont encore utilisés pour
l’allocation de fichiers sur disques.
• Non-Contiguë: Le processus est subdivisé et éparpillé dans la
RAM, et un mécanisme est défini pour retrouver les différentes
briques une fois le programme chargé
- La mémoire peut être:
• Partitionnée : subdivisée depuis le démarrage 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

9
ALLOCATION CONTIGUË :
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
• Un programme doit tenir sur une seule
partition
• 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ë
• Fragmentation interne : espace dans les
partitions
• Fragmentation externe : espace entre les
partitions
10
ALLOCATION CONTIGUË :
PARTITIONS FIXES DE TAILLES ÉGALES
• 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 n’importe
quel processus
• Gros problème de fragmentation interne.

11
ALLOCATION CONTIGUË :
PARTITIONS FIXES DE TAILLES INÉGALES
• Diviser la mémoire en N partitions qui peuvent être de
tailles inégales et associer à chaque partition une file
d’attente.
• Chaque nouvelle tâche est placée dans la file
d’attente de la plus petite partition qui peut la
contenir.
• L’espace non utilisé dans une partition est perdu (pb
de fragmentation)

12
ALLOCATION CONTIGUË :
PARTITIONS DYNAMIQUES

13
14
TABLE DE COMPRARAISON

15
16
ALLOCATION NON
CONTIGUË
P A G I N A T I ON
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
FIN !