1 Tema 12: Memoria Virtual Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)

Slides:



Advertisements
Presentaciones similares
GESTION DE MEMORIA.
Advertisements

III - Gestión de memoria
Administración de memoria
Planificación de Monoprocesadores
III - Gestión de memoria
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
3.4.- Administración de Memoria Virtual.
Algoritmos de Remplazamiento de Paginas
Introducción a los Sistemas Operativos Memoria Virtual
Funcionamiento, programación
PROGRAMACION DE ESTRUCTURAS DE DATOS
SISTEMAS DE MEMORIA DEL COMPUTADOR
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
MEMORIA VIRTUAL PAGINACIÓN
Windows XP sp3.
Teoría de lenguajes y compiladores
ADMINISTRACIÓN DE MEMORIA
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Tema 3. Optimización de Código
Memoria Virtual Fallos de Página Algoritmos de Reemplazamiento
Paginación y Segmentación Giselle M. Agosto Carlos R. Pérez
Teoría de Sistemas Operativos
Tema Nº4.
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Administración de memoria
Sistemas Operativos Procesos.
Memoria Otros temas sobre cachés. Universidad de SonoraArquitectura de Computadoras2 Otros temas 1. Estrategias de búsqueda de bloque. 2. Estrategias.
Estructura y Tecnolología de Ordenadores
Estructura y Tecnología de Ordenadores Noviembre 2004.
Profesor: Rodrigo Sanhueza Figueroa
Administración de Memoria Memoria Virtual
1 Memoria Virtual Capítulo 8. 2 Estructuras de Hardware y Control Todas las referencias a memoria son direcciones lógicas y son mapeadas a direcciones.
Administración de la memoria
Las personas se enfrentaron por primera vez con programas que eran demasiados grandes para caber en la memoria disponible. La solucion fue dividir el programa.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
(Organización y Manejo de Archivos)
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Administración de Memoria
Antecedentes Memoria virtual – separación de la memoria lógica de la física Sólo parte del programa necesita estar en memoria en un momento dado para.
Planificación y Gestión de procesos
Capítulo 7 Gestión de memoria.
Administración de Memoria no contigua
Tema VII Memoria Virtual.
Tema 6. Administración de memoria
Problema de inclusión en una Curva Digital Por Orellana Muñoz, Alfonso Paz Vicente, Rafael Pérez Medina, Gerardo Rodríguez Naranjo.
Una introducción a la computación evolutiva
Memoria virtual.
Memoria Principal Memoria de acceso aleatorio. La unidad de memoria y jerarquías de almacenamiento Unidades de Almacenamiento. La unidad de memoria es.
Gestión de Memoria.
Punteros Recomendado: 1. Nivelación Funciones
Gestión de Memoria.
Rendimiento de la CPU y sus factores
Unidad 2 – Gestión de Procesos
Introducción a la Optimización de Consultas. Francisco Moreno.
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Modos de direccionamiento
3.2.1 Administración de almacenamiento
Gestión de memoria Rina Arauz.
Memoria Virtual Msc. Rina Arauz.
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Memoria Virtual Concepto Paginado bajo demanda Performance del Paginado bajo.
Memoria Virtual Conceptos Paginación Bajo Demanda Creación de Procesos
Tema 4: Planificación de Procesos
Gestión de Memoria – Parte 2
1 Tema 10: Administración de la Memoria Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)
Arquitectura de Computadores
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
(Tema 15 en apuntes prof. Rovayo)
Transcripción de la presentación:

1 Tema 12: Memoria Virtual Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)

2 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 2 Tema 12: Memoria Virtual

3 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 3 Tema 12: Memoria Virtual

44 1. Introducción Tema 12: Memoria Virtual  Idea de partida: carga de páginas bajo petición  Más simple que carga de segmentos  ¿Cuándo se carga una página?  Cuando hace falta  ¿Dónde se carga?  En cualquier marco libre  ¿Y si no queda ningún marco libre?  Se elige una página y se reemplaza

5 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 5 Tema 12: Memoria Virtual

66 2. Elementos de análisis Tema 12: Memoria Virtual  Dado un criterio de sustitución,  ¿es bueno? ¿es malo?  Comparado con otro, ¿cuál es mejor? ¿cuánto mejor?  Herramientas a nuestra disposición:  Cadenas de referencias  Índices de valoración  Curva paracorde  Criterio de localidad

77 2. Elementos de análisis Tema 12: Memoria Virtual Cadenas de referencia  Definición: secuencia de páginas referidas por un proceso  Cálculo: supongamos que un proceso hace los siguientes accesos a memoria (pagina/despl.): 0/0/0,0/2/2,0/6/6,0/8/8,1/0/0,1/1/1,1/4/4,0/8/8,2/15,2/18,2/15,2/18,255/32,255/36,2/15…0, 1, 0, 2, 255, 2…  Obtención:  Trazas de programas: ¡complicado!  Simulación

8  : Número de fallos de página con m marcos 8 2. Elementos de análisis Tema 12: Memoria Virtual Índices de valoración  Sirven para medir las prestaciones de los criterios  Todas ellas referidas a una cadena de referencias  : Tasa de fallos de página ¡En los m primeros fallos no interviene el criterio de sustitución! ¿Y eso es mucho?  : Tasa de fallos de página en caliente ¡NO SÉ DE DÓNDE ﻵﺵ ф    SACAR A !  : Número de fallos de página en caliente

99 2. Elementos de análisis Tema 12: Memoria Virtual Curva paracorde  Representación del número de fallos de páginas para una cadena de referencias, frente al número de marcos utilizados  Sea p= número de páginas (distintas) en cadena de referencias F(m) m=pm=1 m F(p)=p

10 2. Elementos de análisis Tema 12: Memoria Virtual Principio de localidad  Localidad espacial:  Si una página es accedida es muy probable que se acceda eventualmente a una página próxima a ella  Localidad temporal:  Si una página es accedida en un instante de tiempo, es muy probable que en el futuro inmediato se vuelva a ser accedida F(m) m=pm=1 m referencias aleatorias referencias localizadas

11 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 11 Tema 12: Memoria Virtual

12 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento Criterios de laboratorio

13 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

Página óptima (OPT o MIN)  Criterio: expulsar la página que va a tardar más tiempo en volver a ser referida  Implica conocimiento de futuro: no implementable en la práctica.  Utilidad: comparación con otros criterios  Ningún criterio puede dar mejores resultados que éste Tema 12: Memoria Virtual F(m) m=pm=1 m F(p)=p

Página óptima (OPT o MIN) Tema 12: Memoria Virtual Ejemplo de traza  Cadena de referencias: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4  Nº de marcos: 3 Marcos cadena ref: AF R R R R

16 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

Página Pésima (MAX)  Criterio: expulsar la página que va a tardar menos tiempo en volver a ser referida  Implica conocimiento de futuro: no implementable en la práctica.  Utilidad: comparación con otros criterios  Ningún criterio puede dar peores resultados que éste Tema 12: Memoria Virtual F(m) m=pm=1 m F(p)=p MAX MIN

Página Pésima (MAX) Tema 12: Memoria Virtual Ejemplo de traza  Cadena de referencias: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4  Nº de marcos: AF R R R R R11R00R21R34R1

19 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

Página usada más recientemente (MRU)  Criterio: expulsar la página que hace menos tiempo que se ha usado  Aproximación implementable en la práctica de criterio MAX  Utilidad: comparación con otros criterios Tema 12: Memoria Virtual F(m) m=pm=1 m F(p)=p MAX MIN MRU

Página usada más recientemente (MRU) Tema 12: Memoria Virtual Ejemplo de traza  Cadena de referencias: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4  Nº de marcos: AF R R R R0

22 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

Sustitución aleatoria  Criterio: expulsar una página al azar  Algoritmo de implementación trivial  Utilidad: Si algún criterio da resultados similares a éste: porquería de criterio Tema 12: Memoria Virtual F(m) m=pm=1 m F(p)=p MAX MIN MRU

24 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

Sustitución por orden de carga (FIFO)  Criterio: expulsar la página que más tiempo lleva cargada  Fundamento: Ejecución secuencial, luego las páginas se cargan, se usan, y se dejan de usar  Ventajas:  Fácil implementación Tema 12: Memoria Virtual primera P1P2P3P4P5 última P6 P3 P4 P5 P2 siguiente P1P6

Sustitución por orden de carga (FIFO)  Inconveniente: malos resultados  Que las páginas “dejarán de ser necesarias” no implica “ya no son necesarias”  Las más usadas tienden a permanecer más tiempo en memoria → son las atacadas  Anomalía de Belady Tema 12: Memoria Virtual AF R R R R R11R2 9 Fallos

Sustitución por orden de carga (FIFO) Tema 12: Memoria Virtual ¡10 Fallos! AF 1R2 0R1 3R44R0 2R34R0 AF F(m) m

28 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

Página no usada recientemente (NRU)  Criterio: expulsar una página que lleve algún tiempo sin usarse  Fundamento: Por principio de localidad, no hay motivos para pensar que vaya a ser necesaria en el futuro inmediato  Métodos:  Forma general  Segunda oportunidad  Método del reloj  Tercera oportunidad (método Multics) Tema 12: Memoria Virtual

Página no usada recientemente (NRU) Forma general  En tabla de páginas:  Bit R (o A): página accedida  Bit M (o D): página modificada  Si hardware no proporciona estos bits, pero proporciona protección de páginas→ implementación por software  Cuatro tipos de página en función bits R y M Tema 12: Memoria Virtual Marco PRM …………  Inconvenientes:  ¿Cuál página quito?

Página no usada recientemente (NRU) Segunda oportunidad  Lista ordenada por orden de carga  Ante una sustitución, primera candidata es la más antigua  Si esta página tiene bit R=1 Se pone bit R a 0 Se pasa al final de la lista (recibe su segunda oportunidad)  Si esta página tiene bit R = 0 → ¡Víctima! Tema 12: Memoria Virtual primera P1P2P3P4P5 última r=1r=0 r=1r=0

Página no usada recientemente (NRU) Método del reloj  Mismo algoritmo anterior, implementado con una lista circular Tema 12: Memoria Virtual primera P1 P2 P3 P4 P5 r=1 r=0 r=1 r=0 P6 r=1

Página no usada recientemente (NRU) Tercera oportunidad (método Multics)  Lista ordenada por orden de carga  Ante una sustitución, primera candidata es la más antigua  Si esta página tiene bit R=1 Se pone bit R a 0 Se pasa al final de la lista (recibe su segunda oportunidad)  Si esta página tiene bit M=1 Se le pone un bit M’ a 1 y se pone bit M a 0 Se pasa a al final de la lista (recibe su tercera oportunidad) Tema 12: Memoria Virtual primera P2P3P4P5P1 última m=1m=0m=1 m=0 r=0 r=1r=0

34 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

Página usada menos frecuentemente (NRU)  Criterio: expulsar la página que se haya usado menos veces  Fundamento: Si la página se usa poco, es probable que no haga falta  Implementación: complicada  ¡Contar accesos implica que un contador debe incrementarse con cada acceso a memoria!  Implementación aproximada:  Contador de periodos en que página ha sido usada Tema 12: Memoria Virtual Mmm… no sé yo, eh? … MarcoR… 80… 12040… 120… 320… ……… t T … MarcoR… 81… 12040… 120… 321… ……… … MarcoR… 81… 12041… 120… 320… ……… … MarcoR… 81… 12040… 121… 320… ……… … MarcoR… 81… 12041… 121… 320… ………

Página usada menos frecuentemente (NRU)  Inconvenientes: malos resultados  Da misma importancia a pasado remoto que a pasado reciente: Una página recién cargada hará falta, pero no ha tenido oportunidad de usarse todavía: será una víctima propicia Una página que hace mucho tiempo que se usó y se ha dejado de usar, no será elegida Tema 12: Memoria Virtual

37 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

Página usada menos recientemente (LRU)  Criterio: expulsar la página que más tiempo lleve sin usarse  Fundamento: Cuanto más tiempo haga que no se use, por principio de localidad, menos probable es que haga falta en el futuro inmediato  Diferencia con NRU:  LRU da menos importancia a los accesos pasados cuanto más tiempo hace que se produjeron  NRU da importancia a accesos en “pasado reciente”, y ninguna a accesos en “pasado remoto” Tema 12: Memoria Virtual

Página usada menos recientemente (LRU) Tema 12: Memoria Virtual Ejemplo de traza  Cadena de referencias: 0, 1, 2, 3, 0, 1, 4, 0, 1, 2, 3, 4  Nº de marcos: AF R R R R R11R24R1

Página usada menos recientemente (LRU)  Implementación:  Listas o pilas  Contador de accesos  Matrices de bits Implementación LRU mediante listas o pilas  Mantener una lista de páginas ordenada por acceso  Cada vez que se accede a una página, se coloca la primera Tema 12: Memoria Virtual + reciente P1P2P3P4 P5 - reciente + reciente P2P1P3P4 P5 - reciente + reciente P3P2P1P4 P5 - reciente + reciente P4P3P2P1 P5 - reciente + reciente P1P5P4P3 P2 - reciente + reciente P5P4P3P2 P1 - reciente

Página usada menos recientemente (LRU) Implementación LRU mediante listas o pilas  Inconvenientes:  ¡Inviable en la práctica! Tema 12: Memoria Virtual

Página usada menos recientemente (LRU) Tema 12: Memoria Virtual Implementación LRU mediante contador de acceso  en MMU: un contador de accesos a memoria  en tabla de páginas: bits suficientes para almacenar este contador  Cada vez que se accede a una página: se almacena en tabla de páginas el valor actual del contador de accesos  Ante una sustitución: se escoge la que tiene el valor menor del contador … MarcoR… 81… 12041… 121… 321… ……… … 7517 … … … …

Página usada menos recientemente (LRU) Tema 12: Memoria Virtual Implementación LRU mediante contador de acceso  Inconvenientes:  Necesario contador con gran nº de bits  Necesario almacenar dicho nº de bits por cada página  Por cada acceso, acceso adicional a memoria para almacenar contador

Página usada menos recientemente (LRU) Tema 12: Memoria Virtual Implementación LRU mediante matriz de bits  en MMU: una matriz de bits de tamaño n x n  Por cada acceso a una página p:  Poner a 1 la fila p  Poner a 0 la columna p  Ante una sustitución: se elige la página con el menor nº en binario natural en su fila Ejemplo: accesos a páginas 1, 3, 0,

Página usada menos recientemente (LRU) Tema 12: Memoria Virtual Implementación LRU mediante matriz de bits  Inconvenientes:  ¡Tamaño de la matriz en la práctica!  Método LRU, en general:  No implementable en la práctica como criterio de sustitución de páginas  Aplicable en otros contextos  Solución: aproximación discreta

46 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

Aproximación discreta a LRU  Idea similar a aproximación a LFU:  Se contarán periodos sin uso, en lugar de periodos con uso  Implementación aproximada:  Contador de periodos en que página no ha sido usada  Se programa timer. En cada expiración: Se comprueba qué páginas tienen activo bit R Aquellas que tienen activo bit R: contador = 0 Aquellas que no lo tienen activo: se incrementa contador Tema 12: Memoria Virtual … MarcoR… 80… 12040… 120… 320… ……… t T … MarcoR… 81… 12040… 120… 321… ……… … MarcoR… 81… 12041… 120… 320… ……… … MarcoR… 81… 12040… 121… 320… ……… … MarcoR… 81… 12041… 121… 320… ………

48 3. Criterios de sustitución Tema 12: Memoria Virtual 1.Página óptima (OPT, MIN) 2.Página pésima (MAX) 3.Página usada más recientemente (MRU) 4.Sustitución aleatoria 5.Sustitución por orden de carga (FIFO) 6.Página no usada recientemente (NRU) 7.Página usada menos frecuentemente (LFU) 8.Página usada menos recientemente (LRU) 9.Aproximación discreta a LRU 10.Sustitución por envejecimiento

Sustitución por envejecimiento  Idea:  Se asocia a cada página una variable con un número determinado de bits  Se revisan periódicamente los bits R de tabla de página  Al final de cada periodo, se desplazan a la derecha los bits de cada variable  Bit R entra como bit de mayor peso y se pone a 0  Ante una sustitución: se elige la página con menor valor en variable Tema 12: Memoria Virtual 0000 … MarcoR… 80… 12040… 120… 320… ……… t T … MarcoR… 81… 12040… 120… 321… ……… … MarcoR… 81… 12041… 120… 320… ……… … MarcoR… 81… 12040… 121… 320… ……… … MarcoR… 81… 12041… 121… 320… ………

Sustitución por envejecimiento  Mejores resultados que anterior método:  En anterior método, dos páginas usadas en un mismo periodo son indistinguibles  Por envejecimiento, se distinguen en función del uso en anteriores periodos  El pasado remoto se termina olvidando  Páginas con variable a 0: hace más de n periodos de tiempo que no se usan Tema 12: Memoria Virtual

51 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 51 Tema 12: Memoria Virtual

52 4. Algoritmos de pila  Intuitivamente:  Algoritmo LRU, con cadena de referencias con 5 referencias distintas, y 5 marcos: Tema 12: Memoria Virtual AF AF AF AF AFAF AF AF AF * * AF * * *AF AF AF AF * * AF * * * * *

53 4. Algoritmos de pila  M(m,t):  Conjunto de páginas cargadas en instante de tiempo t con m marcos  Propiedad de pila: M(m,t)  M(m+1,t)  Consecuencia 1: si en un instante t, p  M(m,t) → p  M(m+1,t)  Consecuencia 2: si en el instante t, p no produce fallo de página con m marcos, tampoco lo producirá con m+1  Consecuencia 3: el número de fallos de página no aumenta si aumenta el número de marcos: F(m)  F(m+k),  k > 0 Tema 12: Memoria Virtual  Si un criterio cumple propiedad de pila, no puede producir anomalía de Belady

54 4. Algoritmos de pila  Distancia:  Profundidad a la que se encuentra una página en la pila cuando se hace referencia a ella  Si no está cargada:  Tema 12: Memoria Virtual     4 4 

55 4. Algoritmos de pila Tema 12: Memoria Virtual     4 4  Distancia  Frecuencia

56 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 56 Tema 12: Memoria Virtual

57 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

58 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

Criterios globales y locales  Cuando hay que elegir una página víctima, ¿entre qué paginas se elige?  Entre las asignadas al proceso (criterio local)  Entre todas las páginas del sistema (criterio global) Tema 12: Memoria Virtual  Consecuencia de criterio local:  nº de páginas de un proceso cargadas en memoria permanece constante ¡Ostras! ¿Y cuántos marcos asignamos inicialmente? Pues un porcentaje determinado de los que necesita ¿Y cuántas necesita?

Criterios globales y locales Criterios locales  Ventajas:  Criterio de selección sólo opera con las páginas del proceso: ¡más eficiente! Tema 12: Memoria Virtual  Inconvenientes:  ¿Asignación inicial de marcos? Criterios globales  Ventajas:  Asignación de marcos se adapta dinámicamente a necesidades de procesos  Inconvenientes:  Criterios de sustitución favorecen a proceso activo  Procesos que lleven tiempo inactivos: rearranque en caliente

Criterios globales y locales Criterios mixtos  Ante una sustitución: criterio local  El algoritmo de sustitución opera sobre un conjunto menor de marcos  Dinámicamente, se equilibra el número de marcos entre procesos Tema 12: Memoria Virtual

62 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

Modelo del conjunto de trabajo  Conjunto de trabajo durante una fase de ejecuión:  Conjunto de páginas referidas durante dicha fase  El conjunto de trabajo cambia dinámicamente  Si durante una fase proceso tiene…  más marcos que páginas hay en conjunto de trabajo de fase: marcos sobrantes no se usan  menos marcos que páginas hay en conjunto de trabajo de fase: posible hiperpaginación Tema 12: Memoria Virtual  Hiperpaginación:  Aumento de la frecuencia de fallo de página hasta el punto que se produce un fallo de página cada muy pocas instrucciones  Puede ser local o global

Modelo del conjunto de trabajo Ejemplo de hiperpaginación Tema 12: Memoria Virtual … for(i=0; i<K; i++) for (j=0; j<N; j++) rutina(tabla[j]); … tabla[0] tabla[1] tabla[2] tabla[N-2] tabla[N-1] tabla[0] tabla[1] tabla[2] tabla[N-2] N marcos N - 1 marcos tabla[N-1] tabla[0] tabla[1] tabla[N-3] tabla[N-2] tabla[N-1] tabla[0] tabla[N-4]

Modelo del conjunto de trabajo Evolución del conjunto de trabajo Tema 12: Memoria Virtual t nº de páginas en conjunto trabajo Arranque en frío Inicio nueva fase Olvido de páginas de fase anterior Estabilización Inicio nueva fase Olvido de páginas de fase anterior Estabilización

66 Tema 12: Memoria Virtual  Principio del conjunto de trabajo:  Un proceso sólo se debe ejecutar si tiene marcos suficientes para cargar su mayor conjunto de trabajo  Nunca se debe retirar a un proceso una página perteneciente a su conjunto de trabajo.  ¿Qué páginas forman parte del conjunto de trabajo?  Conjunto de trabajo observado: conjunto de páginas referidas en el periodo de tiempo [t-  t, t] 5.2 Modelo del conjunto de trabajo

67 Criterio WS-Clock  Algoritmo del reloj, pero con tercera oportunidad en función de conjunto de trabajo observado Tema 12: Memoria Virtual primera P1 P2 P3 P4 P5 r=1 r’=0 t=t 0 r=0 r’=0 t=t 0 r=0 r’=0 t=t 0 r=0 r’=0 t=t 0 r=1 r’=0 t=t Modelo del conjunto de trabajo  <<  T t0t0 t1t1 r=0 r’=1 t=t 1 r=0 r’=0 t=t 0 r=0 r’=0 t=t 0 r=0 r’=0 t=t 0 r=0 r’=1 t=t 1 r=0 r’=0 t=t 1 ¿t 0  [t-  t, t]?

68 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

69 Tema 12: Memoria Virtual  Idea:  En lugar de determinar qué páginas forman parte de conjunto de trabajo, determinemos al menos cuántas son  Asignemos dinámicamente el nº suficiente de marcos  Un buen criterio de sustitución nunca debería quitar una página del conjunto de trabajo  Para ajustar número de marcos: se mide frecuencia de fallos de página  Se fija límite superior e inferior para dicha frecuencia  Si se supera límite superior: se asignan mas marcos  Si se baja de límite inferior: se retiran marcos 5.3 Aplicación de la frecuencia de fallos de pg.

70 Tema 12: Memoria Virtual  Para obtener frecuencia de fallos: se mide tiempo medio entre fallos 5.3 Aplicación de la frecuencia de fallos de pg. PFF m Límite superior Límite inferior

71 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

72 Tema 12: Memoria Virtual  Idea: MV funciona mejor si hay marcos libres cuando se produce fallo de página  No hay que ejecutar criterio de sustitución en ese momento  no hay que grabar página víctima  ¡Mantengamos siempre una lista de marcos libres!  Demonio de paginación:  Se ejecuta cuando no hay otra cosa que hacer, o periódicamente  Si nº de marcos libres < K: arrebata un número de marcos a los procesos, aplicando algún criterio de sustitución Los prepara para su uso 5.4 Métodos de reserva

73 Tema 12: Memoria Virtual  ¿Posible problema?  Demonio de paginación arrebata un marco a un proceso  Tras ello, proceso se reanuda y produce fallo de página para la página que contenía 5.4 Métodos de reserva  Solución: se le devuelve el marco, con su página todavía cargada

74 5. Memoria Virtual con multiprogramación Tema 12: Memoria Virtual 1.Criterios locales y globales 2.Modelo del conjunto de trabajo 3.Aplicación de frecuencia de fallos de páginas 4.Métodos de reserva 5.Carga de páginas por anticipado

75 Tema 12: Memoria Virtual  Idea: cargar las páginas antes de que hagan falta  Se evitan así fallos de página  Posibilidades:  Aplicando localidad espacial  Aplicando conjuntos de trabajo 5.5 Carga de páginas por anticipado  Localidad espacial:  Cuando se transfiere una página: transferir las páginas adyacentes Por localidad espacial, es muy probable que hagan falta Posiblemente se puedan transferir en el mismo acceso (gratis)

76 Tema 12: Memoria Virtual 5.5 Carga de páginas por anticipado  Por conjuntos de trabajo:  Útil con criterios globales: hace rearranque en caliente más eficiente  En caso de bloqueo, se anotan las páginas que supuestamente pertenecen a conjunto de trabajo  Cuando proceso se reanuda: antes de activarlo, se cargan todas esas páginas

77 Índice: 1.Introducción 2.Elementos de análisis 3.Criterios de sustitución de páginas 4.Algoritmos de pila 5.Memoria virtual y multiprogramación 6.Otros aspectos de la memoria virtual 77 Tema 12: Memoria Virtual

78 6. Otros aspectos de la memoria virtual Tema 12: Memoria Virtual 1.Tamaño de la página 2.Páginas compartidas 3.Rearranque de la instrucción

79 6. Otros aspectos de la memoria virtual Tema 12: Memoria Virtual 1.Tamaño de la página 2.Páginas compartidas 3.Rearranque de la instrucción

80 Tema 12: Memoria Virtual  ¿Páginas grandes? ¿páginas pequeñas? ¿Tamaño ideal?  Varios factores con criterios contrapuestos:  Desperdicio interno  Tabla de páginas  Acceso a disco  Traducción de direcciones  Estructura de los procesos 6.1 Tamaño de la página Desperdicio interno:  Fracción no utilizada de última página asignada  valor medio: 50%  Criterio: páginas pequeñas

81 Tema 12: Memoria Virtual 6.1 Tamaño de la página Tabla de páginas  Cuanto más pequeñas las páginas: más entradas en tabla de páginas  más operaciones necesarias para su manipulación  Criterio: páginas grandes Acceso al disco  Discos transfieren siempre bloques del mismo tamaño  toda página menor que el bloque de disco se transfiere en un único acceso  Criterio: páginas “grandes” (mismo tamaño bloque de disco)

82 Tema 12: Memoria Virtual 6.1 Tamaño de la página Traducción de direcciones  Cuanto más grandes las páginas: cada entrada de la memoria asociativa cubre un mayor rango de direcciones  menos accesos a memoria para obtener números de marco  Criterio: páginas grandes Estructura de los procesos  Procesos invierten mayor parte de su tiempo ejecutando bucles muy locales  Criterio: páginas pequeñas

83 Tema 12: Memoria Virtual 6.1 Tamaño de la página  Optimización en función de:  s (tamaño medio de los procesos)  e (tamaño de la entrada de la tabla de páginas)  p (tamaño de página, variable a optimizar)  Número medio de páginas por proceso:  Tamaño la tabla de páginas:  Desperdicio por fragmentación interna:  Sobrecarga total por proceso:

84 Tema 12: Memoria Virtual 6.1 Tamaño de la página  Minimicemos como función de p  Derivamos respecto a p:  igualamos a 0:  despejamos p:  Tamaños típicos actuales: 4Kb  SO puede usar un tamaño múltiplo del tamaño del traductor

85 6. Otros aspectos de la memoria virtual Tema 12: Memoria Virtual 1.Tamaño de la página 2.Páginas compartidas 3.Rearranque de la instrucción

86 Tema 12: Memoria Virtual 6.2 Páginas compartidas  Si página compartida es elegida como víctima: se deben actualizar todas las tablas de páginas que la comparten  Elementos de administración necesarios:  Tabla de páginas compartidas  Listas de procesos que las comparten  etc.  Criterios de sustitución: ¿y si una página muy usada por un proceso no es usada por los demás?  Tiempos virtuales: el menor  ¿Conjuntos de trabajo?  …  MORALEJA: las páginas compartida no se descargan

87 6. Otros aspectos de la memoria virtual Tema 12: Memoria Virtual 1.Tamaño de la página 2.Páginas compartidas 3.Rearranque de la instrucción

88 Tema 12: Memoria Virtual 6.3 Rearranque de la instrucción  Una instrucción puede provocar distintos fallos de página:  Posibilidades:  Al cargar el código de la instrucción  Al acceder a primer operando  Al acceder a segundo operando  En el caso de ambos operandos, puede ocurrir una vez se han empezado a copiar bytes  No bastaría con ejecutar de nuevo la instrucción:  Cuando ocurre un fallo de página, la instrucción puede haber tenido ya efectos REP MOVS m32, m32

89 Tema 12: Memoria Virtual 6.3 Rearranque de la instrucción  Rearranque de instrucción:  capacidad de los procesadores para conservar su estado interno tras un fallo de página, y reanudar la instrucción causante del fallo a partir de dicho estado una vez cargada la página  Si un procesador no soporta rearranque de instrucción:  No sirve para construir un sistema con memoria virtual

90