sistemas operativos unidad v administración de la memoria

Download Sistemas Operativos Unidad V Administración de la Memoria

Post on 11-Apr-2015

106 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Diapositiva 1
  • Sistemas Operativos Unidad V Administracin de la Memoria
  • Diapositiva 2
  • Objetivos de la administracin de memoria Modelo de memoria de un proceso Esquemas de memoria basados en asignacin contigua Intercambio Memoria virtual
  • Diapositiva 3
  • Objetivos de la administracin de memoria El SO multiplexa los recursos entre los procesos: Gestin de procesos: Reparto del procesador. Gestin de memoria: Reparto de memoria. Cada proceso cree que tiene una mquina solo para l.
  • Diapositiva 4
  • Objetivos de la administracin de memoria (2) Los objetivos deseables en la administracin de memoria son: Ofrecer a cada proceso un espacio lgico propio. Proporcionar proteccin entre los procesos. Permitir que los procesos compartan memoria. Dar soporte a las distintas regiones del proceso. Maximizar el rendimiento del sistema. Proporcionar a los procesos mapas de memoria muy grandes.
  • Diapositiva 5
  • Objetivos de la administracin de memoria (3) Ofrecer a cada proceso un espacio lgico propio. No se conoce la posicin de memoria donde un programa se ejecutar. El cdigo ejecutable genera referencias entre 0 y N. Ejemplo: programa que copia un vector Archivo ejecutable 0000 0004 Cabecera 0096 0100 LOAD R1, #1000 0104 LOAD R2, #2000 0108 LOAD R3, /1500 0112 LOAD R4, [R1] 0116 STORE R4, [R2] 0120 INC R1 0124 INC R2 0128 DEC R3 0132 JNZ /12 0136 .. Sistema Operativo S. O. Monoprogramacin 0000 LOAD R1, #1000 0004 LOAD R2, #2000 0008 LOAD R3, /1500 0012 LOAD R4, [R1] 0016 STORE R4, [R2] 0020 INC R1 0024 INC R2 0028 DEC R3 0032 JNZ /12 0036 .. Ejecucin Sistema operativo en direcciones ms altas Programa se carga en direccin 0 Se le pasa el control al programa
  • Diapositiva 6
  • Objetivos de la administracin de memoria (4) Reubicacin Es un problema cuando el cdigo tiene direcciones absolutas. En un sistema multiprogramacin el SO debe tener la libertad de ubicar al programa donde quiera. Consiste en traducir las direcciones lgicas de los programas ejecutables a direcciones fsicas.
  • Diapositiva 7
  • Objetivos de la administracin de memoria (5) La Reubicacin crea espacios lgicos independientes para cada proceso. Existen dos alternativas para la reubicacin: (1) Reubicacin por hardware y (2) Reubicacin por software. (1) Reubicacin por Hardware Hardware (MMU) esta encargado de la traduccin El SO se encarga de: Almacenar la funcin de traduccin por proceso Especificar al Hw la funcin de traduccin del proceso El programa se carga en memoria sin modificar (2) Reubicacin por Software Traduccin de direcciones durante la carga del programa Programa en memoria distinto del ejecutable Desventajas: No permite mover un programa en tiempo de ejecucin No asegura proteccin
  • Diapositiva 8
  • Objetivos de la administracin de memoria (6) Proporcionar proteccin entre procesos En sistemas monoprogramacin se protege el SO. En sistemas multiprogramacin, adems del SO, tambin debe haber proteccin entre los procesos. La traduccin debe crear espacios disjuntos. Es necesario validar todas las direcciones que genera el programa. La deteccin debe realizarla el hardware del procesador lanzando una excepcin. El tratamiento lo hace el SO en respuesta a la excepcin lanzada por el hw.
  • Diapositiva 9
  • Objetivos de la administracin de memoria (7) Permitir que los procesos compartan memoria (memoria compartida). Las direcciones lgicas de dos o ms procesos se corresponden con la misma direccin fsica. La memoria compartida est bajo el control del SO. Los beneficios que se tienen son: Procesos ejecutando un mismo programa comparten su cdigo. Mecanismos de comunicacin entre procesos muy rpido. Requiere asignacin no contigua
  • Diapositiva 10
  • Objetivos de la administracin de memoria (8) Problemas al compartir memoria: Si una posicin de la zona de memoria tiene referencia a otra posicin dentro de la misma zona de memoria: En la zona de cdigo podra darse este caso cuando se tiene una condicin de bifurcacin. En la zona de datos podra darse el caso cuando se almacena una lista con punteros.
  • Diapositiva 11
  • Objetivos de la administracin de memoria (9) Dar soporte a las distintas regiones del proceso (soporte de regiones). El proceso presenta un mapa de memoria no homogneo, formado por: Conjunto de regiones con distintas caractersticas. Ejemplo: regin de cdigo no modificable. El mapa del proceso es dinmico. Regiones cambian de tamao (p. ej. La pila). Se crean y destruyen regiones. Existen zonas sin asignar (huecos). La administracin de memoria debe dar soporte a las siguientes caractersticas: Detectar accesos no permitidos a una regin. Detectar acceso a huecos. El SO debe guardar una tabla de regiones para cada proceso.
  • Diapositiva 12
  • Objetivos de la administracin de memoria (10) Maximizar el rendimiento del sistema Reparto de memoria maximizando el grado de multiprogramacin. Se desperdicia memoria debido a: Restos inutilizables (fragmentacin). Tablas requeridas por el gestor de memoria. Una menor fragmentacin implica tablas muy grandes. La solucin es la Paginacin. Otra estrategia para aumentar el grado de multiprogramacin es el uso de memoria virtual.
  • Diapositiva 13
  • Objetivos de la administracin de memoria (11) Proporcionar a los procesos mapas de memoria muy grandes. Resuelto gracias al uso de memoria virtual. Antes se usaban los overlays Programa dividido en fases que se ejecutaban sucesivamente. En cada momento solo hay una fase residente en memoria. Cada fase realiza su labor y carga la siguiente. No es transparente para el programador.
  • Diapositiva 14
  • Modelo de memoria de un proceso El mapa inicial de un proceso est muy vinculado con el archivo que contiene el programa ejecutable. La generacin de un archivo ejecutable puede dividirse en dos fases: Compilacin Resuelve referencias dentro de cada mdulo fuente. Genera un mdulo objeto. Montaje (o enlace) Resuelve referencias entre mdulos objeto. Resuelve referencias a smbolos de bibliotecas. Genera el ejecutable incluyendo bibliotecas.
  • Diapositiva 15
  • Modelo de memoria de un proceso (2) En la generacin del archivo ejecutable intervienen las bibliotecas y pueden ser de dos tipos: Estticas: Se obtiene un ejecutable autocontenido. Ejecutables grandes. Cdigo de biblioteca repetido en muchos ejecutables. Actualizacin de la biblioteca implica volver a montar. Dinmicas: Carga y montaje de la biblioteca en tiempo de ejecucin. El ejecutable contiene: (1) el nombre de la biblioteca y (2) rutina de carga y montaje en tiempo de ejecucin. Se carga en la primera referencia que se haga a ella.
  • Diapositiva 16
  • Modelo de memoria de un proceso (3) Formato del ejecutable Como parte final del proceso de compilacin y montaje, se genera un archivo ejecutable que contiene el cdigo mquina del programa. Distintos fabricantes han usado diferentes formatos de archivos (p. ej. ELF de Unix)
  • Diapositiva 17
  • Modelo de memoria de un proceso (4) El mapa de memoria de un proceso tiene las siguientes caractersticas: No es algo homogneo. Esta formado por un conjunto de distintas regiones o segmentos. Regin: Zona contigua de memoria tratada como unidad al proteger o compartir. Tiene asociada una determinada informacin (objeto de memoria). Cada regin se caracteriza por: Direccin de comienzo y tamao inicial. Soporte: donde se almacena su contenido inicial. Proteccin: lectura (r), escritura (w) y ejecucin (x). Uso compartido o privado. Tamao fijo o variable.
  • Diapositiva 18
  • Modelo de memoria de un proceso (5) Al crear el mapa de memoria desde el ejecutable las regiones de memoria se correspondern bsicamente con las secciones del ejecutable ms la pila inicial del proceso. Compartida, (r,x), T. Fijo, Soporte en ejecutable Privada, (r,w), T. Fijo, Soporte en ejecutable Privada, (r,w), T. Fijo, Sin Soporte Privada, (r,w), T. Variable, Sin Soporte, Crece hacia direcciones ms bajas Pila inicial, argumentos del programa
  • Diapositiva 19
  • Modelo de memoria de un proceso (6) Durante la ejecucin de un proceso se crean nuevas regiones, as el mapa de memoria tiene un carcter dinmico. Algunas otras regiones del mapa de memoria son: Regin de Heap Soporte de memoria dinmica (malloc en C) Es: Privada, RW, Tam. Variable, Sin Soporte y crece hacia direcciones ms altas Archivo proyectado Regin asociada al archivo proyectado Tam. Variable, Soporte en Archivo Proteccin y carcter compartido o privado especificado en proyeccin. Memoria compartida Regin asociada a la zona de memoria compartida. Compartida, Tam. Variable, Sin Soporte y Proteccin especificada en proyeccin. Pilas de threads Cada pila de thread corresponde con una regin Mismas caractersticas de la pila de proceso Carga de biblioteca dinmica Se crean regiones asociadas al cdigo y datos de la biblioteca.
  • Diapositiva 20
  • Modelo de memoria de un proceso (7) Durante la vida de un proceso, su mapa de memoria va evolucionando y con l sus regiones. Existen cuatro operaciones genricas sobre dichas regiones: Crear regin Se da de forma implcita al crear el mapa inicial, o por solicitud del programa (p. ej. Proyectar un archivo). Eliminar regin Se da implcitamente al terminar el proceso o por solicitud del programa en tiempo de ejecucin (p. ej. Desproyectar un archivo). Cambiar de tamao la regin Se da implcitamente para la pila o por solicitud del heap. Duplicar la regin Operacin requerida por el servicio fork()
  • Diapositiva 21