SO Sistemas operativos Objetivos 1.- Introducir los conceptos y los problemas básicos de la gestión de memoria: Gestión de la memoria – Memoria lógica vs. memoria física – Asignación de memoria a procesos 2.- Estudiar las técnicas básicas de asignación dispersa: – Paginación. – Segmentación. – Combinación de técnicas Equipo “Sistemas Operativos DISCA/DSIC” Universidad Politécnica de Valencia Segmentación Paginada Paginación multinivel. 3.- Entender la gestión de memoria virtual: problemas a resolver, implementación y efectos sobre el rendimiento del sistema. 2 TEMA 3.- Gestión de la memoria Indice y bibliografía Contenidos Índice 1.1.- Conceptos básicos – 1. Conceptos básicos – 2. Gestión de memoria – 3. Asignación contigua 2.- Gestión de memoria – 4. Asignación dispersa 3.- Asignación contigua – 5. Memoria virtual Memoria física vs. Memoria lógica La Unidad de Manejo de Memoria (MMU) 4.- Asignación dispersa Bibliografía 5.- Memoria virtual – A. Silberschatz, P.B. Galvin – Sistemas Operativos. Conceptos Fundamentales. 5ª ed. Capítulo 8: Apartados 8.1 (excepto 8.1.4), 8.2, 8.3, 8.4 (excepto 8.4.1), 8.5 (excepto 8.5.4, 8.5.5), 8.6 y 8.7 (excepto 8.7.1 y 8.7.2) Capítulo 9: Apartados 9.1, 9.2, 9.3, 9.4, 9.5 (excepto 9.5.4.3), 9.6 (excepto 9.6.1) y 9.7 . TEMA 3.- Gestión de la memoria 3 TEMA 3.- Gestión de la memoria 4 Memoria física vs. memoria lógica Memoria física vs. memoria lógica (8.2) Memoria lógica de un proceso P1 P1 0000 P2 0000 o oces ción a pr Cad su direc tiene 0000 a lógic código (8.2) Memoria lógica de un proceso P3 0000 0000 código código código datos datos datos datos pila pila pila pila 5 1.- Conceptos básicos Memoria física vs. memoria lógica 6 1.- Conceptos básicos La Unidad de Manejo de Memoria (MMU) Un di a ú fís recc nic ica ió a 00 n 00 0000 P1 ceso a pro Cad su e tien ción direc 0000 a lógic P2 0000 código P3 0000 código Memoria Física CPU o Direcciones lógicas 0000 Memoria Principal 0000 código MMU Memoria datos datos datos pila pila pila ??? Principal Mapa de memoria del proceso en ejecución Direcciones físicas FFFF FFFF Direcciones físicas Direcciones físicas Bus 1.- Conceptos básicos 7 1.- Conceptos básicos 8 Contenidos El problema de gestión de la memoria 1.- Conceptos básicos 2.2.- Gestión de memoria Todo sistema operativo debe ofrecer alguna solución para estos problemas: – Reubicación El problema de gestión de la memoria El problema de la reubicación El problema de la escasez de memoria El problema de la asignación – Escasez – Protección – Asignación 3.- Asignación contigua Memoria física P1 P1 0000 Memoria P2 lógica P2 Memoria P1 0000 4.- Asignación dispersa 5.- Memoria virtual Pn lógica Pn 0000 Memoria lógica 10 9 El problema de la reubicación Reubicación en tiempo de ejecución: la MMU El problema de escasez de la memoria (8.1.1) – Programa reubicable es aquel que puede ejecutarse en cualquier segmento de memoria física. – Aumentar el grado de multiprogramación – Ejemplo: MMU con registro base. ad es c o Pr or dirección lógica 2000 + dirección física 7000 Técnicas para solucionarlo: – Intercambios (Swapping) MEMORIA MMU (9.1) – Los procesos tienen una necesidad mayor de memoria. – Para permitir la reubicación en tiempo de ejecución es necesario un Hardware específico MMU CPU ¿Por qué? – Memoria virtual – Bibliotecas dinámicas mov R1, R2 7000 5000 Registro base 11 12 El problema de escasez de la memoria El método de intercambios (swapping) MEMORIA (8.3) La técnica de memoria virtual (9.1) Disco memoria secundaria Memoria física memoria primaria Memoria virtual memoria lógica DISCO swap out Proceso 1 El problema de escasez de la memoria P2 Proceso 1 Proceso 2 Intercambio con disco Proceso 2 swap in Falta de espacio 14 13 El problema de escasez de la memoria Enlace estático con bibliotecas programa fuente Compilador #include <stdio.h> #include <stdlib.h> #define LINSIZ 40 char *getline(char *); main() { double reg = 0.0; char line[LINSIZ]; while (getline(line) != NULL) { ............. Enlazado librerías estáticas programa objeto nombre.c nombre.o 021402 234123 278761 546781 345687 ............. Bibliotecas estáticas del sistema El problema de escasez de la memoria La librería estática se “copia” en nuestro programa cuando lo compilamos Lib2.a 042302 333122 228764 556783 445686 ............. Lib1.a 024302 234223 678771 447781 345685 ............ programa ejecutable nombre 021402 Bibliotecas 234123 estáticas 278761 del sistema 546781 345687 ............. Lib1.a 024302 234223 678771 447781 345685 ............. Lib2.a 042302 333122 228764 556783 445686 ............. 15 Enlace estático con bibliotecas programa ejecutable Cargador nombre Carga el ejecutable “nombre” en memoria para convertirse en proceso Bibliotecas estáticas del sistema Lib1.a 024302 234223 678771 447781 345685 ............. 021402 234123 278761 546781 345687 ............. Lib2.a 042302 333122 228764 556783 445686 ............. Memoria Principal 010010010011 110010100110 111100111001 100011110101 111100011100 010101001101 001111001010 16 El problema de escasez de la memoria Bibliotecas dinámicas P1 El problema de escasez de la memoria (8.1.3) Memoria física Memoria lógica (8.1.3) Memoria física T. func. bib. printf P1 P1 0000 Bibliotecas dinámicas libX11 (3) Rutina cargador (2) libX11.so P1 libX11.so P2 Memoria lógica (1) 0000 call printf P2 Sistema Stub printf libX11 operativo 18 17 El problema de escasez de la memoria Bibliotecas dinámicas (8.1.3) (3) Rutina cargador (2) (1) Memoria física T. func. bib. printf P1 El problema de escasez de la memoria (4) (8.1.3) Memoria física T. func. bib. P1 printf P1 (6) P1 Rutina cargador (5) libX11.so libX11.so call printf Stub printf Bibliotecas dinámicas call printf Sistema libX11.so Stub printf operativo Sistema operativo 19 20 Asignación de la memoria Asignación de la memoria Asignación contigua y asignación dispersa P1 Memoria física memoria lógica 0000 P1 memoria lógica 0000 P1 Memoria física – Asignación contigua (8.4) : P1 P2 P2 P2 memoria lógica P2 0000 memoria lógica Métodos de asignación Particiones fijas (8.4.2). Particiones variables (8.4.2) – Asignación dispersa: P1 0000 Paginación (8.5). Segmentación (8.6). P2 22 21 Contenidos Método de múltiples particiones fijas 1.- Conceptos básicos 2.- Gestión de memoria 3.3.- Asignación contigua Memoria dividida en particiones de diferente tamaño Cola única / múltiples colas Problema: Fragmentación interna sistema Método de múltiples particiones fijas Método de múltiples particiones variables COLA DE PROCESOS 4.- Asignación dispersa P1 100 K 5.- Memoria virtual P4 necesita un hueco que ha sido P2 100 K ocupado por un proceso que P3 100 K desperdicia gran parte de su espacio. operativo 100 K 400 K P4 500 K P5 400 K 600 K TEMA 3.- Gestión de la memoria 23 24 Método de múltiples particiones variables Método de múltiples particiones variables P1 COLA DE PROCESOS P1 Algoritmos de asignación de huecos – El primer ajuste P1 – El mejor ajuste P1 600 K P4 P2 – El peor ajuste P4 P2 1000 K Problema: Fragmentación externa P1 – Solución: Compactación P3 300 K P3 P4 700 K P3 P3 P1 P3 P4 P1 600 K P5 700 K P2 1000 K Asignación P1, P2,P3 P2 acaba Asignación P4 P3 300 K P1 acaba coste: 1900 P1 P4 P3 P3 P3 P4 coste: 300 26 25 Contenidos La paginación Concepto 1.- Conceptos básicos Dividir el espacio de direcciones en fragmentos de longitud FIJA. 2.- Gestión de memoria 3.- Asignación contigua 4.4.- Asignación dispersa (8.5) básico Páginas. Marcos. P2 memoria física memoria lógica Paginación (8.5) Segmentación (8.6) Técnicas combinadas – Segmentación paginada (8.7) – Paginación multinivel (8.5.3) 5.- Memoria virtual páginas marcos TEMA 3.- Gestión de la memoria 27 28 La paginación La paginación memoria lógica Estructura de una dirección lógica La tabla de páginas – Descriptor de página : 0 1 num. de página p m-1 desplazamiento d k-1 m bits m-k bits d Número de marco físico Bit de validez Bits de protección (rwx) Bit de modificado Tabla de páginas p Descriptor de página 0 número de marco ... k bits otros bit bits bit validez protección modificado ... 2m-k-1 N=2k 30 29 La paginación La paginación Traducción de direcciones desplazamiento d num. de página p CPU Dirección lógica Un ejemplo 0 – Espacio de direcciones físicas: 32 bytes 0 0 p d.f. = f*N + d 4 P2 8 desplazamiento d n bits 4 Dirección física d Marco 1 – Tamaño de página: 4 bytes memoria lógica memoria física Tabla de páginas num. de marco f Marco 0 – Espacio de direcciones lógicas: 16 bytes m bits f memoria física f 12 a b c d e f g h m n . . 8 Marco 2 Tabla de páginas 5 2 6 - Marco 3 16 Marco 4 20 Marco 5 24 Marco 6 Marco 7 N=2k 31 12 e f g h 28 a b c d m n . . 32 La paginación La paginación (8.5.2.2) Protección memoria lógica Tabla de páginas Página 0 Marco bits acc. bit val 6143 Marco 1 Marco 2 Página 0 Marco 3 Página 1 Marco 4 Página 2 r v 3 r v 4 r v 7 r v Página 4 8 w v Marco 7 Página 3 Página 5 9 w v Marco 8 Página 4 - r i Marco 9 - r i Página 5 10239 Página 2 Página 3 Análisis – Ventajas 2 Página 1 P1 Marco 0 – Un ejemplo 0000 0000 memoria física No aparece fragmentación externa . Facilita la reubicación. Proporciona protección. – Inconvenientes Marco 5 Fragmentación interna. – Tamaños de página Marco 6 Grandes mucha fragmentación interna. Pequeños tablas de página muy grandes. 34 33 La paginación Implementación de la tabla de páginas La paginación (8.5.2) Tabla de páginas en memoria – Registros de la MMU Memoria física Dirección lógica – Memoria CPU – TLB PTLR num. de página desplazamiento p d NO f 35 ¿ PTLR > p ? SI + PTBR MMU > r Marco bits acc. bit val f r v ... ... … v marco de página desplazamiento f d 36 La paginación Tabla de páginas en registros asociativos: TLB: Translation Look-aside Buffers La paginación (8.5.2) Dirección lógica Los registros contienen: – clave. – contenido. Memoria física Tabla de páginas con TLB num. de página desplazamiento p d CPU La búsqueda se realiza por la clave en paralelo para todo el conjunto de registros asociativos Marco bits acc. clave contenido bit val NO f r v ... ... … SI MMU marco de página desplazamiento f d 38 37 Contenidos La segmentación Concepto 1.- Conceptos básicos 2.- Gestión de memoria Dividir el espacio de direcciones en fragmentos de longitud VARIABLE. 3.- Asignación contigua – Tipos de Segmento 4.4.- Asignación dispersa Paginación (8.5) Segmentación (8.6) Técnicas combinadas Código Datos Pila –Propiedades de los segmentos – Segmentación paginada (8.7) – Paginación multinivel (8.5.3) 5.- Memoria virtual (8.6) de segmentación –Definición Memoria lógica Datos SEGMENT : datox dw xx datoy dw yy : Datos ENDS Codigo SEGMENT : Codigo ENDS Pila SEGMENT dw 500 Pila ENDS TEMA 3.- Gestión de la memoria 39 Memoria física Codigo Datos Pila 40 La segmentación La segmentación Estructura de una dirección lógica num. de segmento s La tabla de segmentos – Contiene un descriptor por cada segmento. – Cada descriptor de segmento contiene, al menos: desplazamiento d m bits Tabla de segmentos Base del segmento: Límite: Otros, ... Tabla de segmentos base límite Descriptor de segmento etc. base límite otras Dirección física n bits La segmentación La segmentación Traducción de direcciones num. de segmento s 42 41 desplazamiento d Dirección lógica (8.6.2) CPU Memoria física Ejemplo de segmentación subrutina Tabla de segmentos s base límite sqrt Datos + SI programa principal Pila Segmento 2 Dirección física 43 0 Memoria Memoria virtual virtual 1400 Segmento 0 2400 Segmento 3 Tabla de segmentos tabla de símbolos Segmento 1 Segmento 4 < NO pila Segmento 0 Codigo Memoria Memoria física física 0 1 2 3 4 base límite 1400 6300 4300 3200 4700 1000 400 400 1100 1000 3200 Segmento 3 4300 Segmento 2 4700 Segmento 4 5700 6300 6700 Segmento 1 44 La segmentación La segmentación Compartición de segmentos 0 Proceso P1 Límite ... S D 400 C 21000 Segmento pila ... 6300 28400 Proceso P2 emacs Segmento pila Límite Base ... ... S D 10000 C 21000 Segmento datos Segmento código 12300 28400 Segmento datos Segmento código emacs Proceso P1 6300 Base Datos P1 6700 Límite Base 12300 ... ... S D 400 6300 C 21000 28400 Datos P2 RW RW RO Segmento pila 28400 WR emacs Dirección virtual C 1200 CPU Segmento datos Segmento código INTR MMU Error emacs 46 45 La segmentación Permisos WR 22300 49400 (8.6.4) Facilidad para protección La segmentación Análisis Implementación de la tabla de segmentos (8.6.3) – Registros de la MMU – Ventajas No aparece fragmentación interna. – Memoria Facilita la reubicación. – TLB Proporciona protección. – Inconvenientes Fragmentación externa. – Tamaños de segmento Muy Grandes aproximación a particiones variables. Muy Pequeños eliminaría la fragmentación externa, pero aumentaría el tamaño destinado a registros Tamaño Fijo Paginación 47 48 Contenidos La segmentación paginada 1.- Conceptos básicos Cuando los segmentos crecen: 2.- Gestión de memoria 3.- Asignación contigua 4.4.- Asignación dispersa (8.7) Motivación Paginación (8.5) Segmentación (8.6) Técnicas combinadas Límite Base Otras segmento Tabla páginas protec, .. Solución: – – Segmentación paginada (8.7) – Paginación multinivel (8.5.3) Aumenta la fragmentación externa. Aumenta el problema de encontrar un hueco libre en memoria para ubicarlo. Problema de asignación dinámica de memoria debido a la diferencia de tamaño de los segmentos. Paginar los segmentos segmentación paginada 5.- Memoria virtual La segmentación paginada Traducción de direcciones num. de segmento s desplazamiento d > STBR + – Base de la tabla de páginas. – Tamaño del segmento 50 49 TEMA 3.- Gestión de la memoria La tabla de segmentos Longitud Base tabla páginas CPU Dirección lógica Análisis – Ventajas p Tabla de segmentos s La segmentación paginada d’ p + Ventajas de Segmentación Ventajas de Paginación Proporciona protección. – Inconvenientes Tabla páginas Fragmentación interna. f num. de marco f desplazamiento d’ 51 52 Contenidos La paginación multinivel 1.- Conceptos básicos – Para espacios de direcciones muy grandes, la tabla de páginas puede ser excesivamente grande. 2.- Gestión de memoria 3.- Asignación contigua 4.4.- Asignación dispersa (8.5.3) Motivación Paginación (8.5) Segmentación (8.6) Técnicas combinadas Solución: – Paginar la propia tabla de páginas – Segmentación paginada (8.7) – Paginación multinivel (8.5.3) 5.- Memoria virtual La paginación multinivel 0 La tabla de páginas paginada Tabla de páginas de 1er nivel ... 54 53 TEMA 3.- Gestión de la memoria Tabla de páginas 1 ... La paginación multinivel Memoria física 1 Traducción de direcciones num. de página desplazamiento p d 100 p1 500 500 100 ... 708 p2 Página de la tabla de páginas 929 ... 900 Dirección lógica p1 708 ... d p2 f 900 Tabla de páginas de 1er nivel 929 55 rw- v Página de tabla de páginas de 2º nivel d Dato al que se accede 56 La paginación multinivel La paginación multinivel Ejemplos reales de sistemas con paginación multinivel – La arquitectura SPARC, con 32 bits de dirección soporta un esquema con 3 niveles de paginación. – Utilizar un TLB – La arquitectura del Motorola 68030, con 32 bits de dirección soporta un esquema con 4 niveles de paginación. – El Pentium de Intel, con 32 bits de dirección, soporta un esquema con 2 niveles de paginación. Solución: i386 de Intel, tiene un TLB con 32 entradas y consigue una tasa de aciertos del 98% Motorola 68030 tiene un TLB de 22 entradas. Pentium de Intel tiene dos TLBs: – el primero gestiona las páginas estándar de 4Kbytes y tiene una capacidad de 64 entradas. – el segundo para implementar páginas de 4Mb y tiene una capacidad de 8 entradas. Inconveniente: – Utilizar memoria caché para almacenar tablas de páginas. Con esto el sistema se ralentizará, pero únicamente entre un 20% y un 40%. Cada nivel de paginación requiere incrementar en uno el número de accesos a memoria para acceder a una dirección física. 58 57 Contenidos Memoria virtual 1.- Conceptos básicos – Segmentación por demanda. 3.- Asignación contigua 4.- Asignación dispersa Ventajas – Aumentar el grado de multiprogramación 5.5.- Memoria virtual (9.1) – Paginación por demanda. 2.- Gestión de memoria Concepto de memoria virtual – Aumentar el tamaño de los programas Paginación por demanda Algoritmos de reemplazo Asignación de marcos Hiperpaginación – Ahorro de memoria. Inconvenientes – Reducir el rendimiento del sistema si no se diseña y sintoniza adecuadamente. – Mayor complejidad. TEMA 3.- Gestión de la memoria 59 60 Memoria virtual Contenidos Intercambios 1.- Conceptos básicos 2.- Gestión de memoria Memoria Virtual (lógica) A 3.- Asignación contigua Memoria Secundaria 4.- Asignación dispersa 0000 A0 A0 A1 5.5.- Memoria virtual Memoria Principal (física) A1 B A0 B0 A1 A0 A0 B0 A1 B1 B1 Paginación por demanda Algoritmos de reemplazo Asignación de marcos Hiperpaginación 0000 B0 B1 B1 61 Paginación por demanda Concepto de paginación por demanda (9.2) Fallos de página – Definición: Se produce cuando referenciamos una página que tiene su bit de validez igual a 0 – Manejo de fallos de página Descriptores de página – Bit de validez Página en disco. Error de acceso. El proceso “crece” y reclama nuevas páginas. – Se carga la página en un marco – Bit de referencia – Se aborta el proceso – Bit de modificación 62 Paginación por demanda – Paginación + Intercambios entre memoria principal y secundaria (swapping). TEMA 3.- Gestión de la memoria Problema con las páginas compartidas. – Si el SO lo permite, se le asigna una nueva página al proceso, se valida y se le asigna un marco. 63 64 Paginación por demanda Paginación por demanda (9.2) Fallo de página: caso de página en disco 3: buscar página en el área de swap 2: excepción Sistema operativo Memoria lógica 0000 Página 0 Página 1 Página 2 Página 3 Marco Validez 4 61 5 0 0 0 1 0 1 1 1 0 0 0 Algoritmo de fallo de página: caso de página en disco (9.2) – Encontrar la página demandada en disco. Memoria primaria – Encontrar un marco libre: Memoria secundaria Tabla de páginas A Página 2 Página 0 A0 A2 A1 A3 – Leer la página demandada del disco (page in) y ubicarla en el marco libre, actualizando la tabla de páginas y la tabla de marcos libres. Página 3 Página 1 Si existe un marco libre, utilizarlo. Si no, utilizar un algoritmo de reemplazo de páginas. Si el bit de modificación es 1, escribir la víctima en disco (page out). Actualizar la tabla de páginas, invalidando la víctima, y la tabla de marcos. – Transferir control al proceso de usuario, reejecutando la instrucción que provocó el fallo de página. 4. Cargar página (page in) 6: reiniciar CPU instrucción 1: referencia 5: Actualizar tabla de páginas Paginación por demanda Reemplazo de páginas 66 65 Contenidos (9.4) 1.- Conceptos básicos – Si la memoria principal está completamente ocupada y se produce un fallo de página: 2.- Gestión de memoria Una página ubicada en memoria principal, denominada víctima, debe dejar su marco a la página demandada. 4.- Asignación dispersa – Si el bit de modificación es 1 hay que salvar la víctima a disco (page out) – Leer la página demandada sobre el marco de la víctima (page in) 3.- Asignación contigua 5.5.- Memoria virtual – Existen diversos algoritmos para seleccionar la víctima. 67 TEMA 3.- Gestión de la memoria Paginación por demanda Algoritmos de reemplazo Asignación de marcos Hiperpaginación 68 Algoritmos de reemplazo de páginas Algoritmos de reemplazo de páginas (9.5) Serie de referencias Algoritmos de sustitución de páginas 3 marcos de página: 9 fallos de página (6 reempl.) 1 2 3 4 1 2 5 1 2 3 4 5 1 1 1 4 4 4 5 5 5 5 5 5 2 2 2 1 1 1 1 1 3 3 3 3 3 3 2 2 2 2 2 4 4 – Algoritmo FIFO – Algoritmo óptimo 4 marcos de página: 10 fallos de página (6 reempl.) – Algoritmo LRU 1 – Algoritmo de aproximación al LRU (9.5.1) Algoritmo FIFO 1 1 1 1 1 5 5 5 5 4 4 2 2 2 2 2 2 1 1 1 1 5 3 3 3 3 3 3 2 2 2 2 4 4 4 4 4 4 3 3 3 Segunda oportunidad 70 69 Algoritmos de reemplazo de páginas Algoritmos de reemplazo de páginas Algoritmo FIFO 3 marcos de página: 7 fallos de página (4 reempl.) – Filosofía La víctima será aquella página que hace mas tiempo que ha sido CARGADA en memoria. 1 2 3 4 1 2 5 1 2 3 4 5 1 1 1 1 1 1 1 1 1 3 4 4 2 2 2 2 2 2 2 2 2 2 2 3 4 4 4 5 5 5 5 5 5 – Ventajas Muy simple. – Inconvenientes (9.5.2) Algoritmo óptimo 4 marcos de página: 6 fallos de página (2 reempl.) Presenta la anomalía de Belady 1 71 1 1 1 1 1 1 1 1 1 4 4 2 2 2 2 2 2 2 2 2 1 1 3 3 3 3 3 3 3 3 2 2 4 4 4 5 5 5 5 5 5 72 Algoritmos de reemplazo de páginas Algoritmos de reemplazo de páginas Algoritmo óptimo – Filosofía Garantiza que un conjunto de páginas mantenido con N marcos es un subconjunto del que se mantiene con N+1 marcos – Propiedad Ofrece un número de fallos mínimo. – Inconvenientes (9.5.1) – Definición La víctima es aquella página que se tardará más en utilizar. – Ventajas Algoritmos de pila Si un algoritmo es de pila NUNCA presenta la anomalía de Belady Implementación imposible. 74 73 Algoritmos de reemplazo de páginas Algoritmos de reemplazo de páginas Algoritmos de pila – FIFO no es un algoritmo de pila Algoritmo LRU (9.5.3) – Filosofía: 3 marcos de página: 9 fallos de página (6 reempl.) 1 2 3 4 1 2 5 1 2 3 4 5 1 1 1 4 4 4 5 5 5 5 5 5 2 2 2 1 1 1 1 1 3 3 3 3 3 3 2 2 2 2 2 4 4 La víctima será aquella página que hace más tiempo que ha sido REFERENCIADA. – Propiedades: Es un algoritmo de pila. 4 marcos de página: 10 fallos de página (6 reempl.) 1 1 1 1 1 1 5 5 5 5 4 4 2 2 2 2 2 2 1 1 1 1 5 3 3 3 3 3 3 2 2 2 2 4 4 4 4 4 4 3 3 3 75 76 Algoritmos de reemplazo de páginas Algoritmos de reemplazo de páginas Ejemplo algoritmo LRU 3 marcos de página: 10 fallos de página (7 reempl.) 1 2 3 4 1 2 5 1 2 3 4 5 1 1 1 4 4 4 5 5 5 3 3 3 2 2 2 1 1 1 1 1 1 4 4 3 3 3 2 2 2 2 2 2 5 – Contadores – Cola Ventajas – Buena aproximación al óptimo Inconvenientes 1 1 1 1 1 1 1 1 1 1 5 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 5 5 5 5 4 4 4 4 4 4 4 4 3 3 3 – Solución: Utilizar aproximaciones al algoritmo. 78 77 Contenidos Algoritmos de reemplazo de páginas Alg. segunda oportunidad 1.- Conceptos básicos 2.- Gestión de memoria 1 0 3.- Asignación contigua 1 0 siguiente víctima (9.5.3) – Difícil de implementar 4 marcos de página: 8 fallos de página (4 reempl.) 1 Implementaciones del algoritmo LRU 0 4.- Asignación dispersa 5.5.- Memoria virtual víctima 1 Paginación por demanda Algoritmos de reemplazo Asignación de marcos Hiperpaginación 1 Bit de referencia páginas 79 TEMA 3.- Gestión de la memoria 80 Asignación de marcos Contenidos Problema de asignación de marcos 1.- Conceptos básicos – Lista de marcos libres 2.- Gestión de memoria – Reparto de marcos entre los procesos y el SO 3.- Asignación contigua Algoritmos de asignación de marcos 4.- Asignación dispersa – Asignación equitativa 5.5.- Memoria virtual – Asignación proporcional – Asignación prioritaria Ambito de las políticas de reemplazo – Reemplazo local Paginación por demanda Algoritmos de reemplazo Asignación de marcos Hiperpaginación – Reemplazo global 81 Hiperpaginación (thrashing) El problema de la hiperpaginación 82 TEMA 3.- Gestión de la memoria Hiperpaginación (thrashing) (9.7) Principio de localidad de referencia (9.7.1) – Localidad: – Causa de la hiperpaginación Conjunto de páginas que un proceso utiliza conjuntamente. – Principio de localidad de referencia. Hiperpaginación – Hiperpaginación ≡ Σ(tamaños de localidad) > (tamaño memoria total) Utilización de la CPU Grado de multiprogramación 83 84 Hiperpaginación (thrashing) Hiperpaginación (thrashing) (9.7.2) Modelo del área activa Modelo del área activa – Asume el principio de localidad de referencia. – Determinar el número de páginas que un proceso que deben tener en memoria para obtener un buen rendimiento y evitar la hiperpaginación. – Área activa: conjunto de páginas accedidas en las últimas ∆ referencias. – Ventana de área activa ∆ Es un número fijo de referencias. ... 5 3 5 2 3 5 2 3 5 4 5 4 5 9 8 9 4 6 9 2 3 9 2 ∆ ∆ t1 AA(t1) = {2,3,5} 85 Hiperpaginación (thrashing) Control de la tasa de fallos de página Tasa de fallos de página (9.7.3) Límite superior --> Asignar marcos Límite inferior --> Eliminar marcos Número de marcos 87 t2 AA(t2) = {4,5,6,8,9} 86