- Archivo de mapa de memoria
-
Archivo de mapa de memoria
Un archivo de mapa de memoria o archivo de memoria mapeada (en inglés memory-mapped file) es, en informática, una porción de memoria virtual, que se asigna a una correlación directa byte a byte con una parte de un archivo o un recurso similiar. Este recurso es, normalmente, un archivo presente en el discu duro, o bien un objeto de memoria compartida u otro tipo de recurso al que el sistema operativo puede referenciarse por medio del descriptor de fichero. Una vez disponible esta correlación entre el archivo y el espacio de memoria permite a aplicaciones a contemplar la porción del mapa como si fuera memoria primaria.
Ventajas
La principal ventaja de un archivo de mapa de memoria es aumentar las prestaciones de entrada/salida, especialmente cuando se utilizan archivos de un tamaño reducido.[cita requerida] Acceder a archivos de mapa de memoria es más rápido que usar operaciones de lectura / escritura por dos motivos. En primer lugar, una llamada del sistema es varios órdenes de magnitud más lento que un simple cambio en la memoria local del programa; en segundo lugar, en la mayoría de sistemas operativos la región de memoria mapeada es, de hecho, el caché de página (caché de archivo), lo que implica que no se necesitan copias en el espacio de usuario.
Algunas operaciones de archivos de mapa de memoria a nivel de la aplicación también presentan ventajas de prestaciones con respecto a sus variante de archivos físicos. Las aplicaciones pueden acceder y actualizar los datos en el archivo directamente, en lugar de buscar desde el comienzo del archivo o rescribir el contenido a editar en un lugar transitorio. Dado que el archivo de memoria de mapa se maneja de forma interna en páginas, el acceso lineal de archivos (como por ejemplo en el caso de almacenamiento de datos en el modelo de tabla o archivos de configuración) requiere acceso de disco sólo cuando se cruza una nueva frontera, y puede escribir secciones mayores del archivo en el disco en una única operación.
Un posible beneficio de archivos de memoria de mapa es la "carga vaga", utilizando por tanto pequeñas cantidades de RAM incluso para un archivo de tamaño grande. Tratar de cargar el contenido completo de un archivo que es significativamente más grande que la cantidad de memoria disponible puede provocar una hiperpaginación severa cuando el sistema operativo lee desde el disco en la memoria y, simultáneamente, páginas de memoria de vuelta al disco. El mapeo de la memoria permite, no sólo evitar completamente el archivo de página, sino que el sistema únicamente requiere cargar las secciones del tamaño de una página de menor tamaño cuando se editan los datos, un concepto similar a la paginación por demanda utilizado en programas.
El proceso de mapeo de memoria lo ejecuta el administrador virtual de memoria, el mismo subsistema responsable de la paginación de memoria. Los archivos de memoria mapeada cargan en la memoria una paginación completa de una vez. El tamaño de la paginación es determinado por el sistema opertivo para conseguir la máxima prestación. Dado que la administración de archivos de páginas es uno de los elementos más críticos de un sistema de memoria virtual, cargar secciones del tamaño de una página en una memoria física es normalmente una función de sistema altamente optimizada.[1]
Referencias
- Todo o parte de este artículo fue creado a partir de la traducción del artículo Memory-mapped file de la Wikipedia en inglés, concretamente de esta versión, bajo licencia Creative Commons Compartir Igual 3.0. y GFDL.
- ↑ http://msdn2.microsoft.com/en-us/library/ms810613.aspx, "What Do Memory-Mapped Files Have to Offer?".
Enlaces externos
Categoría: Memorias informáticas
Wikimedia foundation. 2010.