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.