Mappage de fichiers

Le mappage de fichiers est l’association du contenu d’un fichier avec une partie de l’espace d’adressage virtuel d’un processus. Le système crée un objet de mappage de fichiers (également appelé objet de section) pour maintenir cette association. Une vue de fichier est la partie de l’espace d’adressage virtuel qu’un processus utilise pour accéder au contenu du fichier. Le mappage de fichiers permet au processus d’utiliser à la fois l’entrée et la sortie aléatoires (E/S) et les E/S séquentielles. Cela permet également au processus de fonctionner efficacement avec un fichier de données volumineux, tel qu’une base de données, sans avoir à mapper l’ensemble du fichier en mémoire. Plusieurs processus peuvent également utiliser des fichiers mappés en mémoire pour partager des données.

Les processus lisent à partir de et écrivent dans la vue de fichiers à l’aide de pointeurs, comme ils le feraient avec la mémoire allouée dynamiquement. L’utilisation du mappage de fichiers améliore l’efficacité, car le fichier réside sur le disque, mais l’affichage des fichiers réside dans la mémoire. Les processus peuvent également manipuler la vue de fichiers avec la fonction VirtualProtect .

L’illustration suivante montre la relation entre le fichier sur disque, un objet de mappage de fichiers et une vue de fichier.

relation entre le fichier sur le disque, un objet de mappage de fichiers et une vue de fichier.

Le fichier sur le disque peut être n’importe quel fichier que vous souhaitez mapper dans la mémoire, ou il peut s’agir du fichier de page système. L’objet de mappage de fichiers peut se composer de la totalité ou d’une partie du fichier. Il est sauvegardé par le fichier sur le disque. Cela signifie que lorsque le système échange des pages hors de l’objet de mappage de fichiers, toutes les modifications apportées à l’objet de mappage de fichiers sont écrites dans le fichier. Lorsque les pages de l’objet de mappage de fichiers sont retournées, elles sont restaurées à partir du fichier.

Une vue de fichiers peut se composer de la totalité ou d’une partie de l’objet de mappage de fichiers. Un processus manipule le fichier via les vues de fichier. Un processus peut créer plusieurs vues pour un objet de mappage de fichiers. Les vues de fichiers créées par chaque processus résident dans l’espace d’adressage virtuel de ce processus. Lorsque le processus a besoin de données d’une partie du fichier autre que celle de la vue de fichier active, il peut annuler le mappage de la vue de fichier active, puis créer une nouvelle vue de fichier.

Lorsque plusieurs processus utilisent le même objet de mappage de fichiers pour créer des vues pour un fichier local, les données sont cohérentes. Autrement dit, les vues contiennent des copies identiques du fichier sur le disque. Le fichier ne peut pas résider sur un ordinateur distant si vous souhaitez partager la mémoire entre plusieurs processus.

Pour plus d'informations, voir les rubriques suivantes :