Beruflich Dokumente
Kultur Dokumente
Gestion de la mmoire
Chapitre 6
Remplacement
Allocation contigu
partitions fixes
variables
Pagination
Segmentation
Segmentation et pagination combines
Groupes de paires (buddy systems)
Mmoire/Adresses physiques et
logiques
Mmoire physique:
la mmoire principale RAM de la machine
adr.
Vue de lusager
Normalement, nous avons plusieurs types dadressages p.ex.
les adresses du programmeur (noms symboliques) sont traduites au
moment de la compilation dans des
adresses logiques
ces adresses sont traduites en adresses physiques par lunit de
traduction adresses (MMU)
10
C
Donnes
JUMP(D, 100)
LOAD(C,250)
Donnes
D
Sousprogr.
Espace
dadressage
logique
LOAD(B,50)
11
Adressage indirecte
peut tre utilis dans cette mthode
mot adress
1: adresse indirecte
code op
adresse
instruction
12
13
Aspects du chargement
Trouver de la mmoire libre pour un module de
chargement: contigu ou non
14
Autres
programmes
JUMP 10328
500K
Mmoire logique
Mm. physique
15
Liaison et chargement
Progr.
Source
Compilateur
Progr.
excutable
Autres
Mods
(librairie)
Modules
Objet
diteur
de liens
Chargeur
Modules
Lis
NB: on fait l`hypothse que tous les modules soient connus au dbut
Souvent, ce nest pas le cas chargement dynamique
16
17
Recouvrement ou overlay
Dans quelques systmes surtout dans le pass), la permutation de modules
(swapping) dun mme programme pouvait tre gre par l usager
18
19
20
Lallocation contigu nest plus utilise aujourdhui pour la mmoire centrale, mais les
concepts que nous verrons sont encore utiliss pour lallocation de fichiers sur disques
21
22
adresse de base de
la partition o le
progr. en xec. se
trouve
23
24
Partitions fixes
Mmoire principale
subdivise en rgions
distinctes: partitions
Les partitions sont soit de
mme taille ou de tailles
ingales
Nimporte quel progr. peut
tre affect une partition qui
soit suffisamment grande
(Stallings)
25
(Stallings)
26
(Stallings)
27
Partitions fixes
Simple, mais...
Inefficacit de lutilisation de la mmoire: tout
programme, si petit soit-il, doit occuper une partition
entire. Il y a fragmentation interne.
Les partitions tailles ingales attnue ces problmes
mais ils y demeurent...
28
Partitions dynamiques
Partitions en nombre et tailles variables
Chaque processus est allou exactement la taille de
mmoire requise
Probablement des trous inutilisables se formeront dans
la mmoire: cest la fragmentation externe
29
30
(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 320224=96K...
Nous avons 3 trous petits et probabl. inutiles. 96+96+64=256K de fragmentation externe
COMPRESSION pour en faire un seul trou de 256K
31
Algorithmes de Placement
Best-fit: cherche le plus petit bloc possible: le trou cr est le plus petit
possible
la mmoire se remplit de trous trop petits pour contenir un programme
33
Compression (compaction)
Une solution pour la fragmentation externe
Les programmes sont dplacs en mmoire de faon rduire
1 seul grand trou plusieurs petits trous disponibles
Effectue quand un programme qui demande dtre excut ne
trouve pas une partition assez grande, mais sa taille est plus
petite que la fragmentation externe existante
Dsavantages:
temps de transfert programmes
besoin de rtablir tous les liens entre adresses de diffrents
programmes
34
35
A
Progr.
Princ.
JUMP(D, 100)
LOAD(C,250)
Donnes
C
Donnes
4 segments: A, B, C, D
D
Sousprogr.
LOAD(B,50)
36
0
1
2
3
1
2
espace usager
mmoire physique
tant donn que les segments sont plus petits que les programmes entiers, cette
technique implique moins de fragmentation (qui est externe dans ce cas)
37
0
3
segment courant
Adr de 3
Adr de 2
Adr de 1
Adr de 0
Tableau de descripteurs
de segments
1
2
mmoire physique
38
Dtails
Ladresse logique consiste d une paire:
<No de segm, dcalage>
o dcalage est l adresse dans le segment
39
41
Stallings
Adresse finale
42
43
44
Pagination simple
La mmoire est partitionne en petits morceaux de mme taille:
les pages physiques ou cadres ou frames
Chaque processus est aussi partitionn en petits morceaux de
mme taille appels pages (logiques)
Les pages logiques dun processus peuvent donc tre assigns
aux cadres disponibles nimporte o en mmoire principale
Consquences:
un processus peut tre parpill nimporte o dans la mmoire physique.
la fragmentation externe est limine
45
Stallings
46
47
Tableaux de pages
Tableaux de pages
Stallings
49
Traduction dadresses
Ladresse logique est facilement traduite en
adresse physique
car la taille des pages est une puissance de
2
les pages dbutent toujours des adresses
qui sont puissances de 2
qui ont autant de 0s droite que la longueur
de loffset
donc ces 0s sont remplacs par loffset
Stallings
Mcanisme: matriel
51
Stallings
52
11010000+1010
=
1101 1010
53
Problmes defficacit
La traduction d`adresses, y compris la recherche des adresses
des pages et de segments, est excute par des mcanismes de
matriel
Cependant, si la table des pages est en mmoire principale,
chaque adresse logique occasionne au moins 2 rfrences la
mmoire
Une pour lire lentre de la table de pages
Lautre pour lire le mot rfrenc
54
55
tableau de pages du
tableau de pages
56
57
Partage de pages:
3 proc. partageant un diteur, sur des donnes prives chaque proc
59
Mthodes
Allocation contigu
Partitions fixes
Partitions variables
Groupes de paires
Pagination
Segmentation
60
Chapitre 6
Mmoire virtuelle
61
La mmoire virtuelle
fin quun programme soit excut, il ne doit pas
ncessairement tre tout en mmoire centrale!
Seulement les parties qui sont en excution ont besoin dtre en
mmoire centrale
Les autres parties peuvent tre sur mm secondaire (p.ex.
disque), prtes tre amenes en mmoire centrale sur
demande
Mcanisme de va-et-vient ou swapping
62
Donc: tous les morceaux dun processus ne ncessitent pas dtre en mmoire
principale durant lexcution
Lexcution peut continuer condition que la prochaine instruction (ou donne) est
dans un morceau se trouvant en mmoire principale
Mmoire virtuelle:
Tableau de pages
64
65
Bit
Adresse de la
prsent
page
bit prsent
1 si en mm. princ.,
0 si en mm second.
66
67
Mmoire Virtuelle
Pour une meilleure performance, la mmoire virtuelle se trouve
souvent dans une rgion du disque qui est nest pas gre par le
systme de fichiers
Mmoire va-et-vient, swap memory
68
Tableau de pages
69
lecture-criture disque)
(inclut le temps de
En utilisant la mme formule, nous pouvons dterminer quel est le nombre de dfauts que
nous pouvons tolrer, si un certain niveau de performance est dsir (v. manuel).
P.ex. avec ces params, si le ralentissement cause de pagination ne peut pas excder 10%,
1 seul dfaut de pagination peut tre tolr pour chaque 2,500,000 accs de mmoire.
(Temps daccs disque raliste
aujourdhui= autour de 10ms)
70
71
La page victime...
72
Remplacement de pages
Quoi faire si un processus demande une nouvelle page et il ny a
pas de cadres libres en RAM?
Il faudra choisir une page dj en mmoire principale,
appartenant au mme ou un autre processus, quil est possible
d enlever de la mmoire principale
la victime!
73
74
75
76
Critres defficacit
Il est intolrable dexcuter un algorithme complexe
chaque fois quune opration de mmoire est
excute
Ceci impliquerait des accs additionnels de mmoire
77
2, 3, 2, 1, 5, 2, 4, 5, 3, 2, 5, 2
Attention: les squences dutilisation pages ne sont pas
alatoires...
Localit de rfrence
78
79
80
Comparaison OPT-LRU
Exemple: Un processus de 5 pages sl n`y a que 3 pages physiques
disponibles.
Dans cet exemple, OPT occasionne 3+3 dfauts, LRU 3+4.
81
82
83
84
85
Implantation de FIFO
Facilement implantable en utilisant un tampon
circulaire de cadres de mmoire
Qui ne doit tre mis jour que chaque dfaut de page
Exercice: concevoir limplantation de ce tampon (v. exemple
prcdent)
86
Mais les cadres qui viennent dtre utiliss (bit=1) ne sont pas
remplaces (deuxime chance)
Les cadres forment conceptuellement un tampon circulaire
Lorsquune page est charge dans un cadre, un pointeur pointe sur le
prochain cadre du tampon
Pour chaque cadre du tampon, un bit utilis est mis 1 (par le matriel)
lorsque:
une page y est nouvellement charge
sa page est utilise
88
LRU
FIFO
Horloge
Algorithmes compteurs
Garder un compteur pour les rfrences chaque page
LFU: Least Frequently Used: remplacer la pages avec le plus
petit compteur
MFU: Most Frequently Used: remplacer les pages bien uses
pour donner une chance aux nouvelles
Ces algorithmes sont dimplantation dispendieuse et ne sont pas
beaucoup utiliss
Mise jour de compteurs chaque opration de mmoire!
91