Você está na página 1de 173

AT3148 Ampliacin de Sistemas Operativos

A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Gestin de Memoria

Transparencias basadas en el libro de referencia: Sistemas operativos. Una visin aplicada. J. Carretero, F.Garca, P. de Miguel, F. P rez. McGraw Hill 2001 Curso 2005-2006

AT3148 Ampliacin de Sistemas Operativos A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05) Contenido

Objetivos del sistema de gestin de memoria. Modelo de memoria de un proceso. Esquemas de memoria basados en asignacin contigua.

Memoria virtual. Archivos proyectados en memoria.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Objetivos del Gestor de Memoria

S.O. multiplexa recursos entre procesos.


Cada proceso cree que tiene una mquina para l solo. Gestin de procesos: Reparto del procesador. Gestin de memoria: Reparto de memoria.

Objetivos:
Ofrecer a cada proceso un espacio lgico propio. Proporcionar proteccin entre procesos. Permitir que procesos compartan memoria. Dar soporte a las regiones del proceso. Maximizar el grado de multiprogramacin. Proporcionar a los procesos mapas de memoria grandes.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Espacios lgicos independientes

No se conoce posicin de memoria donde un programa ejecutar. Cdigo en ejecutable genera referencias entre 0 y N.

Ejemplo: Programa que copia un vector.


Vector destino a partir de direccin 2000. Tamao del vector en direccin 1500 . Vector origen a partir de direccin 1000.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Ejecucin en S.O. monoprogramado


S.O. En direcciones altas. Programa se carga en direccin 0. Se le pasa el control al programa

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Reubicacin

Necesaria en S.O. con multiprogramacin:


Reubicar: Traducir direcciones de memoria lgicas a fsicas.

Direcciones lgicas:Direcciones de memoria generadas por el programa. Direcciones fsicas: Direcciones de memoria principal asignadas al proceso. Traduccin(pid, direccin lgica) --> direccin fsica. Espacios lgicos (mapas) independientes por proceso. Reubicacin puede ser hardware o software.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Reubicacin hardware
Hardware (MMU) encargado de la traduccin. El sistema operativo:
Almacena la funcin de traduccin para cada proceso. Indica al hardware qu funcin usar para un proceso.

El programa se carga en memoria sin modificar.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Reubicacin software
Traduccin de direcciones durante la carga del programa. El programa en memoria es distinto que el ejecutable. Desventajas:
No asegura proteccin. No permite mover programa en tiempo de ejecucin (ser necesario en memoria virtual).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Proteccin

Monoprogramacin: Proteccin del S.O. Multiprogramacin: Adems proteccin entre procesos. Traduccin debe crear espacios disjuntos. Necesario validar todas las direcciones que genera el programa:
Deteccin realizada por el hardware del procesador. Tratamiento por el sistema operativo.

Sistemas con mapa E/S y memoria comn:


Traduccin permite impedir que procesos accedan directamente a dispositivos de E/S.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Compartimiento de memoria

Direcciones lgicas de dos o ms procesos se corresponden con una misma direccin fsica. Bajo control del S.O. Beneficios:
Procesos ejecutando mismo programa comparten cdigo. Mecanismo de comunicacin entre procesos muy rpido.

Requiere asignacin

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Problemas al compartir memoria


Referencias de memoria dentro de la propia zona compartida. Ejemplo de cdigo:
Instruccin de bifurcacin en zona compartida.

Ejemplo con datos:


Lista con punteros en la zona compartida.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Soporte de Regiones

Mapa de proceso no homogneo.


Conjunto de regiones con distintas caractersticas. Ejemplo: regin de cdigo no es modificable.

Mapa de proceso dinmico.


Regiones cambian de tamao (por ejemplo: pila). Se crean y destruyen regiones. Existen zonas sin asignar (huecos).

Gestor de memoria debe proporcionar estas caractersticas


Detectar accesos no permitidos a una regin. Detectar acceso a huecos Evitar reserva de espacio para huecos.

S.O. guarda tabla de regiones por proceso.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Maximizar rendimiento

Reparto de memoria maximizando grado de multiprogramacin. Poltica de asignacin. Desperdicia memoria por restos inutilizables (fragmentacin) y tablas necesarias para el gestor. Compromiso: paginacin. Uso de memoria virtual para aumentar el grado de multiprogramacin.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Mapas de memoria grandes para procesos

Requisitos de memoria cada vez mayores segn aparecen nuevas aplicaciones. Memoria virtual aporta la solucin. Antes overlays:
Programa dividido en fases que se ejecutaban sucesivamente. En cada momento una sola fase residente en memoria. Cada fase realiza su labor y carga la siguiente. No es transparente: Labor realizada por el programador.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Contenido
Objetivos del sistema de gestin de memoria. Modelo de memoria de un proceso. Esquemas de memoria basados en asignacin contigua. Memoria virtual. Archivos proyectados en memoria.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Fases en generacin de ejecutable

Aplicacin: conjunto de mdulos en lenguaje de alto nivel. Procesado en dos fases: Compilacin y montaje. Compilacin: Resuelve referencias dentro de cada mdulo fuente.
Genera mdulo objeto.

Montaje (o enlace):
Resuelve referencias entre mdulos objeto. Resuelve referencias a smbolos de referencia. Genera ejecutable incluyendo biblioteca

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Bibliotecas de objetos

Biblioteca: Coleccin de mdulos objeto relacionados. Bibliotecas del sistema o creadas por el usuario. Bibliotecas Estticas:
Montaje: Enlaza mdulos objeto del programa y las bibliotecas. Ejecutable autocontenido.

Desventajas del montaje esttico:


Ejecutables grandes. Cdigo de funcin de biblioteca repetido en muchos ejecutables. Mltiples copias en memoria de funcin de biblioteca. Actualizacin de biblioteca implica volver a montar.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Bibliotecas dinmicas

Carga y montaje de la biblioteca en tiempo de ejecucin. Ejecutable contiene:


Nombre de la biblioteca. Rutina de carga y montaje en tiempo de ejecucin.

Primera referencia a smbolo de biblioteca en ejecucin:


Rutina carga y monta la biblioteca correspondiente. Ajusta instruccin que realiza referencia para que prximas referencias accedan al smbolo de la biblioteca
Problema: Se modifica el cdigo del programa. Solucin tpica: Referencia indirecta mediante una tabla.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Ventajas de bibliotecas dinmicas

Ventajas:
Menor tama o ejecutables. Cdigo de rutinas de bibliotecas slo en archivo de biblioteca. Procesos pueden compartir cdigo de biblioteca. Actualizacin automtica de bibliotecas: Uso de versiones.

Desventajas:
Mayor tiempo de ejecucin debido a carga y montaje
Tolerable: Compensado con el resto de las ventajas.

Ejecutable no autocontenido.

Uso de bibliotecas din micas es transparente


Mandatos de compilacin y montaje como las estticas.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Uso explcito de bibliotecas dinmicas

Forma de uso habitual:


Se especifica en tiempo de montaje qu biblioteca usar, pero se pospone su carga y montaje a tiempo de ejecucin.

Uso explcito:
Requerido por aplicaciones que determinan en tiempo ejecucin qu bibliotecas deben usar. No se especifica biblioteca en mandato de montaje. Programa solicita carga de bibliotecas mediante servicio del sistema (dlopen en UNIX y LoadLibrary en Win32). Acceso no transparente a smbolos de la biblioteca:
Programa necesita usar servicios del sistema para ello
dlsym en UNIX y GetProcAddress en Win32.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Compartir bibliotecas dinmicas

Biblioteca dinmica con referencias internas:


Problema de zona compartida con autoreferencias ya visto.

Tres posibles soluciones:


Rango fijo de direcciones para cada biblioteca dinmica:
Inconveniente: Poco flexible.

En montaje en tiempo de ejecucin se reajustan las autoreferencias.


Inconveniente: Impide compartir cdigo de la biblioteca.

Crear biblioteca con cdigo independiente de posicin (PIC)


Se genera cdigo con direccionamiento relativo a registro. Inconveniente (tolerable): direccionamiento relativo menos eficiente.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Formato del ejecutable


Distintos fabricantes usan diferentes formatos
Ejemplo: En Linux Executable and Linkable Format (ELF)

Estructura: Cabecera y conjunto de secciones. Cabecera:


Nmero mgico que identifica a ejecutable. Punto de entrada del programa. Tabla de secciones.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Formato del ejecutable

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Secciones del ejecutable

Diferentes tipos de secciones. Las secciones ms relevantes se volcarn en el mapa de memoria del proceso:
Cdigo(texto): contiene el cdigo del programa. Datos con valor inicial: Variables globales inicializadas. Datos sin valor inicial: Variables globales no inicializadas
Aunque aparece en la tabla de secciones no se almacena en el ejecutable (contenido no relevante).

No hay secciones vinculadas a variables locales.


Tienen carcter dinmico. En la pila cuando se invocan los procedimientos.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Variables globales frente a variables locales

Variables globales
Estticas Se crean al iniciarse programa Existen durante ejecucin del mismo Direccin fija en memoria y en ejecutable

Variables locales y parmetros


Dinmicas. Se crean al invocar la funcin. Se destruyen al retornar. La direccin se calcula en tiempo de ejecucin. Recursividad: varias instancias de una variable.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Variables globales frente a variables locales


Ejemplo:
int x=8; int y; /* Variable global con valor inicial */ /* Variable global sin valor inicial */

f(int t){ /* Parmetro */ int z; /* Variable local */ . } main(){ . }

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Mapa de memoria de un proceso

Mapa de memoria o imagen del proceso: conjunto de regiones Regin:


Tiene asociada una informacin (un objeto de memoria) Zona contigua tratada como unidad al proteger o compartir.

Cada regin se caracteriza por:


direccin de comienzo y tamao inicial. soporte:donde se almacena su contenido inicial. proteccin: RWX uso compartido o privado tama o fijo o variable

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Crear mapa de memoria desde ejecutable

Ejecucin de un programa: Crea mapa a partir de ejecutable.


Regiones de mapa inicial corresponden a secciones del ejecutable.

Regiones
Cdigo: Uso compartido, lectura y ejecucin, tamao fijo, soporte en archivo ejecutable. Datos con valor inicial: Uso privado, lectura y escritura, tamao fijo y soporte en archivo ejecutable. Datos sin valor inicial. Uso privado, lectura y escritura, tamao fijo y sin soporte (rellena con ceros en algunos lenguajes). Pila: Privada, lectura y escritura, tamao variable y sin soporte (rellena con 0). Crece hacia direcciones ms bajas. La pila inicial slo contiene argumentos que se le proporcionan al programa.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Crear mapa de memoria desde ejecutable

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Otras regiones del mapa de memoria

Durante la ejecucin de un proceso se crean nuevas regiones:


Mapa de memoria tiene carcter dinmico.

Regin de Heap.
Soporte de memoria dinmica. (malloc en C). Uso privado, lectura y escritura, tamao variable y sin soporte. Crece hacia direcciones ms altas.

Archivos proyectados
Regin asociada al archivo. Tamao variable, soporte en archivo. Protecci n y carcter compartido o privado especificado por el programa al solicitar la proyeccin.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Otras regiones del mapa de memoria

Memoria Compartida.
Regin asociada a la zona de memoria compartida. Uso compartido, tamao variable, sin soporte. La proteccin se especifica por el programa al proyectarla.

Pilas de Threads.
Cada pila corresponde con una regi n. Mismas caractersticas que la pila de proceso.

Carga de biblioteca dinmica.


Regiones asociadas a los datos y cdigo de la biblioteca.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Ejemplo de mapa de memoria de un proceso

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Operaciones sobre regiones

Sobre las regiones del mapa de memoria se pueden aplicar las siguientes operaciones:
Crear regin: Implcitamente, al crear el mapa inicial o por solicitud del programa en tiempo de ejecucin (por ejemplo: proyectar un archivo). Eliminar regin: Implcitamente, al terminar el proceso o por solicitud del programa en tiempo de ejecuci n (por ejemplo: desproyectar un archivo). Cambiar tamao de la regin: Implcitamente para la pila o bajo solicitud del programa en el heap. Duplicar una regin: Para el servicio FORK de POSIX (Duplicara el mapa de memoria del proceso padre).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Contenido
Objetivos del sistema de gestin de memoria. Modelo de memoria de un proceso. Esquemas de memoria basados en asignacin contigua. Memoria virtual. Archivos proyectados en memoria.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Asignacin contigua
Mapa de proceso en zona contigua de memoria principal. Hardware requerido: Registros valla (Registro base y lmite).
Slo accesibles en modo privilegiado.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Asignacin contigua

Sistema Operativo mantiene informacin sobre:


Copia del valor del registro valla en el BCP de cada proceso.
En el cambio de contexto (al activar el proceso) se carga el valor adecuado en el registro.

Estado de ocupacin de memoria.


Estructuras de datos que identifican las zonas ocupadas y los huecos.

Regiones de cada proceso.

La asignacin continua presenta fragmentacin externa:


Pequeos fragmentos libres entre zonas asignadas. Posible solucin: compactacin. Proceso costoso y slo con reubicacin dinmica (hardware).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Poltica de asignacin de espacios

Qu hueco usar para satisfacer una peticin? Posibles polticas:


Primer ajuste: Asignar el primer hueco de suficiente tamao. Mejor ajuste: Asignar al menor hueco con tamao suficiente.
Lista ordenada por tamao o buscar en toda la lista.

Peor ajuste: Asignar el mayor hueco con tamao suficiente.


Lista ordenada por tamao o buscar en toda la lista.

Primer ajuste es ms eficiente y proporciona buen aprovechamiento de la memoria. Estrategia ms sofisticada: Sistema Buddy
Listas de huecos con tamaos potencia de 2.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Operaciones sobre regiones: asignacin contigua

Al crear proceso se le asigna zona de memoria de tamao fijo.


Suficiente para regiones iniciales. Con huecos para permitir cambio de tamao y nuevas regiones (p.ej.: pilas de threads). Fragmentacin interna.

Peligro de desperdiciar espacio o quedarse corto. Crear/liberar/cambiar tamao usan la tabla de regiones para gestionar la zona asignada al proceso. Duplicar regin: crear regin nueva y copiar contenido. Limitaciones hardware impiden compartir memoria y detectar accesos errneos o desbordamiento de pila.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Valoracin del esquema de asignacin contigua

Relacin con los objetivos planteados:


Espacios independientes para procesos:
mediante registros valla.

Proteccin:
mediante registros valla.

Compartir memoria:
no es posible

Soporte de regiones:
no existe se reserva espacio para huecos

Maximizar rendimiento y mapas grandes


mal aprovechamiento de memoria por fragmentacin externa. no permite memoria virtual (limitado a memoria fsica).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Intercambio

Cuando no caben todos los programas en memoria principal. Uso de intercambio (swapping). Swap: particin de disco que almacena im genes de procesos. Swap out:
Cuando no caben en memoria procesos activos, se expulsa un proceso de memoria copiando su imagen a swap. Diversos criterios de seleccin al expulsar
Ej: Dependiendo de prioridad del proceso. Preferiblemente los bloqueados. No si est activo DMA sobre proceso

No es necesario copiar todo el mapa (ni cdigos ni huecos).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Intercambio

Swap in:
Cuando haya espacio en memoria principal, se lee proceso a memoria copiando imagen desde swap. Tambin cuando lleva un cierto tiempo expulsado.
Antes de swap in habr un swap out de otro proceso.

Asignacin de espacio en el dispositivo swap:


Con preasignacin: se asigna espacio al crear el proceso. Sin preasignacin: se asigna espacio al expulsarlo.

Usado en las primeras versiones de UNIX. Solucin general: Esquemas con Memoria Virtual.
Se usa integrado con intercambio.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Contenido
Objetivos del sistema de gestin de memoria. Modelo de memoria de un proceso. Esquemas de memoria basados en asignacin contigua. Memoria virtual. Archivos proyectados en memoria.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Jerarqua de Memoria
Elementos de informacin replicados en varios niveles de la jerarqua Problema de coherencia Migracin de informacin
Automtica Por demanda explcita.

Traduccin de direcciones

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Jerarqua de Memoria

Migracin automtica:
Poltica de extraccin, ubicacin y reemplazo. Tamao de bloques. Poltica de actualizacin.

Parmetros:
Tasa de acierto del nivel k (Hrk). Depende de tamao de bloques, capacidad del
nivel k, polticas de reemplazo y ubicacin.

Tasa de fallos del nivel k (Frk = 1- Hrk) Tiempo medio de acierto (Tef). Depende del tiempo de acceso en caso de acierto, la penalizacin por fallo y Hrk.Es
un valor promedio

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Memoria Virtual

Memoria virtual: El sistema operativo gestiona niveles de memoria principal y secundaria.


Transferencia de bloques entre ambos niveles. De memoria secundaria a principal: por demanda. De memoria principal a secundaria: por expulsin.

Aplicable porque procesos exhiben proximidad de referencias


Procesos slo usan parte de su mapa en intervalo de tiempo. Memoria Virtual: intenta que parte usada (conjunto de trabajo) resida en memoria principal (conjunto residente).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Memoria Virtual
Beneficios:
Aumenta el grado de multiprogramacin. Permite ejecucin de programas que no caben en memoria principal.

No adecuada para sistemas de tiempo real. Normalmente basada en paginacin.


Memoria secundaria: dispositivo de paginacin o de swap.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Paginacin. Aspectos Hardware

Asignacin no contigua. Pginas(tamao potencia de 2) Mapa de memoria del proceso dividido en pginas. Memoria principal dividida en marcos de tamao igual al de las pginas. Direccin lgica: nmero de pgina + desplazamiento. Tabla de pginas (TP). Relaciona pgina con marco que la contiene. MMU usa TP para traducir direcciones lgicas a fsicas Tpicamente 2 TPs (de usuario y de sistema). Si mapa de E/S y memoria comn, direcciones lgicas de E/S en TP del sistema.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Esquema de traduccin

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Fragmentacin interna en paginacin


Memoria asignada mayor que la requerida. Puede desperdiciarse parte de un marco asignado.
De media la mitad de una pgina (tolerable).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Contenido de entrada de TP

Nmero de marco asociado. Informacin de proteccin (RWX)


Si se intenta una operacin no permitida se lanza excepcin.

Bit de pgina vlida / invlida.


Si se accede a invlida se lanza excepcin. Usado en memoria principal para indicar si pgina presente.

Bit de pgina accedida y bit de pgina modificada.


Activados por la MMU cuando se accede o modifica la pgina respectivamente.

Bit de desactivacin de cach,


Usada, por ejemplo, con el mapa de entrada / salida.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Tamao de la pgina
Condicionado por varios factores:
Potencia de 2 y mltiplo del tama o del bloque de disco. Mejor pequeo por:
Menor fragmentacin Se ajusta mejor al conjunto de trabajo.

Mejor grande por:


Tablas ms pequeas Mejor rendimiento del dispositivo de E/S (acceso a disco).

Compromiso (entre 2KB y 16KB)

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Gestin del sistema operativo

Mantiene una TP por proceso.


Al cambiar de contexto notifica a la MMU cul usar.

Una nica TP para el propio sistema operativo.


Proceso en modo sistema accede directamente a su mapa y al sistema operativo.

Mantiene tabla de marcos:


Estado de cada marco (libre / ocupado).

Almacena una tabla de regiones por proceso. Mucho mayor gasto en tablas que con asignacin contigua, pero mucha mayor funcionalidad.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Valoracin de la paginacin

Relacin con los objetivos planteados:


Espacios independientes para procesos:
mediante tabla de pginas.

Proteccin:
mediante tabla de pginas

Compartir memoria:
entradas de la tabla de cada proceso corresponden con mismo marco.

Soporte de regiones:
bits de proteccin bits de validez. No hay espacio reservado para huecos.

Maximizar rendimiento y mapas grandes


permite esquemas de memoria virtual.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Implementacin de la tabla de pginas

Se mantiene, normalmente, en memoria principal. 2 problemas: eficiencia y gasto de almacenamiento. Eficiencia:


Cada acceso lgico requiere dos accesos a memoria principal. Primero a tabla de pginas y luego al dato o instruccin. Solucin: cache de direcciones. TLB

Gasto de almacenamiento
Tablas muy grandes
Ejemplo: pgina 4K, dir. lgica 32 bits y cada entrada ocupa 4 bytes. Tamao TP= 220*4 = 4 MB/Proceso

Solucin: tablas multinivel o tablas invertidas.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Translation Lookaside buffer (TLB)

Memoria asociativa con informacin de las ltimas pginas accedidas. Cach de entradas de la tabla de paginacin para esos accesos. Entradas en TLB pueden no incluir informacin sobre proceso (invalidar en cambio contexto) o clasificar por proceso (registro de procesador con id. de proceso actual). Gestionada por hardware.
MMU consulta TLB: Si hay fallo consulta la TP en memoria Casi transparente al S.O. Volcado e invalidacin.

Diseo alternativo: TLB gestionada por software.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

TLB gestionada por software

Alternativa de bastante uso en la actualidad. El S.O. realiza parte de la gestin de la TLB. S.O. mantiene las tablas de pginas. MMU slo consulta el TLB. En caso de fallo de pgina se produce una excepcin. Se activa el sistema operativo. Se encarga de buscar la traduccin de la pgina solicitada y rellenar el TLB con la traduccin. Flexibilidad en diseo del S.O. frente a eficiencia.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Tabla de pginas multinivel

Tabla organizada en varios niveles (M):


Entrada de nivel K apunta a la tabla de nivel K+1. Entrada de ltimo nivel apunta a marco de pgina.

Direccin lgica especifica la entrada a usar en cada nivel. Un campo por nivel + desplazamiento. Un acceso lgico implica M+1 accesos a memoria.
Uso de TLB

Si todas las entradas de una tabla son invlidas


No se almacena la tabla. Se pone invlida la entrada correspondiente de la TP superior.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Esquema de traduccin con 2 niveles

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Ventajas de tabla multinivel

Si proceso usa una parte pequea de su espacio lgico


Ahorro en espacio para almacenar TPs

Ejemplo: Proceso que usa 12MB superiores y 4MB inferiores.


2 Niveles, pginas de 4K, dir. lgica 32 bits (10 bits por nivel) y 4 bytes por entrada
Tamao: 1 TP N1 + 4 TP N2 = 5 * 4KB = 20KB (frente a 4 MB)

Ventajas adicionales:
Permite compartir tablas intermedias. Slo se requiere que est en memoria la TP de nivel superior
TPs restantes pueden estar en disco y traerse por demanda.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Ventajas de tabla multinivel

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Tabla de pginas invertida

Procesadores actuales espacio lgico enorme (direcciones de 64 bits)


TPs muy grandes incluso usando multinivel.

Posible solucin alternativa: Uso de TPs invertidas.


Una entrada por cada marco indica pgina almacenada en l.
Tamao de TP proporcional a memoria principal.

Necesario guardar nmero de pgina e id. de proceso.

Procedimiento de traduccin:
MMU usa TLB convencional Si fallo en TLB, MMU busca traduccin en TP invertida.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Tabla de pginas invertida


Para evitar bsqueda secuencial: tabla hash. Difcil compartir memoria. TP pequea. S.O. debe guardar informacin de pginas no residentes en memoria.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Segmentacin

Esquema HW que intenta dar soporte directo a las regiones. Mapa memoria de proceso compuesta por segmentos. Cada regin un segmento. Generalizacin registros base y lmite (por segmento). Direccin lgica: n de segmento + direccin en segmento. MMU usa tabla de segmentos (TS) S.O. guarda una TS por segmento.
Cambio contexto notifica a MMU cul debe usar.

Entrada TS con registros base y lmite y proteccin RWX Fragmentacin externa: segmento es unidad de asignacin. S.O. mantiene informacin de huecos y zonas asignadas.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Esquema de traduccin con segmentacin

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Valoracin de la segmentacin

Relacin con los objetivos planteados:


Espacios independientes para procesos:
mediante tabla de segmentos

Proteccin:
mediante tabla de segmentos

Compartir memoria:
compartir segmentos: misma entrada en distintas tablas de segmentos

Soporte de regiones:
bits de proteccin

Maximizar rendimiento y mapas grandes


no facilita uso de memoria virtual por segmentos con tamao variable. presenta fragmentacin externa.

Apenas usado.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Segmentacin paginada

Entrada en TS apunta a una TP para el segmento. Ventajas de ambos esquemas. Segmentacin


Soporte directo a regiones del proceso Facilita operaciones sobre regiones:
Establecer proteccin: Modificar slo una entrada de TS. Compartir segmento: Entradas de TS apuntando a misma TP.

Paginacin
Asignacin no contigua de segmento. Facilita el uso de esquemas de memoria virtual.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Esquema de traduccin: segmentacin paginada

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Valoracin de la segmentacin paginada

Relacin con los objetivos planteados:


Espacios independientes para procesos:
mediante tabla de segmentos

Proteccin:
mediante tabla de segmentos

Compartir memoria:
compartir segmentos: misma entrada en distintas tablas de segmentos

Soporte de regiones:
bits de proteccin

Maximizar rendimiento y mapas grandes


permite esquemas de memoria virtual

Frente a paginacin: Facilita gestin de regiones, pero con HW ms complejo.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Paginacin por demanda

Segmentacin pura no adecuada para memoria virtual.


Tamao de segmentos variable.

Paginacin y segmentacin paginada s lo son:


Bloque transferido: pgina. M. Virtual + paginacin: paginacin por demanda.

Estrategia de implementacin: Uso del bit de validez.


Pgina no residente se marca como no vlida. En acceso: Excepcin de fallo de pgina
S.O. trae pgina correspondiente de memoria secundaria. S.O. debe diferenciar entre pgina no residente e invlida (hueco).

Prepaginacin: Pginas se traen por anticipado. En fallo de pgina se traen ms suponiendo que sern accedidas pronto.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Tratamiento de fallo de pgina

Tratamiento de excepcin (direccin de fallo disponible en registro)


Direcci n invlida: Aborta proceso o manda seal. Si no hay marcos libres (tabla marcos): selecciona cul reemplazar (algoritmo), la marca invlida y si est modificada la guarda en memoria secundaria. Hay marco libre (o se ha liberado):
Lee la pgina al marco seleccionado Marca vlida la entrada de pgina referenciando al marco. Establece el marco como ocupado si no lo estaba (tabla de marcos).

Fallo de pgina puede implicar dos operaciones en disco.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Polticas de administracin de memoria virtual

Poltica de reemplazo.
Pgina que reemplazar si hubo fallo y no hay marcos libres. Reemplazo local: El marco seleccionado ha de estar asignado a ese mismo proceso. Reemplazo global: Puede seleccionar cualquier marco.

Poltica de asignacin de espacio a los procesos.


Reparticin de marcos entre procesos. Asignacin fija o dinmica.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Algoritmos de reemplazo
Objetivo: Minimizar la tasa de fallos de pgina. Cada algoritmo descrito tiene versin local y global Algoritmos presentados:
ptimo FIFO Reloj (o segunda oportunidad). LRU LFU y MFU

Uso de tcnicas de buffering de pginas.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Algoritmo ptimo
Criterio: pgina residente que tardar ms en accederse. Irrealizable. Versin local y global. Inters para estudios analticos comparativos.
Referencias: 1 0 1 2 3 4 0 1 0 2 0 3 0 3 4 3 0 1 1 1 0 0 0 2 3 4 1 1 2 3

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

0 4

0 4

Marcos:

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Algoritmo FIFO

Criterio: pgina que lleva ms tiempo residente. Fcil implementacin.


Pginas residentes en orden FIFO. Se expulsa la primera. No necesita el bit de pgina accedida.

No es buena estrategia.
Pgina seleccionada puede seguir accedindose mucho. Criterio no basado en uso de pgina.

Anomala de Belady
En algunos ejemplos, al aumentar el nmero de marcos, aumenta el nmero de fallos de pgina.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Algoritmo del reloj (o 2 oportunidad)

FIFO + uso de bit de referencia de pgina accedida. Criterio:


Si pgina elegida por FIFO no tiene activo el bit de referencia
Se expulsa.

Si est activo (2 oportunidad)


Se desactiva el bit. Se pone la pgina al final de la FIFO. Se pasa a la siguiente pgina.

Posible implementacin como lista circular con referencia a la primera pgina de la lista (como un reloj con la referencia como aguja).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Algoritmo del reloj mejorado

Se considera tambin el bit de modificacin. Las pginas se clasifican en cuatro grupos segn el estado de los bits de referencia y modificacin (R, M)
(0,0) Mejor pgina que se puede reemplazar. (0,1) No tan buena porque se tendr que almacenar en disco. (1,0) Se us recientemente, pero no se ha modificado. (1,1) Se us y modific. Peor para reemplazar.

Se busca la primera pgina del mejor tipo posible (orden anterior). Puede ser necesario explorar la cola varias veces. Macintosh

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Algoritmo LRU

Criterio: Pgina residente usada hace ms tiempo. Por proximidad de referencias:


Pasado reciente condiciona futuro prximo.

Difcil implementacin estricta (hay aproximaciones). Posible implementacin con HW especfico.


En entrada de TP hay un contador. Cada acceso a memoria, MMU copia contador del sistema. Reemplazo: Pgina con contador ms bajo

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Algoritmos LFU y MFU

Se basan en el nmero de ocasiones que han sido accedidas las pginas. Son difciles de implementar y no se aproximan al ptimo. LFU. Menos frecuentemente accedida. Reemplaza la pgina que se ha accedido en menos ocasiones.
Problema si una pgina se us mucho, pero nunca ms.

MFU. Ms frecuentemente accedida. Reemplaza la pgina que ms veces se accedi. Supone que la menos accedida se trajo hace poco a memoria.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Buffering de pginas

Peor caso en tratamiento de fallo de pgina:


2 accesos a dispositivo.

Alternativa: mantener una reserva de marcos libres Fallo de pgina: siempre usa marco libre (no reemplazo) Si nmero libres < umbral:
demonio de paginacin aplica repetidamente el algoritmo de reemplazo.
Pginas no modificadas pasan a lista de marcos libres. Pginas modificadas pasan a lista de marcos modificados. Se escribirn a disco (en tandas mejor rendimiento) y entonces pasan a listos.

Si se referencia una pgina de esas listas. Fallo de pgina la recupera de la lista. Para mejorar algoritmos malos.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Retencin de pginas en memoria

Pginas marcadas como no reemplazables. Se aplica a las pginas del propio S.O. Generalmente el mapa de memoria del S.O. es fijo. Tambin cuando DMA sobre una pgina. Algunos sistemas ofrecen un servicio para que las aplicaciones fijen en memoria pginas de su mapa.
Adecuado para procesos de tiempo real. Puede afectar al rendimiento del sistema.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Estrategia de asignacin fija

Nmero de marcos asignados al proceso (conjunto residente) es constante. Puede depender de las caractersticas del proceso (tamao, prioridad, ...) No se adapta a la evolucin del programa. Comportamiento relativamente predecible. Slo tiene sentido reemplazo local. Arquitectura define el nmero mnimo de marcos:
Instruccin capaz de generar mayor nmero fallos de pgina Por ejemplo MOVE /DIR1, /DIR2 requiere un mnimo de tres marcos. (Instruccin y dos operandos residentes).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Estrategia de asignacin dinmica

Nmero de marcos asignados vara dependiendo de su comportamiento del proceso (y puede que de los otros). Asignacin dinmica + reemplazo local.
Proceso va aumentando o disminuyendo su conjunto residente Comportamiento relativamente predecible.

Asignacin dinmica + reemplazo global.


Procesos se quitan las pginas entre ellos. Comportamiento difcilmente predecible (tasa de fallos depende de caracterstica de otros procesos).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Hiperpaginacin (Thrashing)

Tasa excesiva de fallos de un proceso o en el sistema. Con asignacin fija: Hiperpaginacin en proceso P
Si conjunto residente de P < conjunto de trabajo de P+

Con asignacin variable: Hiperpaginacin en sistema:


Si n de marcos disponibles < suma de conjuntos de trabajo Grado de utilizacin del procesador cae drsticamente. Procesos estn casi siempre en colas de dispositivo de paginacin. Solucin (similar al swapping): Control de carga
disminuir el grado de multiprogramacin. Suspender 1 o ms procesos liberando sus pginas residentes.

Problema para detectar esta situacin

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Hiperpaginacin (Thrashing)

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Estrategia del conjunto de trabajo

Intenta conocer el conjunto de trabajo de cada proceso


pginas usadas por el proceso en las ltimas N referencias. N es la ventana del conjunto de trabajo.

Si el conjunto de trabajo decrece, se liberan marcos. Si crece, se asignan nuevos marcos.


Si no hay disponibles, suspender uno o ms procesos. Se reactivan cuando haya marcos suficientes para el conjunto de trabajo.

Asignacin dinmica con reemplazo local. Difcil implementacin estricta (HW especfico). Aproximaciones: Implementacin basada en controlar la tasa de fallos de pgina de cada proceso.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Estrategia basada en frecuencia de fallos


Si tasa < lmite inferior, se liberan marcos aplicando un algoritmo de reemplazo. Si tasa > lmite superior se asignan nuevos marcos. Si no hay libres se suspende algn proceso.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Control de carga y reemplazo global

Algoritmos de reemplazo global no controlan hiperpaginacin.


Necesitan cooperar con uno de control de carga

Ejemplo Unix BSD:


Reemplazo global con algoritmo reloj (dos manecillas). Buffering de pginas. Si n marcos libres < umbral, el demonio de paginacin aplica reemplazo. Si se repite con frecuencia la falta de marcos libres: Proceso swapper suspende procesos.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Dispositivo de paginacin (swap)

Preasignacin de espacio
Cuando se crea una regin se le asigna espacio en swap. Al expulsar una pgina siempre tiene espacio reservado. Permite detectar de forma sncrona la falta de espacio swap.

Sin preasignacin de espacio.


No se asigna espacio en swap al crear la regin. En primera expulsin se le asigna espacio en swap. Pgina que nunca se expulsa no gasta espacio en swap Mejor aprovechamiento de espacio de almacenamiento

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Dispositivo de paginacin (swap)


Mientras no se modifique la pgina no va a swap. Regiones compartidas no suelen usar swap. Algunos sistemas permiten aadir dispositivos de swap de forma dinmica o utilizar archivos como swap.
Acceso a archivos ms lento que a dispositivos.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Operaciones sobre regiones de memoria virtual

Creacin de regin
Al crear mapa inicial o por solicitud posterior.

Liberacin de regin
Al terminar el proceso o por solicitud posterior.

Cambio de tamao de regin


Del heap o de la pila

Duplicado de regin
Para sistemas operativos que generen procesos como copia de otros (fork).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Creacin de regin

Nueva regin no se le asigna memoria principal (carga por demanda) Pginas se marcan como invlidas (por no tener marco). S.O. actualiza tabla de regiones y entradas de tabla de pginas asociadas. Busca hueco en mapa para regin. Dependiendo del tipo de soporte:
En archivo: Pginas marcadas como cargar de archivo (CA). Se almacena direccin del bloque del archivo correspondiente. Sin soporte: Se marcan las pginas como rellenar con ceros (RC). Fallo de pgina no implica lectura del dispositivo.

Si privada y preasignacin swap, se reserva espacio de swap Pila. Se copian argumentos del programa en bloques swap.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Creacin de regin

Una vez creada regin, cuando se expulsa pgina modificada:


Si regin privada: Se escribe pgina en swap. Posteriores fallos se sirven de ese bloque. Si regin compartida, se escribe pgina en soporte. Los fallos se sirven del soporte.

En creacin de mapa inicial:


Se crean regiones segn sus caractersticas.
Cdigo (CA, Compartida, RX), datos valor inicial (CA, Privada, RW), datos sin valor inicial (RC, Privada, RW), pila inicial (contenido inicial en swap).

Huecos se marcan como invlidos tambin para S.O.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Creacin del mapa inicial

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Liberacin de regin
Actualizar tabla de regiones para eliminar regin. Marcar como invlidas pginas asociadas. Si regin privada, se libera espacio de swap La liberacin puede deberse a:
Solicitud explcita. Finalizacin de proceso Otras razones (exec de POSIX).

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Cambio de tamao

Si disminuye, similar a liberacin, pero slo parte afectada.


Ajusta tabla regiones, marca pginas como invlidas y libera swap.

Si aumenta tamao:
Comprobar no solapamiento, fijar nuevas pginas como no residentes con mismas caractersticas que la regin. Si preasignacin, se reserva espacio para pginas en swap.

Expansin del heap:


Solicitada por programa mediante servicio del S.O. Marca las pginas correspondientes como RC, privadas, RW.

Expansin de pila ms compleja: es automtica

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Expansin de la regin de pila

Expansin automtica
Programa disminuye valor de SP y accede a zona expandida. Fallo de pgina que el sistema debe detectar como especial.

Tratamiento de fallo de pgina


Si direccin realmente invlida
Si direccin < SP. Aborta proceso o le manda seal. Si no, expansin de pila.

Expansin de pila:
S.O. verifica no solapamiento, marca pginas RC, privadas, RW. Si hay preasignacin, reserva espacio en swap.

Siempre debe haber al menos una pgina invlida entre

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Duplicado de una regin

Necesario para fork de UNIX


Duplicar regiones privadas del padre y compartir las no privadas.

Copia de regin de un proceso en mapa de otro.


Es costoso pues se debe copiar el contenido.

fork sera muy ineficiente


Muchas veces ni se usa el mapa porque hay un exec.

Optimizacin: copy-on-write (COW)


Se comparte una pgina mientras no se modifique. Si un proceso la modifica, se crea una copia de l. Duplicado por demanda.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Copy-onwrite

Implementacin de COW
Se comparten pginas de regiones duplicadas, pero:
Se marcan de slo lectura y con bit de COW. Primera escritura provoca un fallo de proteccin que se atiende y se genera una copia privada.

Puede haber varios procesos con misma regin duplicada.


Contador de uso por pgina. Al crear copia privada se decrementa el contador. Si llega a 1 se desactiva el COW porque no hay duplicados.

fork con COW. Se comparten todas las regiones. Las regiones privadas se marcan como COW en padre e hijo Resultado: En vez de duplicar espacio de memoria, slo se duplica la tabla de pginas.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Contenido
Objetivos del sistema de gestin de memoria. Modelo de memoria de un proceso. Esquemas de memoria basados en asignacin contigua. Memoria virtual. Archivos proyectados en memoria.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Archivos proyectados en memoria

Generalizacin de la memoria virtual


Entradas de la tabla de pgina referencian a un archivo de usuario.

Programa solicita proyeccin de archivo (o parte) en su mapa de memoria.


Puede especificar proteccin y si privada o compartida.

S.O. rellena las entradas correspondientes con:


No residente, CA Privada/Compartida y Proteccin segn especifica la llamada.

Cuando programa accede a posicin de memoria asociada a archivo, est accediendo al archivo.

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Archivos proyectados en memoria

Forma alternativa de acceso a archivos frente a read/write.


Menos llamadas al sistema. Se evitan copias intermedias en cach del sistema de archivos. Se facilita programacin pues el archivo proyectado se accede como a estructuras de datos en memoria.

Se usa para carga de bibliotecas dinmicas


La zona de cdigo se proyecta como compartida. La zona de datos con valor inicial se proyecta como privada

AT3148 Ampliacin de Sistemas Operativos


A. Snchez-Macin, J.A. Maestro, M.P. Sesmero (2004/05)

Archivo proyectado

Você também pode gostar