Title: Simple%20OS%20La%20Pagination
1Simple OSLa Pagination
Daprès larticle Conception dOS mise en place
de la pagination,Linux magazine n65 page
42,David Decotigny Thomas Petazzoni.
2Sommaire
- Principe de la memoire virtuel
- Objectifs
- Traduction dadresses
- Architecture x86
- Petit rappel
- Adresse Linéaire
- Répertoire et table des pages
- Identity mapping
- Modification des tables de traduction dadresses
- Simple OS
- Le mirroring
- Le fonctionnement la mise en place de la
pagination
3Principe de la memoire virtuelleObjectifs
- Avant
- Programmer en fonction de la mémoire disponible
- Après
- Mémoire disponible  infinieÂ
4Principe de la memoire virtuelleObjectifs
- Comment est-ce possible ?
- Utilisation des autres ressources.
- RAM utilisé pour stocker les données les plus
utilisées.
5Principe de la memoire virtuelleTraduction
dadresses
- Prise en charge par la MMU
RAM
Bus de données
Bus de données
CPU
MMU
Adresses fictives
Adresses RAM
Exception MMU
6Principe de la memoire virtuelleTraduction
dadresses
MMU
CPU
Adresse fictive
Accès à une donnéeChargement dun instruction
Il existe une traduction en RAM?
non
oui
Utilisation des donnéesExécution de linstruction
Bus de donnéesMémoire
Accès à la RAM
Exception
OS
Données/instructionsur le bus de données
La donnée/instructionest stockée ailleurs ?
oui
non
Transfert versla RAM
Signale accès invalide à lapplication fautive
Nouvelle traduction communiquée à la MMU
7Architecture x86Petit Rappel
- MMU gère la segmentation et la pagination
- Adresse logique -gt adresse linéaire par la
segmentation - Adresse linéaire -gt adresse physique par la
pagination de la MMU
8Architecture x86Adresse linéaire
Adresse Linéaire 0xa811800c 424MO 244KO
12
0
31
21
12
11
22
Index PDE
Index PTE
Offset
24
12
Page physique
42
PT
PD
0x84
Offset 12
0x123000 P1
PTE n 24
0x504000 P1
PDE n 42
cr3
0x40100
9Architecture x86Répertoire et table des pages
- Tableau de 4ko
- 1024 entrées (PDE PTE) de 4 octets
- Structure identique
- Bit 31-12 adresse en RAM
- Bit 2 0 si accessible quen mode superviseur
- Bit 1 0 accessible en lecture seule
- Bit 0 bit  P indique si présent en mémoire.
10Architecture x86Mise en place de la pagination
- Configuration de toutes les tables de traduction
dadresses (PD et PT). - Initialisation du registre cr3.
- Positionnement du Bit 31 du registre cr1 Ã 1.
11Architecture x86Identity Mapping
- Configuration particulière des tables de
traduction dadresses. - Adresses physique adresse linéaire
- Il faut ensuite modifier la pagination.
12Architecture x86Modification des tables de
traduction dadresses
- Simple en pratique mais attention au TLB
- Modification du cr3
- Utilisation de linstruction invlpg.
13Simple OSLe mirroring
- Permet de rendre le répertoire de pages et les
tables des pages accessibles
PT 0
PT 1023
0x80000000
PT 1023
PT 511 PD
0x7fdff000
PT 511 PD
PT 0
0x7fc00000
14Simple OSLe mirroring
- On a fait PDEidxMirroraddrPD
- Pour modifier le contenu de ième tables des pages
il faut accéder à la page dadresse linéaire
idxMirror4Mo ième4Ko - Pour modifier les entrer du répertoire des pages
il faut accéder à la page dadresse linéaire - idxMirror4Mo idxMirror4Ko
15Simple OSLe fonctionnement la mise en place de
la pagination
- Mise en place de lidentity mapping
- Mise en place du Mirroring
- Activation de la pagination
0x3fc00000
0x40000000
0x100000
0x200000
0xa0000
0x0
BIOS VIDEO
Kernel(initial)
Desc. Pagephysique
MIRRORING(4MO)
16Questions ?