File-Backed et les sections sauvegardées par fichier de page
Toutes les sections de mémoire sont prises en charge (« sauvegardées ») par les fichiers de disque qui peuvent contenir, temporairement ou définitivement, les données à partager.
Lorsque vous créez une section, vous pouvez identifier un fichier de données spécifique dans lequel la section sera sauvegardée. Ces sections sont appelées sections sauvegardées par fichier.
Si vous n’identifiez pas un fichier de stockage, la section est sauvegardée par le fichier de pagination du système et la section est appelée section sauvegardée par un fichier de page . Les données des sections sauvegardées par fichier peuvent être écrites en permanence sur le disque. Les données des sections de fichier de page ne sont jamais écrites de manière permanente sur le disque.
Une section sauvegardée par un fichier reflète le contenu d’un fichier réel sur le disque ; en d’autres termes, il s’agit d’un fichier mappé en mémoire. Tout accès aux emplacements de mémoire au sein d’une section de sauvegarde de fichier donnée correspond aux accès aux emplacements dans le fichier associé.
Si un processus mappe la vue en lecture seule, toutes les données lues à partir de la vue sont lues en toute transparence à partir du fichier. De même, si le processus mappe la vue en lecture/écriture, toutes les données lues à partir de la vue ou écrites dans la vue sont lues en toute transparence à partir du fichier ou écrites dans le fichier. Dans les deux cas, la mémoire virtuelle de l’affichage n’utilise aucun espace dans les fichiers de page.
Une section sauvegardée par un fichier peut également être mappée en tant que copie sur écriture. Dans ce cas, les données de la vue sont lues à partir du fichier, mais toutes les données écrites dans la vue ne sont pas écrites dans le fichier ; au lieu de cela, elle est ignorée une fois que la vue finale a été démachée et que le dernier handle de la section est fermé.
Une section de fichier de page est sauvegardée par les fichiers de page au lieu de n’importe quel fichier explicite sur le disque. Toutes les modifications apportées à une section sauvegardée par un fichier de page sont automatiquement ignorées après la destruction de l’objet section. Les sections de fichier de page peuvent être utilisées comme segments de mémoire partagée entre deux processus.
Toute section, sauvegardée ou non par un fichier, peut être partagée entre deux processus. La même plage d’adresses mémoire physique est mappée à une plage d’adresses de mémoire virtuelle au sein de chaque processus (mais pas nécessairement à la même adresse virtuelle).