1 / 60

Gestión de Memoria

Gestión de Memoria. Sebastián Sánchez Prieto. Objetivo. Mostrar la evolución de los distintos esquemas de gestión de memoria Máquina desnuda Monitor monolítico o residente Asignación de memoria particionada contigua Asignación de memoria particionada no contigua Memoria virtual.

trina
Download Presentation

Gestión de 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. Gestión de Memoria Sebastián Sánchez Prieto

  2. Objetivo • Mostrar la evolución de los distintos esquemas de gestión de memoria • Máquina desnuda • Monitor monolítico o residente • Asignación de memoria particionada contigua • Asignación de memoria particionada no contigua • Memoria virtual

  3. Máquina desnuda • Es la manera más sencilla de gestionar la memoria: no existe ningún gestor • El usuario controla toda la memoria • El sistema no porporciona ningún servicio Memoria Usuario

  4. Monitor monolítico o residente • Protección: MEMORIA MONITOR Dirección límite CPU Sí Dirección>Límite No Error de direccionamiento

  5. Memoria particionada contigua • Se asigna una partición de memoria a cada proceso • Protección: registros límite o base-límite • Fragmentación externa: compactación MFT MVT Sistema multiprogramado con tamaño y número de particiones fijo Sistema multiprogramado con tamaño y número de particiones variable Fragmentación interna y externa Fragmentación externa Desventaja en la asignación dinámica de memoria Ventaja en la asignación dinámica de memoria Problema: intercambio de trabajos con E/S pendiente Requiere algoritmos de gestión de memoria más complejos

  6. <= >= Registros límite • No soporta reubicación dinámica MEMORIA Límite inferior Límite inferior CPU Programa X Sí Sí No No Error de direccionamiento

  7. Registros base-límite • Soporta reubicación dinámica MEMORIA Límite Base CPU Sí Programa X < + Límite No Error de direccionamiento

  8. Tabla de descripción de particiones 0K 100K 400K 500K 750K 900K 1000K Sistema operativo Pi Pj Pk Número Base Tamaño Estado de la de la de la de la partición partición partición partición 0K 100K ASIGNADA 100K 300K LIBRE 400K 100K ASIGNADA 500K 250K ASIGNADA 700K 150K ASIGNADA 900K 100K LIBRE 0 1 2 3 4 5

  9. Memoria particionada no contigua • Esquemas ya vistos: • Segmentación • Paginación • Segmentación paginada • Paginación segmentada

  10. Memoria virtual: recordatorio • Problema: ejecutar programas de tamaño mayor que la memoria física disponible • Mayor grado de multiprogramación • Transparencia • Soluciones • Overlays: Control directo por parte del programador • Memoria virtual: Control realizado por el S.O. • La memoria virtual (MV) se basa en el principio de localidad de las referencias. • Mantener en memoria principal sólo la información que se necesite en cada momento • Reducción de la E/S • Actúa como una caché de objetos • Archivos, swap, dispositivos

  11. Memoria virtual: recordatorio • Implementación: basada tanto en mecanismos de paginación o segmentación • Problemática: • Detectar si la información referenciada está en memoria principal • Si no lo está, localización en disco • Políticas de ubicación y asignación de páginas • Habitualmente se usa paginación: • Bloques de tamaño fijo, las transferencias desde y hacia el disco son más simples • Políticas de ubicación son más simples: todos los bloques son iguales • Soporte Hardware requerido: • Tablas de páginas • Bits de validez, referencia y modificación • Instrucciones interrumpibles • Almacenamiento secundario

  12. Lapáginaestá enmemoriaauxiliar S. O. 3 Programa Memoria secundaria Referencia 2 1 Excepción LOAD M 0 6 Memoria principal Reiniciar la instr. Tabla de páginas 5 Cargar la página que falla Marco libre 4 Actualizar la tabla de páginas Paginación: resumen

  13. Hiperpaginación (Thrashing) • Hiperpaginación: Un proceso genera fallos de página frecuentemente y el sistema pasa la mayor parte del tiempo paginando Thrashing Utilización de la CPU Grado de multiprogramación

  14. Hiperpaginación (Thrashing) • Posible causa de la hiperpaginación: Un proceso necesita más marcos, su tasa de fallos de página aumenta y se produce la siguiente reacción en cadena: • Disminuye el uso de la CPU • El S.O. decide aumentar el grado de multiprogramación • La tasa de fallos de página se incrementa más • Soluciones: • Reducir la multiprogramación o emplear un algoritmo de reemplazo local o por prioridades • Prevenir la hiperpaginación

  15. Modelo del conjunto de trabajo • Se basa en la localidad • Formado por las páginas recientemente accedidas • Las páginas en uso se encuentran en el CdT • El conjunto de trabajo varía con el tiempo Número de páginas del almacenamiento primario asignadas al proceso Tiempo

  16. ¿Cómo determinar el CdT? • El verdadero CdT lo forman las páginas que deben estar en el almacenamiento primario para la ejecución eficaz del proceso • W = tamaño de la ventana del CdT • ¿Cómo afecta el tamaño de W? w Tiempo de ejecución de un proceso t-w t Las páginas referenciadas por el proceso durante este intervalo constituye el conjunto de trabajos W(t,w), del proceso

  17. Frecuencia de fallos de página • La estrategia de la PFF es un enfoque más directo para evitar el vapuleo • Se establece un límite superior e inferior para la PFF y así evitar el thrashing Incrementar el número de marcos límite superior Frecuencia de fallos de página límite inferior Decrementar el número de marcos Número de marcos

  18. Memoria virtual: algoritmos • Política de asignación: ¿Qué cantidad de memoria real se asigna a un proceso activo? • Política de ubicación: ¿Dónde puede ubicarse un bloque en memoria principal? • Política de búsqueda: ¿Cuándo y qué bloques traer del almacenamiento secundario a MP? • Paginación anticipada • Paginación por demanda • Política de reemplazo: ¿Qué bloque debería sustituirse al traer a memoria principal un nuevo bloque si no hay memoria libre?

  19. Políticas de asignación • El mínimo número de marcos que debe asignarse a un proceso está definido por la arquitectura • Ámbito del reemplazo de páginas • Tipos de algoritmos de asignación: • Asignación equitativa • Asignación proporcional • Asignación prioritaria Ventajas Las páginas de un proceso en memoria dependen sólo de su comportamiento Mejor aprovechamiento de la memoria Reemplazo local Reemplazo global

  20. Políticas de ubicación • Métodos utilizados para contabilizar la memoria utilizada y libre: • Mapa de bits • Listas • Políticas de ubicación: • En paginación: • “Indiferente” • En segmentación First fit: el primero que sirva Next fit: el siguiente que sirva Best fit: el que mejor se adapte Worst fit: el que peor se adapte Sistema Buddy

  21. Sistema Buddy Bloques libres Inicial P1 pide 70 P2 pide 35 P3 pide 80 Devuelve P1 P4 pide 60 Devuelve P2 Devuelve P4 Devuelve P3 1 3 3 3 4 3 4 3 1 1024 Kb P1 512 128 256 P1 P2 64 512 256 P1 64 P3 128 512 P2 128 P2 64 128 512 P3 128 P2 P3 128 512 P4 128 64 P4 P3 128 512 256 P3 128 512 1024 Kb

  22. Paginación por demanda • El camino que toma un programa cuando se está ejecutando no es predecible • Se cargan las páginas a medida que se necesitan • Ventajas: • Las páginas traídas son las que realmente se necesitan • La sobrecarga que implica la decisión de qué páginas traer al almacenamiento principal es mínima

  23. Paginación anticipada (prepaginación) • Trata de evitar los retardos por fallos de página • Se cargan un cierto número de páginas en base a una predicción • Ventajas: • Si la predicción es buena, el tiempo de ejecución de los procesos se reduce considerablemente • Con la reducción de costes del hardware, las consecuencias de una mala predicción son menos graves

  24. Reemplazo de páginas • Es necesario cuando se produce un fallo de página y está toda la memoria llena • Tasa de fallos  uno por cada 106 – 2 x 107 accesos • Si hay un fallo de página (miss) hay que: • Encontrar la página demandada en memoria auxiliar • Encontrar un marco libre o liberarlo usando un algoritmo de reemplazo de páginas • Cargar la página en memoria principal (page in) • Transferir el control al proceso de usuario

  25. Algoritmos de reemplazo de páginas • Se pretende utilizar el algoritmo que seleccione páginas que causen la frecuencia de fallos más baja • Criterios para valorar la calidad de los algoritmos de sustitución: • Baja sobrecarga • Sin ajustes (“No tuning”) • Aproximación al LRU (menos usada recientemente)

  26. Cadenas de referencia • Para evaluar la calidad de los algoritmos de sustitución se consideran: • Cadenas de referencia: listas de referencias a páginas • Número de marcos de página de que se dispone • Obtención de las cadenas de referencia: • Artificialmente, de forma pseudoaleatoria • Grabando una traza de ejecución

  27. Cadenas de referencia • Ejemplo: 0100, 0432, 0101, 0612, 0102, 0103, 0104, 0101, 0611, 0102, 0103, 0104 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105 • Con páginas de 100h palabras • Cadena de referencias: • sólo nos interesa el número de página • si se referencia una página p, las referencias inmediatamente • sucesivas a esa página nunca causarán fallo de página • 1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1 • Con tres marcos habrá 3 fallos y con 1 marco 11 fallos • si el número de marcos aumenta, en general, el número de fallos de página disminuye

  28. Algoritmos de reemplazo de páginas • Existen diferentes algoritmos, entre ellos: • Algoritmo óptimo • Algoritmo FIFO • Algoritmo LRU • Algoritmos de aproximación al LRU

  29. Algoritmo óptimo • Se reemplaza la página que va a tardar más tiempo en ser usada • La tasa de fallos es la más baja posible • Algoritmo imposible de realizar • Criterio comparativo

  30. 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 Marcos de página 2 2 2 7 7 7 7 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0 0 0 4 0 4 4 0 4 0 0 0 0 3 3 1 1 1 1 3 1 3 3 3 3 3 3 1 1 7 1 0 4 3 8 fallos de página Algoritmo óptimo • Ejemplo: Cadena de referencia

  31. 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 Marcos de página 0 4 0 0 7 7 7 2 7 2 2 2 2 4 4 4 0 0 0 2 1 0 0 0 0 3 0 3 3 3 2 2 2 2 2 1 1 0 3 3 2 3 1 1 1 1 1 0 0 0 3 3 3 2 1 0 7 0 2 3 4 2 3 12 fallos de página Algoritmo FIFO • Sustituye la página que lleva más tiempo en memoria • Ejemplo: Cadena de referencia

  32. Algoritmo FIFO • Algoritmo sencillo de entender e implementar • Inconvenientes: • Rendimiento del algoritmo pobre. Páginas frecuentemente usadas pueden ser sustituidas • Se puede producir la Anomalía de Belady: aumento del número de fallos de página al aumentar el número de marcos

  33. 1 2 3 4 1 2 51 2 3 4 5 4 5 5 5 1 1 1 4 5 1 5 5 4 1 1 2 2 2 2 1 1 1 1 1 3 3 3 3 3 3 3 2 2 2 2 2 4 2 4 1 4 2 3 1 2 Con 3 marcos, 9 fallos de página 4 5 5 5 1 1 1 4 1 4 4 5 5 5 1 2 2 2 2 1 1 1 1 3 1 3 3 1 5 4 4 1 1 1 1 1 1 5 5 5 5 5 2 2 2 2 2 2 1 2 1 1 1 3 2 4 3 3 3 3 2 2 2 2 2 4 3 3 3 3 3 3 3 2 2 2 2 4 4 4 4 4 4 4 3 3 3 4 1 1 2 3 2 4 5 1 1 2 3 Con 4 marcos, 10 fallos de página Con 3 marcos, 9 fallos de págna Anomalía de Belady • Ejemplo: Con 3 y 4 marcos de página 1 2 3 4 1 2 5 1 2 3 4 5

  34. Algoritmo LRU (Least Recently Used) • Algoritmo de aproximación al reemplazo óptimo • Basado en utilizar el pasado reciente como una predicción del futuro más próximo • Sustituye la página menos usada en el pasado inmediato • Carece de la anomalía de Belady • La implementación requiere de hardware adicional: • Campo en las entradas de la tabla de páginas • Pila de las páginas en memoria

  35. Cadena de referencia 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 Marcos de página 4 0 0 1 7 7 7 2 7 2 2 2 4 2 4 4 0 0 1 1 3 3 3 0 0 0 0 0 0 0 0 0 3 3 3 3 0 3 2 2 2 2 1 1 1 1 3 3 3 2 2 2 2 7 1 2 3 0 4 0 3 11 fallos de página Algoritmo LRU (Least Recently Used) • ¿Podría comportarse erróneamente el algoritmo con un bucle que ocupa varias páginas? • Ejemplo:

  36. Algoritmos de aproximación al LRU • Existen diferentes algoritmos, entre ellos: • Algoritmo del reloj global • Algoritmo FIFO con segunda oportunidad • Algoritmo NFU

  37. Páginas 9 34 20 2 8 5 16 1 7 10 Algoritmo del reloj global • Se colocan todas las páginas que pueden ser sustituidas en una lista circular • Un proceso de sistema borra los bits de referencia cada cierto tiempo utilizando un puntero giratorio • Si en la siguiente vuelta el bit sigue desactivado, la página en cuestión es una buena candidata a ser sustituida

  38. Algoritmo FIFO con segunda oportunidad • Combina sencillez y buen rendimiento • Emplea un bit de referencia asociado a cada página • Pasos del algoritmo: • Se elige una página con criterio FIFO y se examina su bit de referencia • Si el bit de referencia está activo, se desactiva y se trata la página como si se acabara de llegar a memoria. Volver a 1 • Si el bit de referencia está desactivado, se sustituye la página • Generalmente se implementa mediante una cola FIFO circular con las páginas cargadas

  39. R 0 0 1 R 0 1 1 R 1 0 0 R 0 0 0 7 7 7 7 2 0 0 0 0 0 1 1 1 1 1 Algoritmo FIFO con segunda oportunidad • Ejemplo: Cadena de referencia 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 Marcos de página 3 3 2 4 4 4 4 3 3 0 7 7 7 7 2 2 2 2 1 1 0 0 2 2 2 2 1 0 0 0 0 0 0 0 3 3 3 3 3 0 2 2 1 1 1 1 0 0 3 1 2 0 3 2 7 4 R 1 1 1

  40. 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 Marcos de página 3 3 2 4 4 4 4 3 3 0 7 7 7 7 2 2 2 2 1 1 0 0 2 2 2 2 1 0 0 0 0 0 0 0 3 3 3 3 3 0 2 2 1 1 1 1 0 0 3 1 2 0 3 2 7 4 R 1 1 1 12 fallos de página 0 1 2 Algoritmo FIFO con segunda oportunidad • Ejemplo: Cadena de referencia

  41. Algoritmo NFU(Not Frequently Used) • Algoritmo que simula por software el algoritmo LRU • Utiliza un contador asociado a cada página que se incrementa en cada interrupción de reloj de acuerdo con el valor del bit de referencia • En cada pulso de reloj se borra el valor del bit de referencia • Si hay un fallo de página se elige la página con el valor mínimo del contador para su sustitución

  42. Cadena de referencia 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 3 3 3 3 7 7 7 2 7 2 2 3 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 1 1 1 1 1 4 2 2 2 2 2 1 2 1 7 1 4 2 1ª interrupción de reloj 2ª interrupción de reloj 3ª interrupción de reloj 4ª interrupción de reloj 0 1 2 3 4 5 6 7 Interrupción R 1 1 0 0 0 0 0 1 1ª 2ª C 0 0 0 0 0 0 0 0 R R 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 R 0 0 0 0 0 0 0 0 C C C 2 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 Algoritmo NFU(Not Frequently Used) • Ejemplo: 0 1 2 3 4 5 6 7

  43. 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 3 3 3 3 7 7 7 7 2 2 2 3 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 1 1 1 1 1 4 2 2 2 2 2 1 2 1 7 1 4 2 1ª interrupción de reloj 2ª interrupción de reloj 3ª interrupción de reloj 4ª interrupción de reloj 9 fallos de página 0 1 2 3 4 5 6 7 1 0 1 0 0 0 0 1 1 0 1 0 0 0 R 4 1 1 0 3 1 0 0 0 2 1 C Algoritmo NFU(Not Frequently Used) • Ejemplo: Cadena de referencia Estado final

  44. Algoritmo NFU (Not Frequently Used) • Problema: ¿qué sucede si una página se usó mucho en la fase inicial de un proceso y luego no se vuelve a utilizar? • Solución: mecanismos que permitan envejecimiento de los contadores • Desplazar los contadores 1 bit a la derecha antes de añadir el bit de referencia • Añadir el bit de referencia al bit del extremo izquierdo del contador

  45. Caso de estudio: Mach 3.0 • Posee un algoritmo FIFO con segunda oportunidad • Utiliza tres colas de páginas: • Cola de páginas libres • Cola de páginas activas • Colas de páginas inactivas • Un demonio denominado “pageout” mueve páginas: • Desde la cola de páginas activas a la cola de páginas inactivas • Desde la cola de páginas inactivas a la de páginas libres

  46. Cola libre Localización Pageout Scan Pageout Scan Cola activa Cola inactiva Referencia Caso de estudio: Mach 3.0 • Las colas activa e inactiva son FIFO • Las páginas que están en la cola inactiva y son referenciadas, se pasan a la cola activa

  47. Caso de estudio: Mach 3.0 • Código base de “pageout”: if (free_queue_pages < vm_page_free_min) { while ((free_queue_pages < vm_page_free_target) && (Inactive_queue)) { move pages from inactive queue to free queue } if (inactive_queue_pages < vm_page_inactive_target) { move pages from active queue to inactive queue } } else sleep

  48. #Página #Página #Página Caso de estudio: Linux • Niveles de tablas en Linux Nivel 1Nivel2Nivel3Desplazamiento Página física Tabla de páginas Tabla de páginas Tabla de páginas PGD

  49. Caso de estudio: Linux Memoria virtual del proceso vm_area_struct task_struct vm_end vm_start vm_flags mm vm_inode vm_ops Datos mm_struct open ( ) vm_next close ( ) count vm_area_struct pgd vm_end swapout () vm_start swapin ( ) mmap vm_flags vm_inode Código Operaciones de memoria virtual vm_ops vm_next

  50. Caso de estudio: Linux Memoria física free_area mem_map_t mem_map_t Libre Libre Libre Libre Libre Marco 0 4 count age map_nr= 4 map count age map_nr= 70 Marco 1 3 Marco 2 2 Marco 3 Marco 4 1 Marco 5 mem_map_t 0 Marco 6 count age map_nr= 0 Marco 7 Marco 8

More Related