Asignación de archivos

La asignación de archivos es la asociación del contenido de un archivo con una parte del espacio de direcciones virtuales de un proceso. El sistema crea un objeto de asignación de archivos (también conocido como objeto de sección) para mantener esta asociación. Una vista de archivo es la parte del espacio de direcciones virtuales que un proceso usa para acceder al contenido del archivo. La asignación de archivos permite al proceso usar E/S aleatorias de entrada y salida (E/S) y E/S secuenciales. También permite que el proceso funcione de forma eficaz con un archivo de datos grande, como una base de datos, sin tener que asignar todo el archivo a la memoria. Varios procesos también pueden usar archivos asignados a memoria para compartir datos.

Procesa la lectura y escritura en la vista de archivos mediante punteros, igual que lo harían con memoria asignada dinámicamente. El uso de la asignación de archivos mejora la eficacia porque el archivo reside en el disco, pero la vista de archivo reside en la memoria. Los procesos también pueden manipular la vista de archivos con la función VirtualProtect .

En la ilustración siguiente se muestra la relación entre el archivo en disco, un objeto de asignación de archivos y una vista de archivo.

relación entre el archivo en disco, un objeto de asignación de archivos y una vista de archivo.

El archivo en disco puede ser cualquier archivo que quiera asignar a la memoria o puede ser el archivo de página del sistema. El objeto de asignación de archivos puede constar de todo o solo parte del archivo. Está respaldado por el archivo en el disco. Esto significa que cuando el sistema intercambia páginas del objeto de asignación de archivos, los cambios realizados en el objeto de asignación de archivos se escriben en el archivo. Cuando las páginas del objeto de asignación de archivos se intercambian de nuevo, se restauran desde el archivo.

Una vista de archivo puede constar de todo o solo parte del objeto de asignación de archivos. Un proceso manipula el archivo a través de las vistas de archivo. Un proceso puede crear varias vistas para un objeto de asignación de archivos. Las vistas de archivo creadas por cada proceso residen en el espacio de direcciones virtuales de ese proceso. Cuando el proceso necesita datos de una parte del archivo distinto de lo que se encuentra en la vista de archivo actual, puede desasignación de la vista de archivo actual y, a continuación, crear una nueva vista de archivo.

Cuando varios procesos usan el mismo objeto de asignación de archivos para crear vistas para un archivo local, los datos son coherentes. Es decir, las vistas contienen copias idénticas del archivo en el disco. El archivo no puede residir en un equipo remoto si desea compartir memoria entre varios procesos.

Para obtener más información, vea los temas siguientes: