2. ¿QUÉ ES ?
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.
Ventajas: Desventajas:
• Se trata por tanto de una forma • El espacio de direcciones de
alternativa de acceso a archivos,
frente a las llamadas read/write.
ciertas arquitecturas: un
• Menos llamadas al sistema lo que
archivo de tamaño mayor
se traduce en una notable mejora que el espacio
de los tiempos de acceso. direccionales solo puede
• Se evitan copias intermedias de la proyectarse en memoria por
información ya que el S.O. trozos, lo cual complica su
transfiere directamente la
información entre la región de lectura.
memoria y el archivo
3. SERVICIO DE GESTIÓN DE MEMORIA
• El sistema de gestión de memoria ofrece
servicios directamente a las aplicaciones
de carácter interno.
• Los principales servicios están
relacionados con la proyección de
archivos. Existen dos servicios:
4. ARCHIVO
• PROYECTAR: 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: Eliminar una proyección previa
o parte de la misma.
6. SERVICIO DE MEMORIA POSIX
• 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.
7. 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.
8. 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
9. LOS ARCHIVOS PROYECTADOS EN MEMORIA
SE UTILIZAN EN TRES TAREAS
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.
10. LEER LOS ARCHIVOS CONTENIDOS EN LOS
ARCHIVOS .EXE
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.
11. REALIZAR OPERACIONES DE E/S AL
DISCO
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
12. CREAR ZONAS DE MEMORIA
COMPARTIDA
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