Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduccin
Problema: ejecutar programas de tamao mayor que la memoria disponible Soluciones Memoria virtual: Control realizado por el S.O. La memoria virtual (MV) se basa en el principio de localidad de las referencias. La idea es mantener en memoria principal slo la informacin que se necesite en cada momento Acta como una cach de objetos
Gestin de memoria 2
Permite aumentar el tamao de los programas permitiendo que sean mayores que la memoria fsica Permite aumentar el grado de multiprogramacin, ya que permite ubicar ms procesos en memoria Proporciona transparencia cara al usuario Reduce la E/S, ya que evita cargar partes de un programa que raramente se utilizan
Gestin de memoria 3
Implementacin
La memoria virtual puede basarse tanto en mecanismos de paginacin como de segmentacin Lo habitual es que se base en un esquema paginado por las siguientes razones: Al trabajar con bloques de tamao fijo, las transferencias desde y hacia el disco son ms simples Las polticas de ubicacin son ms simples: todos los bloques son iguales
Gestin de memoria 4
Soporte hardware
Gestin de memoria 5
y x z
(P0) (P4)
Carga dinmica
S. O.
Programa Referencia 1 LOAD M 6 Reiniciar la instr. 5
0
2 Excepcin
Memoria secundaria
Paginadores
Son la parte del SO responsable de mover pginas entre la MP y el disco y viceversa Pueden ser de tres tipos: De archivos (mmap, exec) De objetos annimos (swap) De dispositivos (frame buffer)
Gestin de memoria 8
Es la probabilidad de que se produzca un fallo de pgina p = nmero de fallos / nmero total de referencias: 0 p 1
Tasa de fallos de pgina
La tasa de fallos de pgina disminuye cuando aumenta el nmero de marcos
Nmero de marcos
Gestin de memoria 9
Los tiempos que ms afectan son: Los cambios de contexto Salvar una pgina modificada a disco (page out) Cargar la pgina referencia de disco a memoria (page in) El planificador asigna la CPU a otros procesos mientras se realizan las lecturas (page in) y escrituras asociadas al fallo de pgina
Gestin de memoria 10
Rendimiento de la paginacin
Tiempo de acceso efectivo (TAE): TAE = (1 - p) * TAM + p * (1 + pm) * TTP donde: TAM: tiempo de acceso a memoria TTP: tiempo de transferencia pgina/disco p: tasa de fallos de pgina pm: probabilidad de que la pgina a reemplazar haya sido modificada
Gestin de memoria 11
Hiperpaginacin (Thrashing)
Thrashing Utilizacin de la CPU
Grado de multiprogramacin
Hiperpaginacin: Un proceso genera fallos de pgina frecuentemente y el sistema pasa la mayor parte del tiempo paginando
Gestin de memoria 12
Hiperpaginacin (Thrashing)
Posible causa de la hiperpaginacin: Un proceso necesita ms marcos, su tasa de fallos de pgina aumenta y se produce la siguiente reaccin en cadena: Disminuye el uso de la CPU El S.O. decide aumentar el grado de multiprogramacin La tasa de fallos de pgina se incrementa ms Soluciones: Reducir la multiprogramacin o emplear un algoritmo de reemplazo local o por prioridades Prevenir la hiperpaginacin
Gestin de memoria 13
Algoritmos
Poltica de asignacin: Qu cantidad de memoria real se asigna a un proceso activo? Poltica de ubicacin: Dnde puede ubicarse un bloque en memoria principal? Poltica de bsqueda: Cundo y qu bloques traer del almacenamiento secundario a MP? Paginacin anticipada Paginacin por demanda Poltica de reemplazo: Qu bloque debera sustituirse al traer a memoria principal un nuevo bloque si no hay memoria libre?
Gestin de memoria 14
Polticas de asignacin
El mnimo nmero de marcos que debe asignarse a un proceso est definido por la arquitectura mbito del reemplazo de pginas
Ventajas
Reemplazo local Reemplazo global
Polticas de ubicacin
Mtodos utilizados para contabilizar la memoria utilizada y libre: Mapa de bits Listas Polticas de ubicacin: First fit: el primero que sirva En paginacin:
Indiferente
Next fit: el siguiente que sirva Best fit: el que mejor se adapte
En segmentacin
Gestin de memoria 16
Sistema Buddy
Bloques libres
Inicial P1 pide 70 P2 pide 35 P3 pide 80
1024 Kb P1 128 256 256 P3 P3 P3 P3 P3 128 128 128 128 128 1024 Kb 512
1 3 3 3 4 3 4 3 1
Gestin de memoria 17
P1
P1 128 128 128
P2 64 P2 64
P2 64 P2 P4 64 P4 256
512
512 512 512 512 512
Devuelve P1
P4 pide 60 Devuelve P2 Devuelve P4 Devuelve P3
El camino que toma un programa cuando se est ejecutando no es predecible Se cargan las pginas a medida que se necesitan Ventajas: Las pginas tradas son las que realmente se necesitan La sobrecarga que implica la decisin de qu pginas traer al almacenamiento principal es mnima
Gestin de memoria 18
Trata de evitar los retardos por fallos de pgina Se cargan un cierto nmero de pginas en base a una prediccin Ventajas: Si la prediccin es buena, el tiempo de ejecucin de los procesos se reduce considerablemente Con la reduccin de costes del hardware, las consecuencias de una mala prediccin son menos graves
Gestin de memoria 19
Reemplazo de pginas
Es necesario cuando se produce un fallo de pgina y est toda la memoria llena Tasa de fallos uno por cada 106 2 x 107 accesos Si hay un fallo de pgina (miss) hay que: Encontrar la pgina demandada en memoria auxiliar Encontrar un marco libre o liberarlo usando un algoritmo de reemplazo de pginas Cargar la pgina en memoria principal (page in) Transferir el control al proceso de usuario
Gestin de memoria 20
Se pretende utilizar el algoritmo que seleccione pginas que causen la frecuencia de fallos ms baja Criterios para valorar la calidad de los algoritmos de sustitucin: Baja sobrecarga Sin ajustes (No tuning) Aproximacin al LRU (menos usada recientemente)
Gestin de memoria 21
Cadenas de referencia
Para evaluar la calidad de los algoritmos de sustitucin se consideran: Cadenas de referencia: listas de referencias a pginas Nmero de marcos de pgina de que se dispone Obtencin de las cadenas de referencia: Artificialmente, de forma pseudoaleatoria Grabando una traza de ejecucin
Gestin de memoria 22
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 pginas de 100h palabras Cadena de referencias:
slo nos interesa el nmero de pgina si se referencia una pgina p, las referencias inmediatamente sucesivas a esa pgina nunca causarn fallo de pgina
1, 4, 1, 6, 1, 6, 1, 6, 1, 6, 1
Existen diferentes algoritmos, entre ellos: Algoritmo ptimo Algoritmo FIFO Algoritmo LRU Algoritmos de aproximacin al LRU
Gestin de memoria 24
Algoritmo ptimo
Se reemplaza la pgina que va a tardar ms tiempo en ser usada La tasa de fallos es la ms baja posible Algoritmo imposible de realizar Criterio comparativo
Gestin de memoria 25
Algoritmo ptimo
Ejemplo:
7
7
Cadena de referencia
2
7 2 0 1 7
0
7 0
1
7 0 1
0
2 0 1
2
2 0 3
1
2 0 3 1 3
2
2 0 1
0
2 0 1
2 2 2 2 2 2 2 0 0 0 4 4 4 4 0 0 Marcos de pgina 3 3 3 3 3 3 3 1 1 0 4
8 fallos de pgina
Gestin de memoria 26
Algoritmo FIFO
0
7 0
1
7 0 1
2
7 2 0 1 7
0
2 0 1
2
0 2 3
1
0 2 1 3 2
2
0 1 2 3 3
0
0 1
2
0 0 2 2 4 2 4 4 4 2 2 2 2 0 3 3 3 3 Marcos de pgina 0 0 0 0 1 1 3 3 3
12 fallos de pgina
Gestin de memoria 27
Algoritmo FIFO
Algoritmo sencillo de entender e implementar Inconvenientes: Rendimiento del algoritmo pobre. Pginas frecuentemente usadas pueden ser sustituidas Se puede producir la Anomala de Belady: aumento del nmero de fallos de pgina al aumentar el nmero de marcos
Gestin de memoria 28
Anomala de Belady
Ejemplo:
1 2 2 3 2 3
11 2 1 3 1 4 4 1 1 4 2 4 5 1 5 1 5 2 5 3 5 4 55 5
1 4 2 3 1 Con 3 marcos, 9 fallos de pgina
1 1 2 1 2 3 5 4 5 1 5 5 1 2 1 1 1 3 2 2 3 2 3 3 2 2 4 4 4 4 3 4 1 4 1 2 de3 Con 3 marcos, 9 fallos pgna Con 4 marcos, 10 fallos de pgina 4 1 2 3 4 1 4 1 1 2 2 3 4 3 4 1 1 2 3 4 2 2
5 4 3 1 4 2 3 2 5
5 4 3 5 4 2 3 1
Gestin de memoria 29
Algoritmo de aproximacin al reemplazo ptimo Basado en utilizar el pasado reciente como una prediccin del futuro ms prximo Sustituye la pgina menos usada en el pasado inmediato Carece de la anomala de Belady La implementacin requiere de hardware adicional: Campo en las entradas de la tabla de pginas Pila de las pginas en memoria
Gestin de memoria 30
Podra comportarse errneamente el algoritmo con un bucle que ocupa varias pginas? Cadena de referencia Ejemplo:
7
7
0
7 0
1
7 0 1
2
7 2 0 1
7
0
2 0 1
2
0 3 2
1
1 0 3 2 0
2
1 3 2
0
1 3 0 2
3
4 0 2 2 4 2 4 4 0 0 0 0 0 3 0 3 3 Marcos de pgina 3 2 2 2 2 1 3 3 3 1 2 3 0 4
11 fallos de pgina
Gestin de memoria 31
Existen diferentes algoritmos, entre ellos: Algoritmo del reloj global Algoritmo FIFO con segunda oportunidad Algoritmo NFU
Gestin de memoria 32