1 / 85

Memoria

Memoria. Tema 5. 1. Gestor de memoria. Proceso gestor de memoria. Proceso encargado de la gestión de la memoria: Acceso a la memoria por varios procesos. Uso compartido de MEM: Protección: Evitar accesos a las zonas de otros procesos.

courtney
Download Presentation

Memoria

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Memoria Tema 5

  2. 1. Gestor de memoria. Proceso gestor de memoria. • Proceso encargado de la gestión de la memoria: • Acceso a la memoria por varios procesos. • Uso compartido de MEM: Protección: Evitar accesos a las zonas de otros procesos. • Compartición: Acceso simultáneo de varios procesos a una zona de memoria. • Se persigue: • Poco uso de la memoria, en su forma y en su ejecución. • Rápido: En la asignación de la memoria.

  3. 2. Conceptos de Memoria • Gestiona el uso compartido de la MEM. • Protección: Acceso de un proceso a la zona de otro. • Compartición: Acceso compartido a una zona de memoria. • Directrices: • Ocupar poca memoria (en su tamaño y su gestión). • No fragmentar memoria. • Rápido: en asignaciones. • Los procesos para ejecutarse necesitan estar en memoria. • Los procesos se asignan a particiones. • Las particiones pueden existir (G. Estática) o crearse para ellos (G. Dinámica). • Durante la vida del proceso su posición puede variar.

  4. 2. Conceptos de Memoria • Sistemas tradicionales: • 1 Proceso => memoria principal divida en: • Sistema operativo (monitor residente, núcleo). • Programa que se ejecuta. • Sistemas multiproceso: • Sistema operativo (monitor residente, núcleo). • Parte de “usuario”: subdividida para varios procesos. • Se necesita: • Subdivisión dinámica (sistema operativo) => gestión de memoria. • Reparto eficientemente la memoria. Máximo número de procesos. • La memoria y la CPU han de compartirse. Máximo número de procesos, CPU al 100%.

  5. 3. Requisitos • Requisitos: • Organización lógica. • Organización física. • Reubicación. • Protección. • Compartición.

  6. 3. Requisitos Organización Lógica. • La memoria de un sistema informático se organiza como un espacio de direcciones lineal o unidimensional (secuencia de bytes). • La mayoría de los programas se organizan en módulos: no son modificables (lectura, ejecución) y modificables. • Módulos: • Cada módulo puede escribirse y compilarse independientemente. El sistema resuelve durante la ejecución todas las referencias de un módulo a otro. • Distintos grados de protección (sólo lectura, sólo ejecución) a los distintos módulos. • Mecanismos para compartir módulos. La ventaja de la compartición a nivel de módulo. • Reubicación por módulos.

  7. 3. Requisitos Organización Física. • La memoria del computador se organiza en dos niveles: memoria principal y memoria secundaria. En otros se añade la cache. • La memoria principal: • Acceso rápido con un coste relativamente alto. • Volátil, no almacenamiento permanente. • La memoria secundaria: • Lenta y barata. • No es volátil. Almacenamiento a largo plazo de programas y datos. • El sistema ha de gestionar el flujo de procesos entre ellas (S.O.). • Su gestión puede ser realizada por el programador: Overlaying: Un programa y los datos se organizan con varios módulos asignados a la misma región de memoria. Un módulo principal es el responsable del intercambio de los módulos. • En entornos multiproceso el programador no conoce durante la codificación cuánto espacio habrá disponible o dónde estará este espacio (Reubicación).

  8. 3. Requisitos Protección. • El espacio de cada proceso ha de ser protegido de las acciones de otros procesos. • Un proceso no puede hacer referencia a posiciones de memoria de otros procesos sin permiso. • La reubicación dificulta la protección: Es imposible comprobar las direcciones absolutas para asegurar la protección. • Las referencias a memoria deben comprobarse durante la ejecución. • Los mecanismos que respaldan la reubicación permiten la gestión de la protección. Métodos: • Registros límite y base: • Se almacenan el PCB y marcan las zonas del proceso. • Bits de protección: • Cada bloque de MEM tiene asignados unos bits que marcan que proceso puede acceder. • Segmentación: • Derechos específicos en la tabla de páginas o segmentos. Segmentos: • Las direcciones virtuales son válidas si están entre la base y el límite (comprobación vía hardware). • Descriptores del segmento: distintos derechos de acceso a cada bloque o segmento. • Compartición de bloques o segmentos. Páginas: • Bits de acceso a cada página.

  9. 3. Requisitos Compartición. • Se ha de permitir el acceso de varios procesos a una misma zona de memoria. • Una serie de procesos ejecutando una misma zona de programa. • Acceso compartido a la misma estructura de datos (paso de info.). • El sistema de gestión de memoria ha de permitir accesos controlados a las áreas compartidas de la memoria, sin comprometer la protección.

  10. Fragmentación 1. Sistema operativo Sistema operativo Sistema operativo Sistema operativo 8M Proceso 1 20M Proceso 1 20M Proceso 1 20M 14M 14M 56M Proceso 2 Proceso 2 36M Proceso 3 18M 22M 4M (b) (c) (d) (a) Efectos de la partición dinámica.

  11. Fragmentación 2. Sistema operativo Sistema operativo Sistema operativo Sistema operativo 14M Proceso 2 20M 20M Proceso 1 Proceso 1 20M 6M 8M Proceso 4 8M Proceso 4 Proceso 4 8M 14M 6M 6M 6M 18M 18M 18M 18M Proceso 3 Proceso 3 Proceso 3 Proceso 3 4M 4M 4M 4M (g) (e) (f) (h) Efectos de la partición dinámica.

  12. 3. Requisitos Reubicación 1. • El Sistema es compartido por varios procesos. • Durante la programación no se conoce el número de programas que residirán en memoria en el momento de la ejecución. • Se realiza la multiprogramación entre los procesos con sitio en MEM. • Se cargan y descargan de la memoria principal los procesos activos para maximizar el uso del procesador. • Se mantiene una reserva de procesos listos. • El programa puede moverse en memoria por un swap.  • El programa no puede ser escrito en direcciones absolutas. • Cambio en el direccionamiento. • El Sistema ha de conocer la ubicación de la información: • Control del proceso. • Pila de ejecución. • Punto de partida de la ejecución del programa.

  13. 3. Requisitos Reubicación: Conceptos. • Dirección lógica: • Es una referencia a una posición de memoria independiente de la asignación actual de datos a la memoria. • Se debe hacer una traducción a una dirección física. • Dirección relativa: • La dirección se expresa como una posición relativa a algún punto conocido. • Dirección física: • La dirección absoluta o la posición real en la memoria principal. Reubicación estática: • Durante la carga del programa en MEM se calculan todas las direcciones relativas a direcciones absolutas en MEM (según el punto de carga). • El programa no puede ser trasladado. Partición fija.  • Una vez que un programa haya sido descargado al disco, se limitará a declarar que, cuando vuelva a ser cargado, debe situarse en la misma región de memoria principal que antes. Reubicación dinámica: • Las direcciones se convierten dinámicamente para cada acceso. • Las direcciones generadas son traducidas a físicas en tiempo real. • Los procesos pueden cambiarse de sitio una vez comenzada su ejecución. Reubicación: Tipos.

  14. Dirección relativa Bloque de control de proceso Registro base Programa Sumador Dirección absoluta Comparador Registro límite Datos Interrupción al sistema operativo Pila Imagen de un proceso en la memoria principal Soporte de hardware para la reubicación.

  15. Gestión de Memoria. S.O. Proceso Partición vacía S.O. Proceso Proceso Fragmentación 3. • Fragmentación Interna: • Generada por la diferencia entre el tamaño de una partición de MEM. y el módulo de programa situado en ella. • Provocada al no llenar la partición. • Ej: MEM de 10k dividida en regiones de 2k. Un módulo de 1.5 k desperdicia 0.5 k. • Fragmentación Externa: • Por la mala gestión del espacio libre entre procesos: Espacios entre procesos. • Provocada por el espacio muerto entre particiones. • Ej.: Cuatro procesos dejando espacios entre si de 2, 5 y 7 k. La llegada de un proceso requiriendo 14k no atendida aun teniendo ese espacio libre en MEM.

  16. 4. Particiones de Memoria: Tipos Carga de programas: Tipos. • Contigua simple. • Particiones estáticas. • Particiones estáticas: varios tamaños. • Particiones dinámicas. • Segmentación. • Paginación.

  17. 4. Particiones de Memoria S.O. Proceso Sin uso 4.1 Carga de programas: Contigua simple. • Un solo proceso en MEM. • No se permite la multiprogramación. • División en: S.O., área de programa y área sin uso. • Protección: limitado el acceso a la zona del sistema operativo (posición fija).

  18. 4. Particiones de Memoria 4.2 Carga de programas: Particiones estáticas (IBM OS/360). • Particiones de igual tamaño. • Cada partición contiene el espacio de direcciones de un programa. • Los proceso de tamaño menor o igual al de la partición pueden ser ejecutados. • Útil si son conocidas las necesidades de MEM de los procesos. Problemas • Programas muy grandes: • No partición suficiente. • Diseño mediante overlays.  • Uso ineficiente de MEM: • Programas muy pequeños ocuparán una partición completa. • Problemas si el proceso crece.

  19. 4. Particiones de Memoria 4.2.1 Carga de programas: Particiones estáticas de varios tamaños. • Las particiones pueden tener distinto tamaño. • Depende de las características del sistema. Distribución de las necesidades de los procesos. • Ej.: Particiones de 8, 32, 32, 120, 520Kprocesos con necesidades de 5, 9, 9, 35 y 120.=> utilización del 25.7% • Los procesos pueden ser clasificados según su uso de MEM para acceder a un tamaño de partición.=> no óptimo. • El número de tareas a multiprogramar es fijo (nº de particiones). • Protección: • Registro base => no es posible la reubicación • Registro base y límite => si es posible la reubicación • La información de las particiones está contenida en la PDT (tabla de descripción de particiones).

  20. 4.2.1 Carga de programas: Particiones estáticas .

  21. Gestión de Memoria. 4.2.1 Carga de programas: Particiones estáticas de varios tamaños. • Colas independientes: • Una cola para cada partición o tipo. • Los trabajos se asignan a las colas en la ejecución. • Se reduce la fragmentación interna. • No óptimo en espacio. • Cola única: • Mayor fragmentación. • Todas las particiones en uso. • Necesario un algoritmo de asignación a la partición. • Asignaciones • Los procesos entran en la cola de entrada. • El sistema los asigna en función de la MEM disponible y necesitada. • La cola se ordena según el algoritmo de asignación.

  22. 4. Particiones de Memoria 4.3 Carga de programas: Particiones Dinámicas. • Las particiones se crean durante la ejecución del programa. • El tamaño de las particiones se ajusta a los procesos. • La gestión de las particiones se realiza mediante tablas: • Zonas de MEM asignada. • Zonas de MEM libre. • No existe fragmentación interna (o es pequeña). • Necesaria compactación de MEM: Agrupación de la MEM libre.

  23. 4. Particiones de Memoria 0 312 320 352 384 504 632 888 S.O. S.O. P1 8K P1 8K P2 32K P2 32K P4 24K P3 120 K P3 120 K P5 128K P6 256 K 1 • Nº Tamaño Direcc. Situación • 8k 312 Asign. • 32k 320 Asign. • --- ---- Vacía. • 120k 384 Asign. • Sistema con tres procesos de 8k, 32 k y 120k. • Nº Tamaño Direcc. Situación • 32k 352 Utilizable • 520k 504 Utilizable. • ---- ---- Vacía. • ---- ---- Vacía. • Terminan los procesos P2 y P3. • Llegan P4 (24k), P5 (128k) y P6 (256k). 0 312 320 352 384 504

  24. Nº Tamaño Direcc. Situación1 8k 312 Asign.2 32k 320 Vacía.3 24k 352 Asign.4 8k 376 Vacía.5 120k 384 Vacía.6 128k 504 Asign.7 256k 632 Asign.8 136k 888 Vacía. S.O. P1 8K P2 32K P3 120 K Nº Tamaño Direcc. Situación 32k 320 Usable. 128k 376 Usable. 136k 888 Vacía. 2 0 312 320 352 384 504 632 888 S.O. 0 312 320 352 384 504 632 888 P1 8K 32 K P4 24K P4 24K 128K P5 128K P5 128K P6 256 K P6 256 K

  25. 4. Particiones de Memoria 4.3.2 Swapping • Los procesos para ejecutarse han de estar en MEM. • Multiprogramación: Una planificación rápida necesita varios procesos en MEM. • Los procesos figuran en una cola. El proceso planificado es cargado en MEM. Si es necesario se descarga otro proceso (inactivo, sin I/O pendientes). • Necesidades de MEMs mayores que las MEMs existente. • Los procesos que tardarán en ser usados se guardan en el HD. • El espacio de memoria del proceso se vuelca al HD. • Organización en particiones. • La posición de regreso depende de la capacidad de reubicación del sistema. • En algunos sistemas se asigna un área de swapping durante la creación del proceso. • El tiempo de intercambio es prácticamente el de transferencia, que es proporcional a la MEM intercambiada. • El swapping es muy costoso. • En sistemas UNIX se activa para un umbral de carga.

  26. 4. Particiones de Memoria 4.4 Carga de programas: Segmentación • Generalización de la asignación de particiones variables. • Los bloques de un proceso pueden estar en áreas distintas y no contiguas (segmentos). • Se permite la reubicación dinámica. • Fácil protección y uso compartido. • Direccionamiento: segmento:desplazamiento. • Uso compartido de segmentos. • Ventajas: • No tiene fragmentación interna. • La memoria asignada puede crecer dinámicamente (reg. límite). • Uso compartido de segmentos. • Protección: • Registros base y límite. • Permisos distintos a cada segmento. • Inconvenientes: • Necesidad de compactación. • Tamaño fijo de un segmento (según los sistemas, 64k) • Acceso lento a MEM si el hardware no lo soporta.

  27. 4. Particiones de Memoria 4.4.1 Carga de programas: Segmentación. Proceso crece: • Se usa memoria contigua. • Se desplaza a un hueco suficiente. • Swapping de procesos para liberar espacio. • En caso contrario: Espera o muerte. • Se puede reservar una zona de MEM para el posible crecimiento.

  28. 4. Particiones de Memoria Proceso1 Proceso2 4.5 Carga de programas: Paginación. • División de la MEM en particiones fijas. • Cada proceso se distribuye en varias de estas particiones. • Tamaño de las particiones es pequeño en relación con el tamaño de los procesos. • Los trozos del proceso se denominan páginas y los trozos libres de memoria se denominan marcos. • El sistema operativo mantiene una tabla de páginas para cada proceso:Muestra la posición del marco de cada página del proceso. • La dirección de la memoria consta de un número de página y de un desplazamiento dentro de la página. Tabla páginas. Proc1 Tabla páginas. Proc2

  29. 4. Particiones de Memoria 4.6 Gestión de las Asignaciones: Métodos. • Mapas de bits. • Listas enlazadas. • Tablas de particiones.

  30. 4. Particiones de Memoria A B C D E P/H Inic tamaño Puntero 4.6 Asignaciones: Métodos. Lista enlazada. P, 0, 5 ,0 H, 5, 3 ,0 P, 8, 6 , 0 P, 14, 4, 0 H, 18, 2, 0 P, 20, 6, 0 P, 26,3,0 H, 29, 3, 0 Mapa de Bits 11111000 11111111 11001111 11111000

  31. 4. Particiones de Memoria 4.6 Asignaciones: Métodos. • Mapas de bits. • Cada zona de MEM está representada por un bit: • 1 => ocupada. • 0 => libre. • B.M. Grande => • Consumo. • Particiones pequeñas => poca fragmentación. • B.M. pequeño => • Poco consumo. • Particiones grandes => gran fragmentación.

  32. 4. Particiones de Memoria P/H Inic tamaño Puntero 4.6 Asignaciones: Métodos. • Listas enlazadas. • La MEM se presenta como una lista enlazada de segmentos. • Se indica si es hueco (h) o proceso (p), dirección de inicio, longitud, puntero al siguiente elemento.

  33. 4. Particiones de Memoria 4.6.1 Asignaciones:Aceleración • Mejora en prestaciones si se mantienen listas de huecos y de procesos por separado. • Búsquedas rápidas. • Actualizaciones lentas. • Mayores optimizaciones se obtienen mediante la ordenación de las listas de huecos por tamaño.

  34. 4. Particiones de Memoria 4.7 Asignaciones: Métodos Sistema de colegas (Buddy system) • El espacio entero disponible para la asignación se trata como un solo bloque de tamaño 2U. • Si se hace una solicitud de tamaño s tal que 2U-1 < s <= 2U, entonces el bloque entero se asigna: • En otro caso, el bloque se divide en dos colegas de igual tamaño. • Este proceso continúa hasta que el bloque más pequeño sea mayor o igual que s generándose. • The buddy system • Ventaja: • Al liberar MEM solo se ha de buscar en la lista correspondiente para consolidaciones. • Inconveniente: • Fragmentación interna. Redondeo a 2n.

  35. 4. Particiones de Memoria 4.7 Asignaciones: Métodos. Sistema de colegas (Buddy system)

  36. 4. Particiones de Memoria 128k 256k 512k 1MB P1-70k 4.7 Asignaciones: Métodos. Sistema de colegas (Buddy system) • The buddy system: • Gestión de las zonas de MEM y huecos en potencias de 2. • Listas separadas según tamaño: 1,2, 4, 8, 186, 32, 64 , etc. (1MB => 21 listas). • Inicio: todas las listas vacías (excepto la total). • Ej. Sistema con 1MB. • Entrada de un proceso 70k => 27 = 128k • Se ha de crear una partición del tamaño.

  37. 4. Particiones de Memoria P2-35k 128k 1MB 512k 256k 128k 256k 512k 1MB P3-80k P2-35k P1-70k P1-70k 4.7 Asignaciones: Métodos. Sistema de colegas (Buddy system) • The buddy system. • Llega P2 de 35k => 26 = 64k. • Llega P3 de 80k => 27 = 128k

  38. 4. Particiones de Memoria 128k 1MB 512k 256k P3-80k P2-35k P4-60k 4.7 Asignaciones: Métodos. Sistema de colegas (Buddy system) • The Buddy system. • Se consolidad particiones potencia de 2. • P1 sale: Libera todo el bloque de 128k. (lista de bloques de 128k). • P4 de 60k llega. => 26=64k.

  39. 4. Particiones de Memoria 4.7 Asignaciones: Métodos. Sistema de colegas (Buddy system) • The Buddy system. • Se consolidan particiones potencia de 2. • Sale P2. 256k 128k 1MB 512k P3-80k P3-80k P4-60k P4-60k

  40. 1 bloque de 1 megabyte Solicitud de 100K Solicitud de 240K Solicitud de 64K Solicitud de 256K Liberación de B Liberación de A Solicitud de 75K Liberación de C Liberación de E Liberación de D Figura 7.6. Ejemplo del sistema de colegas.

  41. 4. Particiones de Memoria 4.7 Asignaciones: Métodos. Sistema de colegas (Buddy system)

  42. 4. Particiones de Memoria 4.8 Análisis de la gestión. • Nº procesos = 2 * Nº huecos. • Asimetria por fundir huecos adyacentes. • F: % mem en huecos • S : tamaño medio de los procesos. • kS : tamaño medio de los huecos. • M: mem total. • Nº huecos => n/2 • Mem en h => (n/2)ks=m-ns • Fracción: f = (MEM Proc/ m) = (nks/2m) • F = k/(k+2). (k cercano a ½ => 20% de uso).

  43. 5. Algoritmos de Asignaciones 5.1 Algoritmos de Asignaciones. • First fit. • Se busca cualquier hueco en el que quepa el proceso. • Por cada asignación se crea una entrada de proceso y otra de hueco. • Rápido. • Next fit. • Si el flujo de llegada de procesos es uniforme todos con las mismas necesidades de MEM. • Comienza donde se realizó la última asignación. • Best fit. • Busca en toda la lista el hueco que mejor se adapta a las necesidades (más pequeño de los posibles). • Lento (busca siempre toda la lista). • Desaprovecha MEM por dejar huecos muy pequeños. • Worst fit. • Busca el espacio vacío más grande. • El hueco sobrante es grande: utilizable.

  44. 8M 8M 12M 12M Primer ajuste 22M 6M Mejor ajuste Último bloque asignado (14K) 18M 2M 8M 8M 6M 6M Bloque asignado 14M Bloque libre 14M Siguiente ajuste 36M 20M (b) Después (a) Antes Figura 7.5. Ejemplo de una configuración de memoria antes y después de asignar un bloque de 16 Mbytes.

  45. 5. Algoritmos de Asignaciones 5.2 Algoritmos de Asignaciones: Aceleración. • Listas separadas: • Los algoritmos pueden ser acelerados mediante listas separadas de huecos y procesos. • Los alg. Sólo buscan en la lista de huecos. • Actualizaciones de las listas son complejas. • Ordenación según el tamaño. • Mejora en el Best fit. • Quick fit: • Listas separadas para los tamaños más usados. • Las búsquedas son rápidas. • Actualizaciones lentas.

  46. Memoria Virtual Tema 6

  47. 6. Memoria Virtual: Definición y conceptos • Conceptos de MV [Fotheringhan 1961] • Principio de Cercanía. • Working-Set • Fallo de página

  48. 6. Memoria Virtual: Definición y conceptos • Fotheringham, 1961: “El programa (pila, datos, programa) puede ser mayor que la MEM. El S.O. mantiene las partes en uso del programa en MEM y el resto en el HD. Se tiene una memoria virtual.” • Posible gracias al Principio de Cercanía: Las referencias a los datos y al programa dentro de un proceso tienden a agruparse. • Se pueden mantener más procesos en la memoria principal: • Se cargan sólo algunos fragmentos de un proceso particular. • Con tantos procesos en la memoria principal es muy probable que uno de los procesos esté en estado Listo en un instante determinado. • Es posible que un proceso sea más grande que toda la memoria principal. • El sistema operativo comienza trayendo sólo unos pocos fragmentos del programa. • Working set: El conjunto residente es la parte de un proceso que está realmente en la memoria principal.

  49. 6. Memoria Virtual: Definición y conceptos • Si el procesador encuentra una dirección lógica que no está en la memoria principal: • Genera una interrupción que indica un fallo de acceso a la memoria. • El sistema operativo pone al proceso interrumpido en estado Bloqueado. • La solución tradicional para programas mayores que la MEM física. • Overlays: • Distribución del programa en módulos cargados ségún necesidades. • Control: El programador. • Fotheringham, 1961: “El programa (pila, datos, programa) puede ser mayor que la MEM. El S.O. mantiene las partes en uso del programa en MEM y el resto en el HD. Se tiene una memoria virtual.” • El programa se ejecuta hasta llegar a zona de programa no presente en MEM. • Fallo de página para cargar la página. • La CPU ha de poder retomar la ejecución: • Transacciones. • Anticipo de fallos.

  50. 7. Memoria Virtual: Soporte Soportes de la memoria virtual. • Tiene que existir un soporte de hardware para la paginación y la segmentación. • El sistema operativo debe incluir un software para gestionar el movimiento de páginas o segmentos entre memoria secundaria y memoria principal. • Memoria virtual: • Espacio de direcciones >> MEM. • El espacio virtual dividido en páginas (512 B< página < 8 KB). • Cada página se corresponde con un marco de página. • Tamaño marco = tamaño página. • Transferencias MEM  disco son del tamaño de la página.

More Related