I/ La mémoire virtuelle

 

La mémoire virtuelle contient l’espace d’adressage d’un processus, c’est-à-dire l’ensemble des adresses accessibles par les threads de ce processus. Les systèmes de mémoire virtuelle offrent généralement soit une vue segmentée de la mémoire, soit une vue linéaire, c’est-à-dire un système d’adressage contigu. Windows NT met en œuvre une mémoire linéaire.

Un espace d’adressage virtuel est l’ensemble des adresses mémoires disponibles pour les threads d’un processus. Chaque processus dispose d’un espace d’adressage virtuel.

La taille de la mémoire physique ou mémoire centrale dépend du matériel ; celle de la mémoire virtuelle ne dépend que de la taille d’une adresse virtuelle. La dissociation de ces deux mémoires a amené les concepteurs de systèmes d’exploitation à inventer différents mécanismes de traduction des adresses virtuelles en adresses physiques.

Les concepteurs de Windows NT ont choisi la pagination à la demande comme mécanisme d’adressage réalisant la liaison entre l’espace d’adressage virtuel et l’espace d’adressage physique. La pagination, ou le découpage de la mémoire virtuelle en pages, permet un transfert des pages - mapping - en mémoire physique plus efficace que d’autres mécanismes comme la segmentation. En contrepartie, une protection des pages plus rigoureuse a du être implantée.

Les espaces d’adressage virtuel et physique sont divisés en blocs de 4 Ko, appelés pour le premier des pages - pages - et pour le second des cases - pages frame . Une page qui est chargée dans une case est appelée une page physique. Les pages physiques immédiatement disponibles  sont appelées les pages valides. Celles sur disque ou en mémoire centrale mais non immédiatement disponibles sont les pages invalides. 

Le système de mémoire virtuelle doit accomplir deux tâches principales :

    · La traduction - ou mapping - de l’adresse virtuelle en adresse physique,

   · La recopie d’une partie du contenu de la mémoire physique sur disque.

 C’est le rôle du Virtual Memory Manager (VMM) dans Windows NT.