Chap 4 - Gestion de La Mémoire
Chap 4 - Gestion de La Mémoire
Chap 4 - Gestion de La Mémoire
1
Ch4: Gestion de la mémoire
Introduction
1) Adresse physique et adresse logique
2) Gestion de la mémoire unifiorme
Allocation contiguë
partitions fixes
Partition dynamiques (variables)
3) La mémoire virtuelle
Pagination
Segmentation
Segmentation et pagination
2
Chap. 4
Ch4: Gestion de la mémoire
Introduction
4
1) Adresses physiques et logiques
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 de fois en fois dans des positions différentes de
mémoire
Donc adresse physique ≠ adresse logique
5
Chap. 4
0
n b
Adresses logiques
n: adresse logique
n+b: adresse physique
n
6
Chap. 4
Programme Données
0
b c
n : adresse logique
n+c n+c : adresse physique
instruction
Noms symboliques donnés par le programmeur
Adresses logiques établies par le compilateur
Adresses physiques dans la mémoire de l’ordi
établies au moment où le programme est mis en
mémoire physique
Le MMU en tient compte et fait la traduction au
moment de l’exécution
9
Chap. 4
1.3 ) Liaison d’adresses logiques et physiques (instructions et données)
10
Chap. 4
Aspects du chargement
Trouver de la mémoire libre pour un
module de chargement: contiguë ou non
11
Chap. 4
2) Gestion de la mémoire unifiorme
Quant la mémoire centrale est le seul support
d’information adressable, on dit qu’on a une
mémoire uniforme. Dans ce cas la taille d’un
programme ne peut être qu’inférieure ou égale à
celle de la dite mémoire.
Allocation contiguë
Partitions fixes
Partitions dynamiques
Fragmentation interne, externe
12
2.4) Allocation contiguë de mémoire
Nous avons plusieurs programmes à exécuter
Nous pouvons les charger en mémoire les uns
après les autres
le lieu où un programme est lu n’est connu qu’au
moment du chargement
Besoins de matériel: registres translation et
registres bornes
13
Chap. 4
2.4) Allocation contiguë de mémoire
SE
progr. 1
progr. 2
disponible
progr. 3
Un problème majeur dans l`affectation
contiguë:
Il y a assez d ’espace pour exécuter un
programme, mais il est fragmenté de façon non
contiguë
La fragmentation peut être:
externe: l`espace inutilisé est entre partitions
interne: l ’espace inutilisé est dans les partitions
15
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 progr.
peut être affecté à une
partition qui soit
suffisamment grande
16
Chap. 4
Placement pour partitions fixes
Partitions de tailles
inégales: utilisation de
plusieurs files
assigner chaque processus à la
partition de la plus petite taille
pouvant le contenir
1 file par taille de partition
8M
tente de minimiser la
fragmentation interne
Problème: certaines files seront 12M
vides s’il n’y a pas de
processus de cette taille (fr.
externe)
17
Chap. 4
Placement pour partitions fixes
Partitions de tailles
inégales: utilisation
d’une seule file
On choisit la plus
grande partition libre
pouvant contenir le
prochain processus 8M
12M
18
Chap. 4
Partitions fixes
Simple, mais...
Inefficacité de l’utilisation de la mémoire:
tout programme, si petit soit-il, doit
occuper une partition entière. Il y a
fragmentation interne.
Les partitions à tailles inégales atténue ces
problèmes mais ils y demeurent...
19
Chap. 4
Partitions dynamiques
Partitions en nombre et tailles variables
Chaque processus est alloué exactement la
taille de mémoire requise
Probablement des trous inutilisables se
formeront dans la mémoire: c’est la
fragmentation externe
20
Chap. 4
Partitions dynamiques: exemple
(d) Il y a un trou de 64K après avoir chargé 3 processus: pas
assez d’espace pour autre processus
Si tous les proc se bloquent (p.ex. attente d’un événement), P2 peut
être permuté et P4=128K peut être chargé.
21
Chap. 4
Partitions dynamiques: exemple
(e-f) Progr. 2 est suspendu, Progr. 4 est chargé. Un trou de 224-128=96K est créé
(fragmentation externe)
(g-h) P1 se termine ou il est suspendu, P2 est repris à sa place: produisant un autre
trou de 320-224=96K...
Nous avons 3 trous petits et probabl. inutiles. 96+96+64=256K de fragmentation
externe
22
Chap. 4COMPACTAGE pour en faire un seul trou de 256K
Stratégies d’allocation des partitions
23
Chap. 4
Compactage
Une solution pour la fragmentation externe
Les programmes sont déplacés en mémoire de façon
à combiner en un seul plusieurs petits trous
disponibles
Effectuée quand un programme qui demande d’être
exécuté ne trouve pas une partition assez grande,
mais sa taille est plus petite que la fragmentation
externe existante
Désavantages:
temps de transfert programmes
besoin de rétablir tous les liens entre adresses de
différents programmes
24
Chap. 4
3) La mémoire virtuelle
25
Chap. 4
3) La mémoire virtuelle
Solution : la mémoire virtuelle.
27
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses
28
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses
29
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses
30
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses
31
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses
33
Chap. 4
3) La mémoire virtuelle
1) La pagination: Mécanisme de transformation d’adresses
34
Chap. 4
3) La mémoire virtuelle
1) La pagination: Le défaut de page
Lorsque l’adresse virtuelle référence une page qui n’est pas présente
en mémoire physique, le mécanisme d’adressage génère alors un
défaut de page.
Si la mémoire physique est pleine :
• Virer de la mémoire physique une page (remplacement) :
• Choisir une page "victime",
• Si elle a été modifiée, la réécrire sur disque,
• Modifier les indicateurs de présence en TP (table de pages)
36
Chap. 4
3) La mémoire virtuelle
1) La pagination
Exemple
37
Chap. 4
3) La mémoire virtuelle
1) La pagination Exemple
FIFO
38
Chap. 4
3) La mémoire virtuelle
1) La pagination Exemple
LRU
39
Chap. 4
3) La mémoire virtuelle
1) La pagination Exemple
LFU
40
Chap. 4
Exercices
Exercice 1
41
Chap. 4
Exercices
Exercice 2
Exercice 3
Soit la liste des pages virtuelles référencées comme suit :
010 2 3 3 5 4 4 6 4 6
La mémoire centrale est composée de trois pages initialement vides.
Représentez l'évolution de la mémoire centrale au fur et à mesure des
accès pour chacune des deux politiques de remplacement de pages
LFU et LRU. Notez les défauts de pages éventuels et les pages
victimes. Quelle est la politique optimale ?
42
Chap. 4
3) La mémoire virtuelle
2) La segmentation
43
Chap. 4
3) La mémoire virtuelle
2) La segmentation
• Un espace adresse logique est un ensemble de segments.
• Chaque segment possède un nom (les segments sont numérotés)
et une longueur.
Adresse logique: ( numéro de segment, déplacement)
44
Chap. 4
3) La mémoire virtuelle
2) La segmentation Mécanisme de transformation d’adresses
45
Chap. 4
3) La mémoire virtuelle
2) La segmentation Mécanisme de transformation d’adresses
46
Chap. 4
3) La mémoire virtuelle
2) La segmentation Le défaut de segment
• Le traitement de défaut de segment se fait comme dans le cas de la
pagination, Ce qu’il faut préciser concerne les points suivants :
47
Chap. 4
3) La mémoire virtuelle
2) La segmentation: Partage de segment
48
Chap. 4
3) La mémoire virtuelle
3) La segmentation + pagination:
• Un système à mémoire segmentée-paginée regroupe les avantages
de segmentation et de la pagination.
• Pour réaliser ça il faut mettre en place :
- Une table des segments
- Une table des pages pour chaque segment
Le mécanisme d’adressage utilise des adresses virtuelles définies
comme suit :
< N° segment, N° de page dans le segment, Déplacement dans la
page >
• Le calcul de l’adresse physique passe alors par trois étapes :
49
Chap. 4
3) La mémoire virtuelle
4) Comparaison segmentation et pagination
Pagination Segmentation
Le programmeur a -t-il besoin de savoir Non Oui
que cette technique est utilisée ?
Combien y-a-t-il d’espace d’adressage ? Un seul Plusieurs
Oui Non
En cas de modification en recompile tout.
Séparer logiquement
Pourquoi l’a-t-on inventée ? Grand espace d’adressage certains espaces
d’adressage.
50
Chap. 4