1
Systèmes d’exploitation Génie Informatique
École Polytechnique de Montréal
Chapitre 9.1
Mémoire virtuelle
• 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 d’UNIX et de Linux
Cas de Windows
Systèmes d’exploitation Génie Informatique
École Polytechnique de Montréal
Chapitre 9.2
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.
Il y a deux types d’adresses dans les systèmes implantant la mémoire
virtuelle :
Celles référencées par les processus (adresses virtuelles ou logiques),
Celles de la mémoire physique (adresses physiques ou réelles).
L’espace d’adressage virtuel d’un processus =
{ adresses virtuelles que le processus peut référencer}
Sa taille maximale dépend de l’organisation de l’espace virtuel (>> à celle
de la mémoire physique).
2
Systèmes d’exploitation Génie Informatique
École Polytechnique de Montréal
Chapitre 9.3
Généralités (2)
D’une manière générale, l’espace d’adressage est structuré en blocs de :
mêmes tailles (pages-> pagination) ou
tailles différentes (segments->segmentation).
Les deux organisations peuvent être combinées : segment = {pages}
Le format de l’adresse virtuelle est :
(numéro de page, déplacement dans la page) pour la pagination;
(numéro de segment, déplacement dans le segment) pour la segmentation;
(numéro de segment, numéro de page, déplacement dans la page) pour la
segmentation/pagination.
Systèmes d’exploitation Génie Informatique
École Polytechnique de Montréal
Chapitre 9.4
Généralités (3)
Exemple :
supposons que l’adresse virtuelle (b, d) est sur 32 bits, n bits pour d :
Le nombre maximal de blocs que peut contenir l’espace virtuel : 2
32-n
La taille maximale d’un bloc : 2
n
n => fragmentation interne et table des blocs
n => fragmentation interne et table des blocs
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, ….).
L’adresse de la table des blocs fait partie du contexte du processus à sauver ou
à restaurer lors du changement de contexte (un registre).
3
Systèmes d’exploitation Génie Informatique
École Polytechnique de Montréal
Chapitre 9.5
Généralités (4)
Il faut notamment :
Un mécanisme de conversion d’adresses virtuelles rapide.
Une
politique de remplacement de blocs
=> moins de défaut de blocs
.
Systèmes d’exploitation Génie Informatique
École Polytechnique de Montréal
Chapitre 9.6
La pagination pure
La mémoire virtuelle et la mémoire physique sont structurées
en unités d’allocations (pages pour la mémoire virtuelle et
cases pour la mémoire physique).
La taille d’une page est fixe et égale à celle d’une case. Elle
varie entre 512 octets et 8 Ko.
Il n’y a pas de fragmentation externe car toutes les pages
sont de même taille.
Par contre, il peut y avoir une fragmentation interne si la
dernière page de l’espace d’adressage logique n’est pas
pleine.
4
Systèmes d’exploitation Génie Informatique
École Polytechnique de Montréal
Chapitre 9.7
Exemple
Soit un programme de 64 Ko sur
une machine 32 Ko de mémoire
physique.
Son espace d’adressage virtuel
est composé de 16 pages de 4
Ko.
La mémoire physique est
structurée en 8 cases (cadres) de
4 Ko.
Espace d'adressage virtuel
Mémoire physique
0
1
2
3
0
1
4
2
3
6
5
4
7
Systèmes d’exploitation Génie Informatique
École Polytechnique de Montréal
Chapitre 9.8
Conversion d’adresses virtuelles
Adresse virtuelle = (numéro de page, déplacement dans la page).
Les adresses virtuelles référencées par l’instruction en cours d’exécution doivent
être converties en adresses physiques.
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.
Chaque entrée de la table des pages est composée de plusieurs champs,
notamment :
Le bit de présence
Le bit de référence (R)
Les bits de protection
Le bit de modification (M)
Le numéro de case correspondant à la page
son emplacement sur disque
5
Systèmes d’exploitation Génie Informatique
École Polytechnique de Montréal
Chapitre 9.9
Conversion d’adresses virtuelles (2)
Exemple
Supposons que l’adresse virtuelle est sur 16 bits :
(numéro de page (4 bits), déplacement dans la page (12 bits)).
La conversion est réalisée en examinant l’entrée dans la table des
pages correspondant au numéro de page.
Si le bit de présence est à 0, la page n’est pas en mémoire, il faut
alors lancer son chargement en mémoire.
Sinon, on détermine l’adresse physique en recopiant dans :
les 3 bits de poids le plus fort le numéro de case (110) correspondant
au numéro de page (0010) et
les 12 bits de poids le plus faible, les 12 bits de poids le plus faible de
l’adresse virtuelle.
Systèmes d’exploitation Génie Informatique
École Polytechnique de Montréal
Chapitre 9.10
Conversion d’adresses virtuelles (3)
Exemple (suite)
L’adresse virtuelle 8196 (0010 0000 0000 0100) est convertie en adresse
physique 24580 (1100 0000 000 0100).
Table des pages
Adresse physique
Adresse virtuelle
0
1
2
3
15 Adresse physique
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
010 1
001 1
110 1
000 1
100 1
011 1
000 0
000 0
000 0
101 1
000 0
111 1
000 0
000 0
000 0
000 0
1 1 0
1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0
1 / 29 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !