next up previous contents
suivant: Mise en place de monter: La pagination précédent: Page   Table des matières

Traduction d'une adresse virtuelle en adresse physique

Quand un programme ou une tâche utilise une adresse virtuelle, le processeur traduit d'abord cette adresse en adresse linéaire, puis utilise le mécanisme de pagination pour traduire cette adresse linéaire en l'adresse physique correspondante.

Si cette page n'est pas mappé dans l'espace d'adressage de l'appelant, le processeur génère une exception de type Page Fault (exception 14). La valeur de l'adresse inaccessible est alors stocké dans le registre CR2. Un handler a été mis en place dans KoinKoin, renseignant sur la tâche ayant généré l'exception.

Pour minimiser le nombre de cycles bus requis pour réaliser cette traduction, les entrées de Page Directory et de Page table récemment accédées sont stockées dans le cache TLB (Translation Lookaside Buffers). Ainsi le cache TLB permet au processeur de traduire des adresses virtuelles directement.

La traduction de l'adresse linéaire en adresse physique en elle-même s'effectue de la manière suivante:

Voici un schéma résumant ces différentes étapes:
Image linear-trslt
Transcription d'une adresse virtuelle3.3


next up previous contents
suivant: Mise en place de monter: La pagination précédent: Page   Table des matières
nicolas 2006-07-30