Hernandez_Hernandez_Practica web de la sesion 12.pptx
Artchivos Proyectados en Memoria
1. Archivos Proyectados en
Memoria
Un archivo proyectado en memoria es, una porción de
memoria virtual en la que se establece una correlación
directa byte a byte con una parte de un archivo o un
recurso similar. Este recurso es, normalmente, un
archivo presente en el disco duro, o bien un objeto de
memoria compartida u otro tipo de recurso al que el
sistema operativo puede referirse por medio del
descriptor de archivo. Una vez disponible esta
correlación entre el archivo y el espacio de memoria,
las aplicaciones pueden gestionar el acceso a ese
recurso exactamente igual que si se tratara de
memoria primaria.
2. Ventajas
La principal ventaja de un archivo proyectado en memoria
es aumentar las prestaciones de lectura y escritura,
especialmente cuando se utilizan archivos de un tamaño
reducido.Al 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 lenta 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 proyectada es, de hecho, la caché de
página (caché de archivo), lo que implica que no se
necesitan copias en el espacio de usuario.
3. Un posible beneficio de los archivos proyectados en
memoria 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,
escribe páginas de memoria al disco. La proyección en
memoria permite no sólo evitar completamente el archivo
de página, sino también que el sistema únicamente
requiera cargar secciones de paginación de menor
tamaño cuando se editan los datos, un concepto similar
a la paginación por demanda utilizada en los programas.
4. El proceso de proyección en memoria lo ejecuta el
administrador virtual de memoria, el mismo subsistema
responsable de la paginación de memoria. Los archivos
proyectados en memoria cargan en la memoria una
paginación completa de una vez. El tamaño de la
paginación es determinado por el sistema operativo para
conseguir un rendimiento óptimo. 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
memoria física es normalmente una función de sistema
altamente optimizada.1
5. Para que se utilizan?
La razón principal para utilizar archivos proyectados en
memoria para la lectura y escritura es la mejora en
rendimiento, aunque pueden darse situaciones de
compromiso. El planteamiento convencional de lectura y
escritura de datos es costoso debido a los excesos de
llamadas a funciones del sistema y las operaciones de
copia de memoria. La estrategia de proyección en
memoria tiene su punto débil en la aparición de fallos de
página menores, que pueden ocurrir cuando un bloque
de datos se ha cargado en la caché de paginación, pero
aún no está cargado en el espacio de memoria virtual del
proceso.
6. Otro uso típico de los archivos proyectados en memoria consiste en
hacer que procesos diferentes puedan compartir un área de
memoria común. En los sistemas operativos modernos de modo
protegido, cada proceso no puede acceder al espacio de memoria
asignado a otros procesos. Hay varias estrategias disponibles para
compartir memoria con seguridad y el uso de archivos proyectados
en memoria es una de ellas. Para ello, dos procesos (que pueden
ser dos programas diferentes o dos instancias de un mismo
programa), acceden a un archivo conocido por ambos que cada
uno de los procesos proyecta sobre su respectivo espacio de
memoria, de modo que cada proceso puede ir leyendo en su
espacio de memoria las modificaciones que haya llevado a cabo el
otro proceso. Por ejemplo, el sistema operativo Microsoft Windows
proporciona un mecanismo para que las aplicaciones proyecten en
memoria un segmento compartido del archivo de paginación del
sistema, con lo que varios programas pueden compartir datos
accediendo a ese segmento.
7. Tal vez la aplicación más habitual de los archivos
proyectados en memoria sea el cargador de procesos de
la mayor parte de los sistemas operativos modernos,
como Microsoft Windows y los sistemas de tipo Unix. Al
iniciarse un proceso, el sistema operativo proyecta sobre
la memoria el contenido del archivo ejecutable, junto con
los demás módulos o bibliotecas dinámicas de los que
dependa para su ejecución. La mayoría de los sistemas
de proyección en memoria utilizan una técnica
denominada paginación por demanda, mediante la cual
el archivo se va cargando en la memoria física a trozos,
de página en página, y solo cada vez que se requiere el
acceso a una página concreta.3 En el caso concreto de
los archivos ejecutables, esto permite al sistema
operativo cargar de manera selectiva solamente aquellas
porciones de la imagen del proceso que se van a
ejecutar.