Les fichiers de mappage mémoire utilisent la mémoire virtuelle pour associer les fichiers à l’espace d’adressage du processus, après quoi le processus manipule le fichier tout comme l’adresse dans l’espace de processus, comme en utilisant memcpy et d’autres fonctions de fonctionnement mémoire en langage C. Cette méthode peut être bien utilisée dans des situations où un fichier ou un fichier volumineux doit être traité fréquemment, et où l’efficacité du traitement des IES est supérieure à celle des IO ordinaires La mémoire partagée est un cas particulier de fichiers mappés en mémoire, qui mappent un morceau de mémoire au lieu d’un fichier sur disque. Le sujet de la mémoire partagée est Processus, et le système d’exploitation attribue par défaut un espace mémoire à chaque processus, chaque processus n’étant autorisé à accéder qu’à une partie de mémoire qui lui est allouée par le système d’exploitation, mais pas aux autres processus. Et parfois, il faut accéder au même morceau de mémoire entre différents processus, que faut-il faire ? Le système d’exploitation fournit une API pour créer un accès à la mémoire partagée, et les processus qui doivent partager la mémoire peuvent accéder à la mémoire partagée par plusieurs processus via cet ensemble d’API définies, chaque processus accédant à cette mémoire comme s’il accédait à un fichier sur un disque dur. Le .Net 4.0 introduit le System.IO. L’espace de noms MemoryMappedFiles, une classe qui encapsule les API liées à la mémoire partagée de Windows, facilitant ainsi l’utilisation des fichiers de mappe mémoire par les programmeurs .Net. Utilisez la mémoire partagée en C#. Le code suivant pour App1 permet à l’utilisateur d’entrer une ligne de texte dans la mémoire partagée ; App2 rafraîchit constamment la console et affiche le dernier contenu mémoire partagé ; App3 implémente les mêmes fonctions qu’App2, mais la méthode de lecture est différente.
Deux méthodes ont été utilisées pour lire les données. Comme la communication entre processus était rarement utilisée auparavant, cette méthode n’est qu’une compréhension préliminaire. Le programme est trop rudimentaire, et il y a beaucoup de choses qui ne sont pas jugées. Par exemple, comment créer un souvenir partagé, comment le récupérer et le supprimer, etc.
|