Exposiciónarch proy mem

19
Luis Carlos Montés Sebastián Arias Jeisson Acosta Héctor Blanco Dilan Rincón Brayan Peña

Transcript of Exposiciónarch proy mem

Luis Carlos Montés

Sebastián AriasJeisson AcostaHéctor BlancoDilan RincónBrayan Peña

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.

Se trata por tanto de una forma alternativa de acceso a archivos, frente a las llamadas read/write. De esta forma se producen:

Menos llamadas al sistema lo que se traduce en una notable mejora de los tiempos de acceso.

Se evitan copias intermedias de la información ya que el S.O. transfiere directamente la información entre la región de memoria y el archivo.

Se facilita la programación, ya que una vez proyectado se accede al archivo como si fuera una estructura de datos en memoria

VENTAJAS

El espacio de direcciones de ciertas arquitecturas: un archivo de tamaño mayor que el espacio direccionales solo puede proyectarse en memoria por trozos, lo cual complica su lectura.

DESVENTAJAS

Las labores que lleva a cabo el sistema de gestión de memoria son más bien de carácter interno. Debido a ello, este módulo apenas ofrece directamente servicios a las aplicaciones. Los principales servicios están relacionados con la proyección de archivos. Existen dos servicios:

PROYECTAR UN ARCHIVO: Permite incluir en el mapa de memoria de un proceso un archivo o parte del mismo. Con esta operación, se crea una región asociada al objeto de memoria almacenado en el archivo. Normalmente, se pueden especificar algunas propiedades de esta nueva región. Por ejemplo, el tipo de protección o si la región es privada o compartida.

DESPROYECTAR UN ARCHIVO: Eliminar una proyección previa o parte de la misma.

PROYECCION DE ARCHIVOSEN MEMORIA

El estándar POSIX (Portable Operating

System Interface; la X viene de  UNIX como seña de identidad de la API) define un relativamente pequeño conjunto de servicios de gestión de memoria. Los servicios de gestión de memoria más frecuentemente usados son los que corresponden con la proyección y des proyección de archivos (mmap, munmap). Existen dos servicios.

MMAP: (Las páginas del mapa de la memoria)  Es un método de archivo asignado en memoria E / O. Como es natural, implementa la paginación por demanda , ya que inicialmente el contenido del archivo no se lee desde el disco por completo y no usar la memoria RAM física en absoluto.

SERVIDOR MMAP

Tiene el siguiente prototipo: caddr_t Mmap: (caddr_t direc, size_t longitud, int protec,int indicador, int descriptor, off_t despl)

MUNMAP: (desasignar páginas de la memoria) La función de munmap  elimina todas las asignaciones para las páginas enteras que contienen alguna parte del espacio de direcciones del proceso a partir de dir y continua para len bytes. Otras referencias a estos resultado páginas en la generación de una señal SIGSEGV al proceso. Si no hay asignaciones en el rango de direcciones especificado, entonces munmap () no tiene ningún efecto.

SERVIDOR MUNMAP

Cuando se quiere eliminar una proyección previa o parte de la misma, se usa el servicio Munmap cuyo prototipo es: Int munmap (caddr_t direc, size_t longitud);

1. Leer los archivos contenidos en los archivos .EXE y .DLL cuando se ejecuta un proceso.

2. Realizar operaciones de E/S a disco sin buffers de memoria intermedios.

3. Crear zonas de memoria compartida, para intercambiar datos entre procesos.

LOS ARCHIVOS PROYECTADOS EN MEMORIA SE UTILIZAN EN 3 TAREAS

En el tiempo de carga, ya que realmente no se realiza toda la carga del código ejecutable al arrancar, sino que se va haciendo conforme se necesita. Si el contenido de una página nunca llega a ejecutarse, esa página nunca se cargará en RAM, sino que permanecerá en el propio archivo ejecutable.

Leer los archivos contenidos en los archivos .EXE

Esta característica nos permite manipular cualquier estructura en memoria en realidad lo que estamos haciendo es manipular datos en disco. El propio sistema es el encargado de llevar a RAM las páginas que leemos, y volcar a disco las páginas que escribimos.• Al arrancar• Manipular• Al cerrar la aplicación

Realizar operaciones de E/S a disco

La plataforma Win32 pone muy difícil que los datos puedan ser compartidos entre distintos procesos, dado el carácter privado de su espacio de memoria y el nivel de seguridad que se busca a la hora de desarrollar un sistema operativo robusto.• Proyecciones nombradas• Herencia de descriptores

Crear zonas de memoria compartida