La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Simple OS La Pagination

Présentations similaires


Présentation au sujet: "Simple OS La Pagination"— Transcription de la présentation:

1 Simple OS La Pagination
Benoit LAMOTTE D’après l’article Conception d’OS : mise en place de la pagination, Linux magazine n°65 page 42, David Decotigny & Thomas Petazzoni.

2 Sommaire Principe de la memoire virtuel Architecture x86 Simple OS
Objectifs Traduction d’adresses Architecture x86 Petit rappel Adresse Linéaire Répertoire et table des pages Identity mapping Modification des tables de traduction d’adresses Simple OS Le mirroring Le fonctionnement : la mise en place de la pagination

3 Principe de la memoire virtuelle Objectifs
Avant : Programmer en fonction de la mémoire disponible Après : Mémoire disponible « infinie »

4 Principe de la memoire virtuelle Objectifs
Comment est-ce possible ? Utilisation des autres ressources. RAM utilisé pour stocker les données les plus utilisées.

5 Principe de la memoire virtuelle Traduction d’adresses
Prise en charge par la MMU RAM Bus de données Bus de données CPU MMU Adresses fictives Adresses RAM Exception MMU

6 Principe de la memoire virtuelle Traduction d’adresses
CPU MMU Adresse fictive Accès à une donnée Chargement d’un instruction Il existe une traduction en RAM? non oui Utilisation des données Exécution de l’instruction Bus de données Mémoire Accès à la RAM Exception OS Données/instruction sur le bus de données La donnée/instruction est stockée ailleurs ? oui non Transfert vers la RAM Signale accès invalide à l’application fautive Nouvelle traduction communiquée à la MMU

7 Architecture x86 Petit Rappel
MMU gère la segmentation et la pagination Adresse logique -> adresse linéaire par la segmentation Adresse linéaire -> adresse physique par la pagination de la MMU

8 Architecture x86 Adresse linéaire
Adresse Linéaire : 0xa811800c : 42*4MO + 24*4KO +12 31 22 21 12 11 Index PDE Index PTE Offset 24 12 Page physique 42 PT PD Offset 12 0x84 0x P=1 PTE n° 24 PDE n° 42 0x P=1 cr3 0x40100

9 Architecture x86 Répertoire et table des pages
Tableau de 4ko 1024 entrées (PDE & PTE) de 4 octets Structure identique : Bit : adresse en RAM Bit 2 : 0 si accessible qu’en mode superviseur Bit 1 : 0 accessible en lecture seule Bit 0 : bit « P » indique si présent en mémoire.

10 Architecture x86 Mise en place de la pagination
Configuration de toutes les tables de traduction d’adresses (PD et PT). Initialisation du registre cr3. Positionnement du Bit 31 du registre cr1 à 1.

11 Architecture x86 Identity Mapping
Configuration particulière des tables de traduction d’adresses. Adresses physique = adresse linéaire Il faut ensuite modifier la pagination.

12 Architecture x86 Modification des tables de traduction d’adresses
Simple en pratique mais attention au TLB Modification du cr3 Utilisation de l’instruction invlpg.

13 Simple OS Le mirroring Permet de rendre le répertoire de pages et les tables des pages accessibles PT 0 PT 1023 0x PT 1023 PT = PD 0x7fdff000 PT = PD PT 0 0x7fc00000

14 Simple OS Le mirroring On a fait PDE[idxMirror]=addrPD
Pour modifier le contenu de ième tables des pages il faut accéder à la page d’adresse linéaire : idxMirror*4Mo + ième*4Ko Pour modifier les entrer du répertoire des pages il faut accéder à la page d’adresse linéaire: idxMirror*4Mo + idxMirror*4Ko

15 Simple OS Le fonctionnement : la mise en place de la pagination
Mise en place de l’identity mapping Mise en place du Mirroring Activation de la pagination 0x3fc00000 0x 0x100000 0x200000 0xa0000 0x0 BIOS & VIDEO Kernel (initial) Desc. Page physique MIRRORING (4MO)

16 Questions ?


Télécharger ppt "Simple OS La Pagination"

Présentations similaires


Annonces Google