systèmes d’exploitation - ensin6u3 - academie prosystèmes d’exploitation - ensin6u3 gestion de...
TRANSCRIPT
Systèmes d’Exploitation - ENSIN6U3Gestion de la mémoire
Leonardo Brenner 1 Jean-Luc Massat 2
Aix-Marseille UniversitéFaculté des Sciences
Table de matière
1 Généralités
2 Le partage de la mémoireAllocation de mémoireAllocation de la mémoire contiguëAllocation non-contiguë : la paginationSegmentation
3 La mémoire virtuelleAlgorithmes de remplacement
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 2 / 61
Généralités
Table de matière
1 Généralités
2 Le partage de la mémoireAllocation de mémoireAllocation de la mémoire contiguëAllocation non-contiguë : la paginationSegmentation
3 La mémoire virtuelleAlgorithmes de remplacement
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 3 / 61
Généralités
Généralités
Notion de mémoire
La mémoire est une ressource :
partageable / non partageable
réquisitionnable / non réquisitionnable
reutilisable
Mémoire d’un processus
Chaque processus travail dans un mémoire logique qui est vu comme untableau de cases mémoire.
Mémoire logique
Cette mémoire logique est dite linéaire car les cases qui la composent sontcontiguës. Ces cases sont repérées par des entiers consécutifs qui sontappelés des adresses logiques.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 4 / 61
Généralités
Adresses logiques vs. adresses physiques
Génération d’adresses
Lors de l’exécution, chaque processus P génère des adresses logiques.A l’opposé, les cases de la mémoire physique sont repérées par desadresses physiques.
Adresses logiques :
privé au le programme, utilisé par l’unité centrale.
Adresses physiques :
accès à la mémoire, instructions de lecture/écriture de/à un registre,
la MMU (« memory management unit ») transforme les adresses logiquesen adresses physiques.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 5 / 61
Généralités
Catégories de mémoire
Organisation de la mémoire
partition unique
partitions fixes
Correspondance fixe
partitions variables
Mém. logique contiguë
Mém. physique contiguë Mém. physique non contiguë
mémoire paginée
mémoire virtuelle paginée
Mém. logique non contiguë
mémoire segmentée mémoire segmentée paginée
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 6 / 61
Le partage de la mémoire
Table de matière
1 Généralités
2 Le partage de la mémoireAllocation de mémoireAllocation de la mémoire contiguëAllocation non-contiguë : la paginationSegmentation
3 La mémoire virtuelleAlgorithmes de remplacement
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 7 / 61
Le partage de la mémoire Allocation de mémoire
Allocation de mémoire
Correspondance entre adresses
La correspondance entre adresses logiques et adresses physiques :
statique (établie une seule fois) ;
dynamique (variable dans le temps).
Gestion de la mémoire physique
Partage de données entre processus ;
Protection de chaque processus.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 8 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Système à partition unique (1/2)
Va-et-vient ou swapping
Un seul processus est placé en mémoire à la fois.
S.E. partition unique mémoire
RB
RL
Caractéristiques
les processus sont tous et toujours à la même adresse physique ;
la correspondance logique/physique est réglée lors de la compilation oudu chargement ;
la réquisition de la CPU entraîne la sauvegarde de la partition et lechargement d’un nouveau processus ;
la CPU est inutilisée durant les sauvegardes/récupérations.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 9 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Système à partition unique (2/2)
Protection
La protection est possible par le jeu des deux registres spécialisées RB(registre de base) et RL (registre limite).
Sauvegarde
Pour limiter les E/S, le système sauvegarde uniquement les zones de lapartition qui ont été modifiées et/ou applique l’algorithme des peluresd’oignons.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 10 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Les recouvrements
Objectifs
Limiter la taille de la mémoire occupée par le code du programme.
Caractéristiques
les programmes de taille importante sont découpés en plusieurs partiesindépendantes ;
une partie reste systématiquement en mémoire, c’est la racine durecouvrement ;
les autres parties sont chargées en mémoire à la demande.
mémoire physique
A B C
A B
A C
configuration 1
configuration 2
programme (3 parties)
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 11 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Système à partitions fixes
A(1) C(2) B(1)
C(2) A(1) B(1) C(2)
Canal.
U.C.
sauvegarde
chargement
programme(zone)
S.E. zone 1 zone 2
A
B
C
mémoire
programmes
Allocation de la mémoire
Chronogramme d'activité
Caractéristiques
la mémoire est divisée en zones de taille fixe (spécialisation) ;
les processus s’exécutent toujours dans la même zone ;
pendant les échanges sur la zone 1, un autre processus s’exécute sur la zone 2 ;
la correspondance logique/physique est réglée lors de la compilation ou duchargement ;
protection possible par les registres RB et RL.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 12 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Système à partitions variables
5
2
1
0
C
B
A
155
152
151
150
C
B
A
3
4
D
E
F
153
154
D
E
F
+
6
3 < RL
RL
150
RB
3
déroutement surerreur d'adressage
oui
non
Caractéristiques
les partitions sont allouées et libérées à la demande (création ou fin d’unprocessus) ;
le registre de base (RB) pointe sur la partition et le registre limite (RL) en indiquela taille.
Les processus génèrent des adresses logiques comprises entre 0 et RL-1 ;
RB et RL sont utilisés par la CPU pour traduire ces adresses en adressesphysiques à chaque accès mémoire.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 13 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Allocation par chaînage des zones libres
Zones libres
Les zones libres sont placées dans une liste chaînée.
Où placer les processus ?
Il existe plusieurs stratégies de recherche :
First-fit : première zone libre suffisamment grande ;Best-fit : meilleur ajustement pour utiliser au mieux les zones libres :
il faut parcourir toutes les zones ;il reste des petits résidus inutilisables.
Worst-fit : plus grand résiducombat l’émiettement.
Algorithmes spécialisés.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 14 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Algorithmes d’ordonnancement (1/3)
First fit
NoyauProc1
Proc2
+ Proc3 →
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 15 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Algorithmes d’ordonnancement (1/3)
First fit
NoyauProc1
Proc2
+ Proc3 →
NoyauProc1
Proc3
Proc2
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 15 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Algorithmes d’ordonnancement (2/3)
Best fit
NoyauProc1
Proc2
+ Proc3 →
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 16 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Algorithmes d’ordonnancement (2/3)
Best fit
NoyauProc1
Proc2
+ Proc3 →
NoyauProc1
Proc2Proc3
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 16 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Algorithmes d’ordonnancement (3/3)
Worst fit
NoyauProc1
Proc2
+ Proc3 →
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 17 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Algorithmes d’ordonnancement (3/3)
Worst fit
NoyauProc1
Proc2
+ Proc3 →
NoyauProc1
Proc3
Proc2
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 17 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Allocation par subdivision (buddy system)
Taille des zones
La taille des zones suit une règle définie par une relation de récurrence :
binaire : (1, 2, 4, 8, ...) Si+1 = 2 × Si
fibonacci : (1, 2, 3, 5, 8, ...) Si+1 = Si + Si−1
Zones libres
Il existe une liste de zones libres pour chaque taille.
〈allouer un bloc de taille T 〉si 〈il existe un bloc de taille T 〉 alors
〈renvoyer ce bloc〉sinon
〈allouer un bloc de 2 × T 〉〈libérer la deuxième partie de ce bloc〉〈renvoyer la première partie〉
fin si
La recherche d’une zone libre est rapide et il est facile de reconstruire deszones à la libération.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 18 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Exemple d’allocations/libérations
Buddy system
4
2 2C
2C
A B 1 4
A 42
8
8
Alloc. de A, longueur = 2
Alloc. de B, longueur = 1
Alloc. de C, longueur = 2
Libération de A
Libération de C
Libération de B
A B 1
B 1
2 B 1
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 19 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Fragmentation externe/interne
Fragmentation externe
La fragmentation externe est due à l’émiettement de la mémoire lors desallocations/libérations.
Fragmentation interne
La fragmentation interne c’est l’unité de mémoire minimum que le S.E. estcapable de gérer (généralement plusieurs Kilooctets).
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 20 / 61
Le partage de la mémoire Allocation de la mémoire contiguë
Le compactage
Objectif
Le compactage de la mémoire procède par recopie des partitions pour faireapparaître une zone libre de taille suffisante.
Exemples
100
100
5050
100
100
5050
100
100
5050
100
100
5050
150 100 50
100
100
5050
200
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 21 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
La pagination (1/2)
Description
But : solution à la fragmentation,Voir : la gestion de l’espace sur disque, les bloques.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 22 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
La pagination (1/2)
Description
But : solution à la fragmentation,Voir : la gestion de l’espace sur disque, les bloques.
La mémoire logique est découpée en pages (toujours une puissance de2).
Une adresse logique dans un système paginé est un couple :(# page logique, déplacement)
Une adresse physique est un couple :(# page physique, déplacement)
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 22 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
La pagination (1/2)
Description
But : solution à la fragmentation,Voir : la gestion de l’espace sur disque, les bloques.
La mémoire logique est découpée en pages (toujours une puissance de2).
Une adresse logique dans un système paginé est un couple :(# page logique, déplacement)
Une adresse physique est un couple :(# page physique, déplacement)
Si
A = adresse logique, T = taille de page
alors
# page logique = A/T , déplacement = A%TLeonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 22 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
La pagination (2/2)
Description
La mémoire physique est découpée en cadres de page (même tailled’une page).
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
La pagination (2/2)
Description
La mémoire physique est découpée en cadres de page (même tailled’une page).
Adresses physique est un couple (f , d), cadre de pages et déplacement.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
La pagination (2/2)
Description
La mémoire physique est découpée en cadres de page (même tailled’une page).
Adresses physique est un couple (f , d), cadre de pages et déplacement.
A chaque page logique p peut correspondre un cadre de page f = f (p).
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
La pagination (2/2)
Description
La mémoire physique est découpée en cadres de page (même tailled’une page).
Adresses physique est un couple (f , d), cadre de pages et déplacement.
A chaque page logique p peut correspondre un cadre de page f = f (p).
Cette correspondance est maintenue dans la table des pages.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
La pagination (2/2)
Description
La mémoire physique est découpée en cadres de page (même tailled’une page).
Adresses physique est un couple (f , d), cadre de pages et déplacement.
A chaque page logique p peut correspondre un cadre de page f = f (p).
Cette correspondance est maintenue dans la table des pages.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
La pagination (2/2)
Description
La mémoire physique est découpée en cadres de page (même tailled’une page).
Adresses physique est un couple (f , d), cadre de pages et déplacement.
A chaque page logique p peut correspondre un cadre de page f = f (p).
Cette correspondance est maintenue dans la table des pages.
La MMU
La MMU (memory management unit) calcule un adresse physique à partird’un adresse logique selon la formule
phys(p, d) = (f (p), d)
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
La pagination (2/2)
Description
La mémoire physique est découpée en cadres de page (même tailled’une page).
Adresses physique est un couple (f , d), cadre de pages et déplacement.
A chaque page logique p peut correspondre un cadre de page f = f (p).
Cette correspondance est maintenue dans la table des pages.
La MMU
La MMU (memory management unit) calcule un adresse physique à partird’un adresse logique selon la formule
phys(p, d) = (f (p), d)
Gestion de la multiprogrammation
Le PTBR, registre de base de la table de pages,« page-table base register ».
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 23 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
Traduction des adresses logiques en adressesphysiques (1/3)
Fonction de pagination
La fonction de pagination assure la correspondance entre le numéro de lapage logique et le numéro de la page physique.
Fonction depagination
Mémoirelogique
Mémoirephysique
0
1
2 - 1
0
1
n2 - 1
n
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 24 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
Traduction des adresses logiques en adressesphysiques (2/3)
Table de pages
Pour chaque processus, le S.E. détient une table de pages logiques qui fait lacorrespondance avec les pages physiques.
npl dep
npp npp dep
adr. logique
adr. physique
Table des pages (desc)
R. de base
+
vérifier quenpl < RL
RL
npp prot
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 25 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
Traduction des adresses logiques en adressesphysiques (3/3)
Version algorithmique de la correspondance
〈npl, dépl 〉 := adresse logiquesi (npl < RL ) alors
si les protections desc[npl].prot sont respectées alorsnpp := desc[npl].nppadresse_physique := 〈npp, dépl 〉
sinon〈déroutement sur violation de protection〉
fin sisinon
〈déroutement sur erreur d’adressage〉fin si
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 26 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
Exemple de pagination
Exemple
A
B
D
E
C F
G
Table despages du
processus 1
Table despages du
processus 2
pages physiques
A
D
F
C
B
E
G
Mémoirelogique duprocessus 1
Mémoirelogique duprocessus 2
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 27 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
Avantages et inconvénients
Avantages
La gestion de la mémoire est plus simple (il suffit de gérer la liste despages libres).
Le compactage est inutile.
Protections différentes pour chaque page.
Inconvénients
Le temps d’accès en mémoire est doublé.−→ temps d’accès = 2 × t = 2 nanosecondes.
Il faut que le matériel supporte cette organisation.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 28 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
Comportement des processus
Non uniforme
Le comportement « en moyenne »des processus est non uniforme :
20% des pages regroupent 75% des accès.
Principe de localité
les accès sont stable sur une courte période ;
l’activité actuelle est une bonne estimation de l’activité future.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 29 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
Les tables de pages : utilisation de la mémoire
Une table par processus
Problème : si
adresse logique ∈ {0, . . . , 232 − 1}
taille d’une page = 4K = 212 ,
alors
taille de la table de pages = 220 .
Solutions
plusieurs niveaux d’indirection (table de page paginée),
tables de pages inversées,
partage de pages.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 30 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
Mémoires associatives
100 100 500
échec
500
entre 16et 512
Caractéristiques
Peu de temps d’attente car les tests sont faits en parallèle (20nanosecondes) ;
Ces circuits sont très onéreux.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 31 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
Mémoires associatives et pagination
Principe
Retenir les derniers couples (page logique, page physique), pour éviterl’accès mémoire à la table des pages.
npl dep
adr. logique
mémoireassociative
échec
succès
npp npp dep
adr. physique
Table des pages (desc)
RB
+
vérifier quenpl < RL
RL
npp prot
Il faut mettre à jour la M.A. après les échecs et la vider lors des commutations.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 32 / 61
Le partage de la mémoire Allocation non-contiguë : la pagination
Partage de pages entre processus
Pa
Pb
Pa
Pb
D1
D2
D4
D5
D6
D7
Table despages du
processus 1
Table despages du
processus 2
pages physiques
Pa
Pb
D1
D2
D4
D5
D6
D7
Les pages contenant le programme (Pa et Pb) sont partagées,mais les pages de données (D1, …, D7) ne le sont pas.
Mémoirelogique duprocessus 1
Mémoirelogique duprocessus 2
Principe
Les pages contenant le programme Pa et Pb sont partagées, tandis que lespages Dx ne le sont pas.
Pour une même page physique, il est possible d’avoir des protectionsdifférentes suivant le processus qui l’utilise.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 33 / 61
Le partage de la mémoire Segmentation
La mémoire segmentée
Notion de segments
Un segment est un bloc de donnée de taille variable.
code 1
0
L0
code 22
L2
data 11
L1
data 2
3
L3
Adresse logique
Une adresse logique dans un système segmenté (aussi appelée adressesegmentée) est un couple
(# segment, déplacement)Cette organisation physique de la mémoire corresponds bien à l’organisationlogique à l’intérieur d’un programme.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 34 / 61
Le partage de la mémoire Segmentation
Transformation des adresses segmentées
Table de segments
Le S.E. détient une table des segments pour chaque processus.
L0
L1
L2
L3
0
1
2
3
table des segments (desc)
code 1
code 2
mémoirephysique
RB
RL
pro
t
ori
gin
e
tail
le
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 35 / 61
Le partage de la mémoire Segmentation
Transformation des adresses segmentées
Version algorithmique de la correspondance
〈seg, dépl 〉 := adresse logiquesi (seg < RL ) et (desc[seg].taille ) alors
si les protections desc[seg].prot sont respectées alorsadresse_physique := desc[seg].origine + dépl
sinon〈déroutement sur violation de protection〉
fin sisinon
〈déroutement sur erreur d’adressage〉fin si
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 36 / 61
Le partage de la mémoire Segmentation
Partage de segment entre processus
Exemple
taille
0
1
prot origine
table des segments de P1
data 1
code
data 2
taille
0
1
prot origine
table des segments de P2
code0
data 11 data 201
P1P2
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 37 / 61
Le partage de la mémoire Segmentation
Avantages et inconvénients
Avantages
les protections concernent les segments,
on peut utiliser les mémoires associatives,
le partage de segment est simple.
Inconvénients
L’allocation de segments implique :
un problème de fragmentation externe ;
une obligation du tassage de la mémoire.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 38 / 61
Le partage de la mémoire Segmentation
Pagination d’une mémoire segmentée
Adresse logique
Une adresse logique (ou adresse segmentée et paginée) est un triplet(# segment, # de page, déplacement)
La taille des segments s’exprime maintenant en nombre de pages.
npl
npp dep
adr. segmentée et paginée
adr. physique
Table des segments
R. de base
seg
+
L
vérifier que(npl < L) +
Table des pagesdu segment seg
npp
L
dep
Avantages
Plus de problème de fragmentation interne puisque les segments ne sont pluscontigus en mémoire physique.Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 39 / 61
La mémoire virtuelle
Table de matière
1 Généralités
2 Le partage de la mémoireAllocation de mémoireAllocation de la mémoire contiguëAllocation non-contiguë : la paginationSegmentation
3 La mémoire virtuelleAlgorithmes de remplacement
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 40 / 61
La mémoire virtuelle
Mémoire virtuelle paginée
Principe
Les programmes utilisent 20% de leur page, donc il est inutile de toutes lesconserver en mémoire.
Exemple
Considérons une mémoire physique avec 1000 cadres de page. Cettemémoire peut stocker :
10 processus de 100 pages logiques ;
50 processus de (100 × 0, 2) pages utiles.
Rôle du S.E.
Le S.E. doit détecter (avec l’aide du matériel) :
les pages inutilisées (réquisition) ;
les pages utiles et présentes en mémoire physique ;
les pages utiles et absentes de la mémoire physique (défaut de page) ;
les pages utiles dans le futur et absentes de la mémoire physique(préchargement).Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 41 / 61
La mémoire virtuelle
Fonction de pagination virtuelle
Fonction depagination
Mémoirevirtuelle
Mémoirephysique
Défaut de page
zone de paginationen mémoire secondaire
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 42 / 61
La mémoire virtuelle
Hiérarchie de mémoire
Gestionde la
mémoirevirtuelle
Gestionde la
mémoirecache
Mémoire secondaire lente (bandes, ...)
Mémoire secondaire standard
Mémoire secondaire rapide
Mémoire centrale
Mémoire cache (lente)
Mémoire cache (de la CPU)
Registres de la CPU
Swappingin / out
Compilation
Gestion de cache
La mémoire virtuelle implante la gestion d’un niveau de cache.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 43 / 61
La mémoire virtuelle
Adresses virtuelles versus adresses physiques
npv dep
npp0 npp dep
adr. virtuelle
adr. physique
1
mémoireassociative
échec
pré
sen
t
mo
dif
Table des pagesvirtuelles (desc)
RB
succès
+
défaut de pagesi présent = 0
pro
t
np
p
RL
Table des pages virtuelles
Pour chaque processus, le S.E. détient une table des pages virtuelles. Cettetable est stockée en mémoire et pointée par le registre de base.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 44 / 61
La mémoire virtuelle
Transformation des adresses virtuelles
Version algorithmique de la correspondance
〈npv, dépl 〉 := adresse virtuellesi (npv < RL ) alors
si les protections desc[npv].prot sont respectées alorssi (desc[npv].présent = 1 ) alors
npp := desc[npv].nppadresse_physique := <npp, dépl>
sinon〈déroutement sur défaut de page〉
fin sisinon
〈déroutement sur violation de protection〉fin si
sinon〈déroutement sur erreur d’adressage〉
fin si
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 45 / 61
La mémoire virtuelle
Exemple de mémoire virtuelle paginée
Exemple sur deux processus
A
0
1
pré
sen
t
mo
dif
np
p
B
C
D
E
F
G
H
01
B
H
D
C
F
A
B
?
?
E
F
G
?
1
1
1 1
1
1
0
0
0 -
-
- -
-
-
Tables despages virtuelles
Mémoiresvirtuelles
Mémoirephysique
Zone depagination
Processus2
Processus1
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 46 / 61
La mémoire virtuelle
Traitement du défaut de page
Algorithme
〈suspendre le processus qui a provoqué le défaut〉si (il existe une page physique libre ) alors
npp := 〈numéro de cette page〉sinon
v := 〈choisir une page virtuelle victime〉npp := desc[v].nppdesc[v].présent := 0si (desc[v].modif = 1 ) alors
swap[v] := page[npp] c’est une E/Sfin si
fin sinpv := 〈numéro de la page virtuelle manquante〉page[npp] := swap[npv] c’est une E/Sdesc[npv].présent := 1desc[npv].modif := 0desc[npv].npp := npp〈reprendre le processus que a provoqué le défaut〉
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 47 / 61
La mémoire virtuelle
Pagination à plusieurs niveaux
Principe
Si la mémoire est importante, le nombre de pages augmente et la table despages devient imposante.
Exemple
Une mémoire de 256 Mo (soit 228 octets) est divisée en 228/210 = 218 pages.
La table des pages a donc 218 entrées soit 1 Mo pour des entrées de 4 octets.
Solution
Paginer la table de pages ce qui revient à faire une pagination à deux niveaux.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 48 / 61
La mémoire virtuelle
Organisation à plusieurs niveaux
npv dep
npp dep
adr.virtuelle
adr.physique
mémoireassociative
Table des hyperpages
R. de base
succès
nhyp
+
L
vérifier quenpv < L +
Table des pagesde l'hyperpage nhyp
npp01
pré
sen
t
mo
dif
L
défaut de pagesi présent = 0
1
pré
sen
t
Niveaux de pagination
Il peut y avoir jusqu’à 5 niveaux de pagination.
Temps d’accès = 0, 98 × 120 + 0, 02 × 520 = 128ms
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 49 / 61
La mémoire virtuelle
Mémoire virtuelle segmentée et paginée
page dep
npp dep
adr.virtuellepaginée
segmentéeadr.
physique
mémoireassociative
Table des segments
RB
succès
seg
+
L
vérifier quepage < L +
Table des pagesdu segment seg
01
pré
sen
t
mo
dif
L
défaut de pagesi présent = 0
pro
t
ori
gin
e
Avantages
Le processus est capable d’informer le S.E. d’un changement dans le moded’utilisation d’un segment.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 50 / 61
La mémoire virtuelle
La taille des pages
Avantages de grandes pages
diminuer le nombre de pages, donc le nombre de défaut de page ;
diminuer la taille de la table de pages ;
optimiser le temps de transfert vers/depuis la zone de pagination ;
utiliser des mémoires centrales de plus en plus grandes.
Avantages de petites pages
limiter la fragmentation interne ;
définir avec plus de précision les zones de mémoires utiles à unprocessus.
S.E. récents
la taille de pages varie entre 1 Ko et 32 Ko ;
certains S.E. autorisent plusieurs tailles différentes.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 51 / 61
La mémoire virtuelle Algorithmes de remplacement
Algorithmes de remplacement (1/3)
Pages propres
On choisit en priorité les pages virtuelles propres (qui n’ont pas étémodifiées). Ça réduit les transferts vu que la page ne sera pas sauvegardesur la zone de pagination.
Algorithmes de remplacement
Algorithme optimale (base de référence) : choisir la page virtuelle qui est utiliséele plus tard possible ou qui n’est plus utilisée ;
Algorithme aléatoire : le moins bon ;
Algorithme FIFO : il ne tient pas compte de l’utilisation des pages ;
Algorithme LRU (Least Recently Used) : est basé sur le principe de localité. Onchoisit la page dont la date du dernier accès est la plus ancienne ;
Algorithme LFU (Least Frequently Used) : choisir la page la moins utilisée ;
Algorithme LINUFO (First In Not Used First Out) : aussi connu comme algorithmede la deuxième chance.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 52 / 61
La mémoire virtuelle Algorithmes de remplacement
Algorithmes de remplacement (2/3)
Algorithme FINUFO
L’algorithme FINUFO ou dit algorithme de la deuxième chance va remplacerune page uniquement au deuxième essai. Pour cela, on dispose :
d’un pointeur de page physique ptr ;
d’un bit par page physique noté U[k] . Ce bit U[k] est forcé à 1 aprèschaque accès à la page physique k .
Algorithme du choix de la victime FINUFO
tant que (U[prt] = 1 ) faireU[ptr] := 0ptr = (ptr + 1) mod 〈nombre de pages physiques〉
fin faireU[ptr] = 1ptr = (ptr + 1) mod 〈nombre de pages physiques〉
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 53 / 61
La mémoire virtuelle Algorithmes de remplacement
Algorithmes de remplacement (3/3)
Exemple - FINUFO avec mémoire physique à deux pages
5
0
1
5 1
2
5 1
2 1
3 1
2 0
3
3 1
2 1
2
3 0
4 1
4
pointeur FINUFO
bit FINUFO
N° de page virtuelle
Performances
Nombrede défauts
de page
Taille de la mémoire
FIFO
FINUFO
LRU
OPT
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 54 / 61
La mémoire virtuelle Algorithmes de remplacement
Comportement en mémoire virtuelle paginée
Nombrede défauts
de page
Taille de la mémoire
Intervalleentre
défautsde page
Taille de la mémoire
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 55 / 61
La mémoire virtuelle Algorithmes de remplacement
Allocation des pages physiques
Allocation équitable
On donne à chaque processus une part égale de la mémoire physique.
Allocation proportionnelle
On donne à chaque processus une part proportionnelle à la taille de samémoire virtuelle.
Virtuelles PhysiquesProcessus 1 25 20Processus 2 70 53Processus 3 35 27Mémoires 130 100
Politique de choix de la victime
Remplacement local : on choisit parmi les pages du processusdemandeur ;
Remplacement global : on choisit parmi toutes les pages.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 56 / 61
La mémoire virtuelle Algorithmes de remplacement
Écroulement d’un système paginé (1/2)
Définition
Augmentation considérable du nombre de défaut de page provoquant unchute du taux d’utilisation de la CPU.
Tauxd'utilisation
de la CPU
dégré de multiprogrammation
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 57 / 61
La mémoire virtuelle Algorithmes de remplacement
Écroulement d’un système paginé (2/2)
Pour éviter l’écroulement du système
régulation de charge par la variation du degré de multiprogrammation(swapping in/out) ;
répartition variable de la mémoire physique.
On se base sur
méthode de l’ensemble de travail ;
observation du taux de défaut de page.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 58 / 61
La mémoire virtuelle Algorithmes de remplacement
Méthode de l’ensemble de travail (1/2)
Fenêtre d’observation
L’ensemble de travail d’un processus au temps t noté W (t ,T ) est l’ensembledes pages ayant été référencées entre t et (t − T ). T est appelé la fenêtred’observation.
Proprieté
La probabilité que l’une des pages de W (t ,T ) soit référencée au temps(t + 1) est forte.
Conséquence
Si les pages physiques allouées à un processus ne peuvent contenirl’ensemble de travail, le nombre de défauts de page sera important.
Problème
Il est très coûteux de maintenir un ensemble de travail pour chaqueprocessus.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 59 / 61
La mémoire virtuelle Algorithmes de remplacement
Méthode de l’ensemble de travail (2/2)
Principe d’implémentation
On utilise une approximation en associant n bits b1, ..., bn à chaque pagephysique.
chaque accès à une page physique provoque la mise à 1 du bit b1
associé à cette page ;
régulièrement (sur interruption d’horloge), le S.E. décale les bitsb1, ..., bn−1 vers la droite et le bit b1 est forcé à zéro.
donc, les bits b1, ..., bn donnent un historique d’utilisation de la page physique.
une page physique appartient à W (t ,T ) ssi
il existe j < T tel que bj = 1.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 60 / 61
La mémoire virtuelle Algorithmes de remplacement
Méthode du taux de défaut de page
Principe
Le taux de défaut de page pour chaque processus doit être compris entre deux bornes.
Taux trop bas
Si le taux est trop bas , alors le nombre de pages physiques allouées à ce processusest trop important.
Taux trop haut
Si le taux est trop haut , alors le nombre de pages physiques allouées à ce processusn’est pas suffisant pour contenir son ensemble de travail. Deux actions sont possibles :
enlever des pages physiques au processus dont le taux est trop bas afin de lesredistribuer au processus qui manque de pages physiques ;
appliquer le « swapping out »d̃e processus pour diminuer le degré demultiprogrammation, et libérer des pages physiques.
En fait le S.E. tente d’égaliser les taux de défaut de page pour tous les processus dusystème.
Leonardo Brenner , Jean-Luc Massat (AMU) Systèmes d’Exploitation 61 / 61