Que sont les fichiers mappés en mémoire? décrire avec un exemple simple?

-1

Je ne comprends pas vraiment ce que sont les fichiers mappés en mémoire, ni pourquoi nous les utilisons, ni dans quelle partie du système d’exploitation ils s’intègrent. Veuillez expliquer avec un exemple simple.

Merci

Ahtisham Chishti
la source
Quelles recherches avez - vous fait, Wikipedia décrit clairement, par exemple: en.wikipedia.org/wiki/Memory-mapped_file
DrMoishe Pippik

Réponses:

2

"Memory-mapped" n'est pas un type de fichier, c'est un moyen d'y accéder. Le même type de fichier peut être lu normalement par le programme A, mais mappé en mémoire par le programme B.

Normalement (dans la plupart des langages de programmation), chaque accès aux fichiers nécessite un appel séparé:

  • vous commencez par openle fichier (en obtenant un "descripteur de fichier"),
  • seek à la position souhaitée (si nécessaire),
  • read une certaine quantité d'octets (qui les copie du fichier dans la RAM),
  • ... seek, read, read, seek, write, read, et ainsi de suite.

Ainsi, si vous travaillez avec, par exemple, un fichier de base de données, de nombreux appels système sont impliqués, sans parler de toutes les données copiées. (Il y a généralement des appels de convenance chercher + lire et chercher + écrire, par exemple preadet pwritesur Linux, mais ils n'aident pas beaucoup.)

Le mappage de la mémoire, quant à lui, permet au programme d'accéder à un fichier comme s'il s'agissait de RAM . Une fois openle fichier mmapcréé , un programme n'a besoin que d'un appel pour configurer une zone mémoire, après quoi il peut accéder immédiatement au contenu du fichier via cette "fenêtre" - en utilisant une variable lue à partir du fichier, en modifiant une variable écrite dans le fichier.

Cela peut grandement simplifier le code et accélérer le chargement et la sauvegarde des fichiers, car le programme sait que les données seront là, mais le système d'exploitation ne doit pas réellement les charger avant de les utiliser.

Grawity
la source
S'il