Академический Документы
Профессиональный Документы
Культура Документы
• Généralités
• La pagination pure
- Conversion d’adresses virtuelles en adresses physiques
- Table des pages à plusieurs niveau et table inversée
- Algorithmes de remplacement de page
- Problèmes de l’écroulement du système
- Retour sur instruction
• Segmentation / pagination
• Cas de Windows
Généralités
• Le but de la mémoire virtuelle est de permettre l’exécution de programmes
dont la taille excède celle de la mémoire réelle.
1
Généralités (2)
• D’une manière générale, l’espace d’adressage est structuré en blocs de :
Généralités (3)
Exemple :
• supposons que l’adresse virtuelle (b, d) est sur 32 bits, n bits pour d :
• La table des blocs d’un processus indique quels sont les blocs en mémoire. Elle
contient une entrée pour chaque bloc de l’espace virtuel du processus.
(bit de présence, adresse physique du début du bloc, ….).
2
Généralités (4)
• Il faut notamment :
La pagination pure
• La taille d’une page est fixe et égale à celle d’une case. Elle
varie entre 512 octets et 8 Ko.
3
Exemple
physique. 6
5
4
3
• Son espace d’adressage virtuel
2
est composé de 16 pages de 4 1
Ko. 0
Mémoire physique
4
• La mémoire physique est 3
structurée en 8 cases (cadres) de 2
1
4 Ko. 0
Espace d'
adressage virtuel
• La correspondance entre les pages et les cases est mémorisée dans une table
appelée table des pages. Le nombre d’entrées dans la table est égal au nombre
de pages virtuelles.
• La table des pages d’un processus doit être (en totalité ou en partie) en
mémoire centrale lors de l’exécution du processus. Elle est nécessaire pour la
conversion des adresses virtuelles en adresses physiques.
4
Conversion d’adresses virtuelles (2)
Exemple
• L’adresse virtuelle 8196 (0010 0000 0000 0100) est convertie en adresse
physique 24580 (1100 0000 000 0100).
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 Adresse virtuelle
0 010 1
1 001 1
2 110 1 110
3 000 1
100 1
011 1
000 0
000 0
000 0
Table des pages 101 1
000 0
111 1
000 0
Adresse physique
000 0
000 0
15 000 0
1Adresse
1 0physique
0 0 0 0 0 0 0 0 0 0 1 0 0
5
Conversion d’adresses virtuelles (4)
Le MMU
6
Conversion d’adresses virtuelles (6)
MMU avec mémoire associative
• Pour accélérer la translation d’adresse, le MMU est doté d’un composant, appelé mémoire
associative, composé d’un petit nombre d’entrées (8 à 32).
• Ce composant appelé aussi TLB (Translation Lookaside Buffers) contient des informations sur
les dernières pages référencées. Chaque entrée est composée de :
– Un bit de validité
– Un numéro de page virtuelle
– Un bit de modification (M)
– Deux bits de protection
– Un numéro de case
1 140 1 RW 31
1 20 0 RX 38
1 130 1 RW 29
1 129 1 RW 62
1 19 0 RX 50
1 21 0 RX 45
1 860 1 RW 14
1 861 1 RW 75
Génie Informatique Chapitre 9.13
Systèmes d’exploitation
École Polytechnique de Montréal
7
A
Début
UCT accède
Mémoire Oui
au TLB
Pleine?
Remplacement
Non
de page Page
dans TLB? Oui
Non
Accès à la table
de pages
8
Table des pages à plusieurs niveaux
• La taille de la table des pages peut être très grande : 220 entrées (plus d’1
million) pour un adressage virtuel sur 32 bits et des pages de 4 Ko.
• Par exemple, une table des pages à deux niveaux, pour un adressage sur
32 bits et des pages de 4 Ko, est composée 1025 tables de 1024 entrées. Il
est ainsi possible de charger que les tables nécessaires.
9
Table des pages inversée
• S’il n’y a pas de cases libres en mémoire, il doit retirer une page de la mémoire
pour la remplacer par celle demandée.
10
Algorithme aléatoire
• Facile
• Critère : remplacer la page qui sera référencée le plus tard possible dans le futur
• Irréalisable
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2 7 7 7
0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 0 0
1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1
Nombre d'accès: 20
Fautes de page: 9 (45%)
11
Algorithme FIFO
• Implémentation facile :
– pages résidentes en ordre FIFO –› on expulse la première
• Anomalie de Belady
– On peut rencontrer des exemples où en augmentant le nombre de
cadres on augmente le nombre de défauts de page au lieu de le
diminuer.
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 4 4 4 0 0 0 0 0 0 0 7 7 7
0 0 0 0 3 3 3 2 2 2 2 2 1 1 1 1 1 0 0
1 1 1 1 0 0 0 3 3 3 3 3 2 2 2 2 2 1
Nombre d'accès: 20
Fautes de page: 15 (75%)
12
Anomalie de Belady
Exemple 2 avec 3 cadres
7 0 1 2 7 0 3 7 0 1 2 3 7 0 1 2 3 2 4 3
7 7 7 2 2 2 3 3 3 3 3 3 7 7 7 2 2 2 2 2
0 0 0 7 7 7 7 7 1 1 1 1 0 0 0 3 3 3 3
1 1 1 0 0 0 0 0 2 2 2 2 1 1 1 1 4 4
Nombre d'accès: 20
Fautes de page: 15 (75%)
7 0 1 2 7 0 3 7 0 1 2 3 7 0 1 2 3 2 4 3
7 7 7 7 7 7 3 3 3 3 2 2 2 2 1 1 1 1 1 1
0 0 0 0 0 0 7 7 7 7 3 3 3 3 2 2 2 2 2
1 1 1 1 1 1 0 0 0 0 7 7 7 7 3 3 3 3
2 2 2 2 2 2 1 1 1 1 0 0 0 0 0 4 4
Nombre d'accès: 20
Fautes de page: 16 (80%)
13
Algorithme LRU
• Basé sur le principe de localité : une page a tendence à être réutilisée dans
un futur proche.
• Vieillissement :
– Un registre de n bits est associé à chaque page,
– Le bit le plus significatif est mis à 1 à chaque référence
– Régulièrement, on décale vers la droite les bits de ce registre,
– On choisit la page dont la valeur est la plus petite
14
Exemple 1 avec 3 cadres
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 4 4 4 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 3 3 3 3 3 3 0 0 0 0 0
1 1 1 3 3 3 2 2 2 2 2 2 2 2 2 7 7 7
Nombre d'accès: 20
Fautes de page: 12 (60%)
• Les pages en mémoire sont mémorisées dans une liste circulaire en forme
d’horloge.
• Lorsqu’un défaut de page se produit, les pages sont examinées, une par
une, en commançant par celle pointée par l’indicateur.
15
Génie Informatique Chapitre 9.31
Systèmes d’exploitation
École Polytechnique de Montréal
• Optimal
• LRU
• Horloge
• FIFO
• Aléatoire
16
Quel est le nombre de cases allouées à un processus ?
• Allouer un même nombre de cases mémoire à chaque processus. Par
exemple, si la mémoire totale fait 100 pages et qu’il y a cinq processus,
chaque processus recevra 20 pages.
17
Problème de l’écroulement du système (2)
18
Segmentation/pagination
Segmentation/pagination (2)
19
Cas d’UNIX
• Les premiers systèmes UNIX utilisaient la technique de va-et-vient.
• Avant l’exécution, un processus est entièrement chargé en mémoire. S’il n’y a pas
assez de place, un ou plusieurs processus sont transférés sur le disque.
• Toutes les quelques secondes, le permuteur (processus de pid 0) examine l’état des
processus transférés sur le disque pour voir si certains d’entre eux sont devenus
prêts.
• Si c’est le cas, il choisit celui qui est resté trop longtemps sur le disque pour le
transférer en mémoire centrale.
20
Cas d’UNIX (3)
• Chaque case est dotée d’un bit de référence R qui est mis à 1 à
chaque référence.
• Lorsque l’âge dépasse une valeur donnée, la page est placée dans
l’état disponible pour le déchargement.
21
Cas d’UNIX (6)
Cas de Linux
22
Cas de Linux (2)
• Si la première est trop grande, elle est, à son tour, divisée en deux et ainsi de suite...
Sinon, elle est allouée au demandeur.
• Toutes les zones ont des tailles qui sont des puissances de deux.
• Cet algorithme conduit vers une importante fragmentation interne. Les espaces non
utilisés (de la fragmentation interne) sont récupérés et gérés différemment.
• Lors de la libération de l’espace, les zones contiguës de même taille sont regroupées
en une seule zone.
23
Cas de Linux (4)
24
Windows
Windows (2)
25
Windows (3)
Hiérarchie de mémoire
Hiérarchie de mémoires
Registres
Cache
Mémoire principale
Mémoire de réserve
Mémoire de masse
26
Mémoire cache
• La mémoire cache est une mémoire à temps d’accès très court (10 ns). Elle
coûte plus chère. Le temps d’accès à la mémoire principale est 100 ns.
Exercice
Caractéristiques du système :
Mémoire physique de 64 mots de 8 bits
Taille d’une page = 4 mots
Table des pages à deux niveaux:
Adresse virtuelle sur 6 bits : 2 bits (niv. 1), 2 bits (niv. 2), 2 bits (décalage)
Une entrée dans la table des pages sur 8 bits:
- 2 bits de contrôle : bit de présence, bit de référence (10,11)
si bit de présence =0 et bit de référence =1, la page est dans la zone de « «swap »
- 6 bits pour l’adresse
Deux processus P1 et P2 sont en mémoire.
La table de premier niveau de P1 commence à 32
La table de premier niveau de P2 commence à 52.
Supposez que l’état courant de la mémoire est :
27
Génie Informatique Chapitre 9.55
Systèmes d’exploitation
École Polytechnique de Montréal
28
Génie Informatique Chapitre 9.57
Systèmes d’exploitation
École Polytechnique de Montréal
29