Chapitre 6
Chapitre 6
Chapitre 6
• Introduction
• Concepts fondamentaux
• Allocation contigue
• Algorithmes de placement 1 : First Fit, Best Fit et Worst Fit
• Algorithmes de placement 2 : Buddy System
• Segmentation
• Pagination
• Swapping
3
Introduction
Bus de contrôle
Sous-système
Microprocesseur Mémoire
d ‟E/S
Unité centrale
de traitement Bus de données
Bus d ‟adresses
4
Introduction
Mémoire centrale :
Rôle : toutes les informations transitent par la MC
Pour qu‟un programme puisse être exécuté, il doit être place en MC
(Code, données..).
Caractéristiques de la MC :
Type de mémoire : RAM/ROM (volatile/non volatile)
Méthode d‟accès : direct (temps d‟accès constant)
Mémoire à contenu adressable
Format des mots et des adresses
Le processeur accède aux de la MC par le biais de 2 Registres :
Adresse, Données (lecture/Ecriture)
Capacité : nombre total d‟octets
Introduction
Processus P1
Processus P2
• Introduction
• Concepts fondamentaux
• Allocation contigue
• Algorithmes de placement 1 : First Fit, Best Fit et Worst Fit
• Algorithmes de placement 2 : Buddy System
• Segmentation
• Pagination
• Swapping
8
0 1000
Library Library
Routines Routines
0000 :
P1 0010 :
1004 :
MEMOIRE
0000 : CENTRALE
0010 :
P2
0150 :
Système
10
process i
0
Program generated
address
+ Physical memory
address
MMU
Operating
system
0
12
Partition E
limit Partition D
base Partition C
Partition B
Partition A
OS
13
Principe de Gestion
Les méthodes d‟allocation mémoire peuvent être divisées en deux grandes familles:
• Allocation contiguë:
• Programme = ensemble de mots contigus insécables - espace d‟adressage linéaire.
• Allocation en partitions fixes ou variables.
• Dans beaucoup de cas, il n‟est pas possible de faire tenir tous les processus
ensemble en mémoire. Parfois même, la taille d ‟un programme est trop importante.
• Introduction
• Concepts fondamentaux
• Allocation contigue
• Algorithmes de placement 1 : First Fit, Best Fit et Worst Fit
• Algorithmes de placement 2 : Buddy System
• Segmentation
• Pagination
• Swapping
15
Allocation Contiguë
• La mémoire physique est découpée en zones disjointes: Nécessité de connaître
l'état de la mémoire (zones libres/occupées).
• Disposer d‟une stratégie d‟allocation et de procédures de libération.
• 2 types d‟allocation :
Statique: la MC est découpée en zones fixes -- partitions (nombre fixe)
Dynamique: la MC est constituée de zones fixes/variables -- régions (nombre
variable).
1. Allocation Statique
• Un programme est considéré comme un espace d‟adresses insécable; Les partitions
sont de taille fixe, non nécessairement identiques;
Allocation d‟un seul tenant: une partition ne peut contenir qu‟un seul processus.
16
• Inconvénient : Fragmentation -
Par4
Récupérer les fragments et faire un tassement (bas/haut)
Garbage Collector
Par3
5Ko
Les partitions restent fixes jusqu‟au prochain tassement.
Par2
• Avantages : 2Ko
Protection assez simple à réaliser
Par1
Adaptée aux systèmes temps réel
1Ko
partitionnement fixe car les programmes sont toujours les mêmes
SE
17
P3 P3
P2 P2
P1 P1 P1 P1
SE SE SE SE SE
Problème de Fragmentation
64K 64K
P3 P3
576K 352K 288K 288K
O.S. 128K O.S. 128K O.S. 128K O.S. 128K O.S. 128K
Compactage
64K
256K
P3
288K
96K P3
??? 288K
P4 128K 128K P6
P6
96K P4 128K
P5 224K P5 224K
Gestion de la Mémoire
• Opérations
• Allouer un morceau inutilisé de mémoire suffisament large pour
supporter un nouveu processus.
• Libérer un morceau de mémoire en le retuournant à la free pool
après que le processus ait terminé ou est swapped out.
•
23
0
25
• Questions générales :
Q1 : Quand charger ?
Chargement à demande quand on a besoin
Pré-chargement avant d‟en avoir besoin
Q2 : Où charger en mémoire centrale ?
S‟il y a de place, quel emplacement doit-on choisir ? Problème de
Placement
S ‟il n ‟y a pas de place quel est le processus victime à décharger pour le
charger à sa place Problème de Remplacement (swapping).
Algorithmes de Placement 1
• La mémoire est formée d‟un ensemble de zones libres et de zones occupées
(allouées)
• Allouer un programme P de taille Taille(P) :
Trouver une zone libre telle que Taille(zone libre) >= Taille(P)
3 stratégies principales :
La première zone qui convient (le premier ajustement) -- First Fit
Le meilleur ajustement -- Best Fit
Le pire ajustement -- Worst Fit
26
n-1 n-1
150K 150K
P6 P6
P5 P5
40K
120K Processus P7 P7
P3 P3
60K 60K
Système Système
0 0
n-1 n-1
150K 150K
P6 P6
P5 P5
120K
120K Processus P7
P3 P3
60K 60K
Système Système
0 0
P6 P6
P5 P5
120K
120K Programme P7
P3 P3
60K 60K
Système Système
0 0
0 64 128
Mémoire initiale
Demande de 25K P1 32K 64K
Demande de 12K P1 P2 16K 64K
Demande de 4K P1 P2 P3 4 8K 64K
Fragmentation
Diviser le programme :
en segments (code, données, pile), qui peuvent être de taille différente
Correspond à l‟image que le programmeur a de son programme
(données manipulées par le programme, programme principal,
procédures séparées, ...).
en portions de taille fixe et égale à l'unité de la mémoire centrale -- les
pages.
32
Fragmentation
• La mémoire est divisée en partitions.
• Chaque partition a une taille différente.
• Les processus sont alloués de l‟espace puis libéré.
Solution à la Fragmentation
• Compactage nécessite un overhead élevé de copiage.
• Pourquoi pas allouer des unités mémoire non-contigues de tailles
égales et fixes?
• Pas de fragmentation externe!
• Fragmentation interne < 1 unité par processus.
• Solution
• Processus utilisent des adresses virtuelles
• CPU utilise des adresses physiques
• Hardware supporte la translation d’adresse virtuelle en adresse
physique.
35
• Introduction
• Concepts fondamentaux
• Allocation contigue
• Algorithmes de placement 1 : First Fit, Best Fit et Worst Fit
• Algorithmes de placement 2 : Buddy System
• Segmentation
• Pagination
• Swapping
36
Segmentation
Espace S3 S2 Espace
d’adressage 180K 100K 30K d’adressage
linéaire S1 segmenté
50K
• Introduction
• Concepts fondamentaux
• Allocation contigue
• Algorithmes de placement 1 : First Fit, Best Fit et Worst Fit
• Algorithmes de placement 2 : Buddy System
• Segmentation
• Pagination
• Swapping
39
Pagination
La pagination permet d‟avoir en mémoire un processus dont les adresses sont
non contiguës
L‟espace d‟adressage du programme est découpé en morceaux linéaires
de même taille -- la page (qcq Ko).
L‟espace de la mémoire physique est lui-même découpé en morceaux
linéaires de même taille -- la case
Charger un programme en mémoire centrale consiste à placer les pages dans
n‟importe quelles cases disponibles. Page 4 Case 8
Page 1 Case 7
Page 2
Page 2 Case 6
Nº page Nº case
Page 3 1 2 Page 3 Case 5 Mémoire
Page 4
2 6 Case 4
3 5
Espace Case 3
4 8
d’adressage du Page 1 Case 2
programme P
Table de transcodage de P
Système Case 1
40
< +
oui
@ table
Taille des
pages
Page 1
Système
Table des segments
Une table de segments est définie pour chaque segment de l‟espace d‟adressage du
processus
Chaque segment est à son tour paginé :
Il existe une table des pages pour chaque segment
Déplacement dans un segment = <Nºpage, Déplacement dans la page>
41
• Introduction
• Concepts fondamentaux
• Allocation contigue
• Algorithmes de placement 1 : First Fit, Best Fit et Worst Fit
• Algorithmes de placement 2 : Buddy System
• Segmentation
• Pagination
• Swapping
42
Le Swapping
• Dans le temps...
• Des programmes entrent en MC (swapped in).
• Des programmes quittent la MC (swapped out).
43
Le Swapping
Lorsque tous les processus ne peuvent pas tenir simultanément en mémoire.
Taille des processus en cours d'exécution > Taille de la mémoire
physique.
Déplacer temporairement certains sur une mémoire provisoire (partie
réservée du disque).
Le Swapping
• Avantages du swapping:
Max mem
Processus i
Swap in
Processus m
Processus j
Processus k
Swap out
Operating
system
0
Adresses Virtuelles
20 bits 12 bits
Adresses Physiques
12 bits 12 bits
Translation d’Adresses
Lowest address
Highest address
Virtual Addr Space
52
Page 0
0
1
2
3
4
Page 1
5
6
7
Une Page
Page N
N
Virtual Addr Space
53
0
1
Non-Utilisé 2
3
4
5
6
7
N
Virtual Addr Space
54
Mémoire Physique
0
1
2
3
4
5
6
7
N
Virtual Addr Space Physical memory
55
0
1
2
3
4
5
6
7
Ces cases sont
utilisées pour ce
processus
N
Virtual Addr Space Physical memory
56
0
1
2
3 Used by
4 other processes
5
6
7
N
Virtual Addr Space Physical memory
57
0
1
2
3
4
5
6
7
Table de Pages
• Les mappings d‟adresse sont enregistrés dans une table de pages en
mémoire.
• Une entrée par page dans la table de pages...
• Est ce que cette page en mémoire? Si c‟est le cas, dans quelle
case?
0
1
2
3
4
5
6
7
N
Virtual Addr Space Physical memory
59
Pagination - Principe
• On ne charge qu‟un ensemble de pages en mémoire :
ce sous-ensemble est appelé l‟espace physique ou réel
Page
7 3
6 X Case
5 0 3
4 X 2
3 2 1
2 1
0
1 X
Disque (MV)
0 X Processus
en MC
Espace d’adressage
Virtuel
Ne charger que les pages utiles à un instant donné
62
Nº case
21-bits 11-bits
page number offset
frames
in
memory
•
•
•
Single-level
page table
64
• Adresse Virtuelle:
10-bits 10-bits 12-bits
PT1 PT2 offset
frames
in
memory
•
•
•
Top-level
Page table
2nd-level tables
65
Mémoire Centrale
SE
Déroutement
P M Nº case (Défaut de page)
0
Remplacement de Pages
• Soit une table de page normale.
• FIFO:
Lors d‟un défaut de page, la page la plus anciennement chargée est la page
retirée pour être remplacée. Ceci implique la datation lors du chargement de
chaque page virtuelle.
Facile à implanter
Remplacement d‟une page très référencée trop de défaut de pages.
cases\ref. A B C A B D A D B C B
1 A A A A A D D D D C C
2 B B B B B A A A A A
3 C C C C C C B B B
X X X X
Time 0 1 2 3 4 5 6 7 8 9 10
Requests c a d b e b a b c a
Page 0 a a a a
Frames 1 b b
2 c c c c c
3 d d d
Page faults X
73
Time 0 1 2 3 4 5 6 7 8 9 10
Requests c a d b e b a b c a
Page 0 a a a a a a
Frames 1 b b b b
2 c c c c c e e
3 d d d d d
Page faults X
74
Time 0 1 2 3 4 5 6 7 8 9 10
Requests c a d b e b a b c a
Page 0 a a a a a a a a c c
Frames 1 b b b b b b b b
2 c c c c c e e e e e e
3 d d d d d d d d a
Page faults X X X
75
Algorithme Optimal:
Principe:
S‟il existe des pages qui ne seront plus référencées, alors remplacer l‟une
de ces pages.
Algorithme Optimal:
cases\ref. A B C A B D A D B C B
1 A A A A A A A A A C C
2 B B B B B B B B B B
3 C C C D D D D D D
X X
5 défauts de pages
(3 placements + 2 remplacements)
77
• Exemple 2:
Time 0 1 2 3 4 5 6 7 8 9 10
Requests c a d b e b a b c d
Page 0 a a a a a
Frames 1 b b b b b
2 c c c c c
3 d d d d d
Page faults X
78
• Exemple 2:
Time 0 1 2 3 4 5 6 7 8 9 10
Requests c a d b e b a b c d
Page 0 a a a a a a a a a a
Frames 1 b b b b b b b b b b
2 c c c c c c c c c c
3 d d d d d e e e e e
Page faults X X
79
cases\ réf. A B C D A B C D A B C D
1 A A A D D D C C C B B B
2 B B B A A A D D D C C
3 C C C B B B A A A D
X X X X X X X X x
Optimal: ?
81
• Exemple 2:
Time 0 1 2 3 4 5 6 7 8 9 10
Requests c a d b e b a b c d
Page 0 a
Frames 1 b
2 c
3 d
Page faults
82
• Exemple 2:
Time 0 1 2 3 4 5 6 7 8 9 10
Requests c a d b e b a b c d
Page 0 a a a a a a a a a a a
Frames 1 b b b b b b b b b b b
2 c c c c c e e e e e d
3 d d d d d d d d d c c
Page faults X X X
83
+ -
• La taille de la MC influe beaucoup sur les performances de l‟algorithme :
N‟essayer pas de raffiner un algorithme, mais plutôt augmenter, si nécessaire, la
taille de la mémoire, et ce afin de minimiser le remplacement.
• Question : est-ce que le rajout de mémoire réduit toujours le nombre de défauts de
pages?
Oui pour seulement optimal et LRU
Non pour FIFO!
Autres Considérations
• Politique d’allocation locale/globale:
• La taille d’une page? Influe sur les tables de pages utilisées par la MMU.
• Mémoire de SWAP
où stocker les pages délogées de la MC?
sur un ou plusieurs disques locaux
partition de swap : + rapide, - de place pour le SGF.
Fichier de swap : - rapide, + de place pour les autres fichiers.
En général, le SE utilise les deux simultanément.
Plusieurs disques = swap en parallèle.
sur un serveur (de disques) distant :
Net PC, TX, STB, ...
88
Autres Considérations
• Ecroulement – thrashing
Si le nombre de processus est très grand, l‟espace propre à chacun est
insuffisant et ils passeront leur temps à gérer des défauts de pages.
Ecroulement du système : une haute activité de pagination.
un processus s'écroule lorsqu‟il passe plus de temps à paginer qu‟à
s'exécuter.
• Limiter le risque d'écroulement :
Allocation
Défaut plus de page Limite supérieure
de pages
Limite inférieure
Retrait de page
Nombre de pages
Si un processus provoque trop de défauts de pages:
au dessus d‟une limite supérieure : on lui allouera plus de cases.
en dessous d‟une limite inférieure : on lui en retirera.
Autres Considérations
Autres Considérations
• Pré-pagination
Lors du lancement d‟un processus ou lors de sa reprise après
suspension, on provoque obligatoirement un certain nombre de défauts de
page.
Essayer de les limiter - enregistrer W avant suspension.
Au lancement d‟un programme les 1ères pages de code seront
vraisemblablement exécutées.
Conclusion
• Découpage en pages et cases de même taille.