Mapeamento de Arquivos na Memória Virtual

Mapeamento de arquivos é o processo de mapear os setores do disco ocupados por um arquivo no espaço de memória virtual de um processo. Uma vez mapeado, sua aplicação acessa o arquivo como se ele estivesse completamente inserido na memória. Isso ocorre da seguinte forma:
À medida que a aplicação pede informação ao ponteiro para o arquivo mapeado, o Linux Kernel pagina as informações apropriadas e as retorna para a aplicação. O acesso às páginas usado para mapeamento é traduzido pelo Linux Kernel como uma operação sobre no byte correspondente do arquivo.
Mapeamento de arquivos é apropriado nas seguintes situações:

  • Quando existem grandes arquivos cujo conteúdo precisa ser acessado randomicamente uma ou mais vezes;
  • Quando existem pequenos arquivos cujo conteúdo precisa ser acessado na memória ao mesmo tempo, freqüentemente.
  • Quando é necessário colocar em cache somente partes específicas de um arquivo e não o arquivo inteiro ao mesmo tempo.

Este mapeamento de arquivo é feito através de mapas de memória, criados através da função mmap(). Este mapa é formado por diversas estruturas de dados com ponteiros, como mostrado na Figura 7 abaixo. Para descrição das estruturas, acesse:

//Endereço??

//Colocar figura??

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License