1. Luis Carlos Montés
Sebastián Arias
Jeisson Acosta
Héctor Blanco
Dilan Rincón
Brayan Peña
2. 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.
3. 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
4. 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.
5.
6. 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:
7. 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.
8.
9.
10. 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.
11. 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.
12. Tiene el siguiente prototipo: caddr_t
Mmap: (caddr_t direc, size_t longitud, int
protec,int indicador, int descriptor, off_t
despl)
13. 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.
14. 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);
15.
16. 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.
17. 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.
18. 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
19. 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