Memoria Virtual
Fundamentos
Emely Arráiz
Ene-Mar 08

Paginación por
demanda
Algoritmos de
Reemplazo
Asignación de Frames
T...
Fundamentos





Solo parte del programa necesita estar en
memoria para su ejecución.
Espacio de direcciones lógicas p...
Paginación por demanda





Se llevan páginas a memoria sólo cuando se
necesiten.
Ventajas
– menos memoria necesitada p...
Memoria Virtual

page0
page1
page2

Tabla de
Pagina
pagen

Memoria
Virtual

Memoria
Fisica
Bit de Valido/Invalido





Cada entrada de la tabla de página tiene asociado
el bit de valido/invalido
– bit = 1 enton...
Bit Valido/invalido
0

A
0
B
1
C
2
D
3
E
4
F
5
6
G
H
7
Logical
Memory

1
frame Bit V

2
3

0

4

1

4

2

0

3
4

6

0

8
...
Fallo de página








La primera referencia causará un fallo de página
Chequea si la referencia es válida o no
Si...
Reemplazo de Página


Que sucede si no hay frame libre?
– Encontrar un frame en memoria que pueda
sacarse a área de swap ...
Tiempo de Acceso Efectivo



Sea p la probabilidad de fallo de página.
PF denota page fault
TAE = (1-p)Tacc mem + p( Tie...
Reemplazo de Página







Si no hay frames libres la rutina de servicio del
fallo de página debe ser modificada en fo...
Algoritmos de Reemplazo





Queremos algoritmos con baja tasa de Page fault
Cómo evaluamos los algoritmos?
– Los algor...
Algoritmos de Reemplazo
FIFO (First-In-First-Out)
• 3 frames disponibles
• string de referencia : 1 2 3 4 1 2 5 1 2 3 4 5
...
Algoritmos de Reemplazo
FIFO (First-In-First-Out)
• 4 frames disponibles
• string de referencia : 1 2 3 4 1 2 5 1 2 3 4 5
...
Algoritmos de Reemplazo




Óptimo
Reemplazar la página que no se usará por largo
período de tiempo.
4 frames disponibl...
Algoritmos de Reemplazo




Optimo
Cómo se puede conocer dicha información?
– No se puede conocer. El SO no tiene forma ...
Algoritmos de Reemplazo




LRU
Reemplazar la página que no ha sido referenciada
por más largo tiempo.
4 frames disponi...
LRU implementación






Contador: cada página tiene un contador. Cada
vez que la página es referenciada, se copia el
c...
LRU implementación


Stack: lleva en la pila el número de la página
referenciada
– La página referenciada es movida al to...
LRU implementación








Implementación de LRU necesita gran apoyo del
hardware.
Pocos sistemas proveen tal soport...
Aproximación a LRU


Bit de Referencia
– A cada página se le asocia un bit, inicializado en 0
– Cuando la página es refer...
Second Chance


Second Chance
– Es básicamente el FIFO pero con bit de referencia
 FIFO

me dá la página posible a reemp...
Otros Algoritmos


Algoritmos que usan contador con el número de
referencias a cada página
– LFU (Least Frequently Used)
...
Clases de Páginas


Se define clases de páginas
– Clase Características
0
(0,0) no referenciada, no modificada
1
(0,1) no...
Asignación de Frames





Como distribuir los frames libres a los procesos?
– Asignación fija
– Asignación por priorida...
Asignación



Equitativa: si M frames y N procesos el número de
frames asignados es igual a M/N.
Proporcional: se le asi...
Asignación




Se puede pensar en un esquema como el
proporcional pero en lugar de usar el tamaño se
toma en cuenta la p...
Asignación Global/local




Reemplazo Global: el frame a reemplazar es
tomado del conjunto de frames que se tiene. Un
pr...
Thrashing






Muy Alta actividad de paginación. El proceso
emplea mas tiempo en estar paginandose que
ejecutandose.
E...
Thrashing




Como evitar thrashing?
– Dándole al proceso los frames que necesite.
Cuantos necesita?
– Working set.
Working Set





Working Set está basado en el modelo de
localidad.
Localidad: conjunto de páginas las cuales son
usada...
Working Set






Working set es el número total de páginas
referenciadas en la ventana mas reciente.
Si la ventana e...
Working Set


Si el número total de frames demandados es
mayor que el total de frames, entonces un
proceso debe ser suspe...
Frecuencia de Page Fault





Una forma de controlar thrashing es por medio
del PFF (Page Fault Frequency).
Siempre que...
Otras Consideraciones




Prepaging : búsqueda anticipada de páginas.
Tiene su justificación cuando el costo del
prepagi...
Tamaño de Página


Paginas pequeñas:
– Menor fragmentación interna.
– Mas páginas por procesos.
– Largas tablas de página...
Tamaño de Página


Paginas grandes:
– Memoria secundaria diseñada para transferencia
eficiente de grandes bloques de dato...
Otras Consideraciones




Selección cuidadosa de las estructuras de datos y
programación puede incrementar localidad, lo...
Próxima SlideShare
Cargando en…5
×

Memvirtual

295 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
295
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
5
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.
  • T memoria = 1 microseg T swapp = 10 mseg
  • Memvirtual

    1. 1. Memoria Virtual Fundamentos Emely Arráiz Ene-Mar 08 Paginación por demanda Algoritmos de Reemplazo Asignación de Frames Thrashing
    2. 2. Fundamentos     Solo parte del programa necesita estar en memoria para su ejecución. Espacio de direcciones lógicas puede ser más grande que el espacio físico. Hace falta sacar páginas de memoria a área de swap. Memoria Virtual puede ser implementado por: – Demanda de páginas. – Demanda de segmentos.
    3. 3. Paginación por demanda    Se llevan páginas a memoria sólo cuando se necesiten. Ventajas – menos memoria necesitada por proceso – menos tiempo de I/O – más proceso atendidos Una página debe ser referenciada para ser usada – si la referencia es inválida entonces abort – si no está en memoria, buscarla y llevarla a memoria
    4. 4. Memoria Virtual page0 page1 page2 Tabla de Pagina pagen Memoria Virtual Memoria Fisica
    5. 5. Bit de Valido/Invalido    Cada entrada de la tabla de página tiene asociado el bit de valido/invalido – bit = 1 entonces página en memoria. – bit = 0 entonces página NO en memoria. Inicialmente todas las entrada tienen su bit inicializado en 0. Si durante la translación de dirección el bit de valido/invalido esta apagado (0) entonces ocurre un fallo de página o page fault.
    6. 6. Bit Valido/invalido 0 A 0 B 1 C 2 D 3 E 4 F 5 6 G H 7 Logical Memory 1 frame Bit V 2 3 0 4 1 4 2 0 3 4 6 0 8 6 1 0 7 0 C 7 10 5 9 Page Table 9 B C 5 6 0 1 1 A D E F G H A F Physical Memory
    7. 7. Fallo de página        La primera referencia causará un fallo de página Chequea si la referencia es válida o no Si es válida y la página no está en memoria se debe traer. Encontrar frame libre Ordenar al disco leer y llevar la página al frame escogido. Actualizar la tabla de páginas, bit V=1. Reiniciar la instrucción que causó el fallo
    8. 8. Reemplazo de Página  Que sucede si no hay frame libre? – Encontrar un frame en memoria que pueda sacarse a área de swap (disco). – Hace falta un algoritmo para reemplazo de páginas – Queremos un algoritmo que tenga buen desempeño, es decir un algoritmo que resulte en el menor número de fallos de páginas
    9. 9. Tiempo de Acceso Efectivo   Sea p la probabilidad de fallo de página. PF denota page fault TAE = (1-p)Tacc mem + p( Tiempo servicio del PF )
    10. 10. Reemplazo de Página     Si no hay frames libres la rutina de servicio del fallo de página debe ser modificada en forma tal que incluya reemplazo de página. Dicha modificación debe ser tal que no aumente en promedio el tiempo de atención de un page fault. Usar bit de modificado o bit de dirty para reducir el overhead de transferencia de la página Sólo hace falta escribir a disco aquellas páginas que han sido modificada.
    11. 11. Algoritmos de Reemplazo    Queremos algoritmos con baja tasa de Page fault Cómo evaluamos los algoritmos? – Los algoritmos se corren con un particular string de referencia a memoria y contamos el número de page fault que provoca. String de referencia a usar como ejemplo – 123412512345
    12. 12. Algoritmos de Reemplazo FIFO (First-In-First-Out) • 3 frames disponibles • string de referencia : 1 2 3 4 1 2 5 1 2 3 4 5 1 2 3 3 4 1 2 3 5 1 2 1 5 3 4 2 = 9 PF
    13. 13. Algoritmos de Reemplazo FIFO (First-In-First-Out) • 4 frames disponibles • string de referencia : 1 2 3 4 1 2 5 1 2 3 4 5 1 2 3 4 4 5 1 2 3 4 4 5 2 = 10 PF Anomalia de Balady´s Mas frames no implica menos Fallos de Páginas.
    14. 14. Algoritmos de Reemplazo    Óptimo Reemplazar la página que no se usará por largo período de tiempo. 4 frames disponibles string de referencia : 1 2 3 4 1 2 5 1 2 3 4 5 1 2 3 4 4 4 2 3 5 2 = 6 PF
    15. 15. Algoritmos de Reemplazo   Optimo Cómo se puede conocer dicha información? – No se puede conocer. El SO no tiene forma de conocer los eventos futuros. Por que se estudia? – Como medida de referencia o comparación con los otros algoritmos.
    16. 16. Algoritmos de Reemplazo    LRU Reemplazar la página que no ha sido referenciada por más largo tiempo. 4 frames disponibles string de referencia : 1 2 3 4 1 2 5 1 2 3 4 5 1 2 3 4 4 1 2 5 3 2 5 2 4 3 2 = 8 PF
    17. 17. LRU implementación    Contador: cada página tiene un contador. Cada vez que la página es referenciada, se copia el clock en el contador. Cuando se necesita buscar una página para reemplazo, se ven los contadores para determinar la que tiene el contador mas bajo. Desventaja: overhead.
    18. 18. LRU implementación  Stack: lleva en la pila el número de la página referenciada – La página referenciada es movida al tope de la pila – Puede ser implementada por medio de una lista doblemente enlazada. – Cada actualización del tope requiere en promedio la actualización de 6 pointers – La página a reemplazar está en el bottom de la pila.
    19. 19. LRU implementación       Implementación de LRU necesita gran apoyo del hardware. Pocos sistemas proveen tal soporte Otros algoritmos deben ser usados. Muchos sistemas soportan el bit de referencia. Asociado a cada página, el bit de referencia es actualizado por hardware al momento en que la página es referenciada. Instrucciones especiales para el manejo del bit de referencia.
    20. 20. Aproximación a LRU  Bit de Referencia – A cada página se le asocia un bit, inicializado en 0 – Cuando la página es referenciada el bit es colocado en 1. – Reemplazar una página con bit en 0. – Usar 8-bits guardar historia de los accesos a cada página  hardware actualiza los bits.  – No garantiza páginas únicas  sol: sacarlas todas. FIFO
    21. 21. Second Chance  Second Chance – Es básicamente el FIFO pero con bit de referencia  FIFO me dá la página posible a reemplazar  Examinamos el bit de referencia – Si bit R = 1 entonces  se limpia el bit de referencia  se deja la página en memoria, segundo chance  se busca la siguiente víctima. Bajo las mismas reglas que antes. – Si bit R = 0 entonces la página es la victima  Si llegamos a la última página en la revisión, continuamos la revisión por la primera.
    22. 22. Otros Algoritmos  Algoritmos que usan contador con el número de referencias a cada página – LFU (Least Frequently Used)  reemplaza la página con el contador mas pequeño  Para solventar la situación de tener contadores altos y no se está usando la página, se usa decrementar a intervalos regulares los contadores de páginas – MFU (Most Frequently Used)  reemplaza la página con el contador mas grande. Se basa en la hipótesis de que la página con el contador mas bajo son las que todavía no han sido usadas.
    23. 23. Clases de Páginas  Se define clases de páginas – Clase Características 0 (0,0) no referenciada, no modificada 1 (0,1) no referenciada, modificada 2 (1,0) referenciada, no modificada 3 (1,1) referenciada, modificada – Se reemplaza aquella página que pertenezca a la menor clase. Si existen muchas, se elige alguna política de selección. Ej. FIFO, Random, etc.
    24. 24. Asignación de Frames    Como distribuir los frames libres a los procesos? – Asignación fija – Asignación por prioridades. Cada proceso necesita un número mínimo de frames para su ejecución. El mínimo número de frames a asignar está determinado por el set de instrucciones de la arquitectura.
    25. 25. Asignación   Equitativa: si M frames y N procesos el número de frames asignados es igual a M/N. Proporcional: se le asigna una cantidad de frames que es proporcional a su tamaño. – si tamaño del proceso Pi – S = sumatoria(si) – m = número total de frames. #fi = ( si / S )*m
    26. 26. Asignación   Se puede pensar en un esquema como el proporcional pero en lugar de usar el tamaño se toma en cuenta la prioridad. Otro enfoque para cambiar el número de frames de un proceso es: – Cuando un PF:  usar para reemplazo uno de los frames del proceso  usar para reemplazo frames de procesos con prioridad menor que la del mismo.
    27. 27. Asignación Global/local   Reemplazo Global: el frame a reemplazar es tomado del conjunto de frames que se tiene. Un proceso puede tener frames de otros procesos. Reemplazo Local: solo se pueden seleccionar frames de los propios del procesos.
    28. 28. Thrashing    Muy Alta actividad de paginación. El proceso emplea mas tiempo en estar paginandose que ejecutandose. Esto conduce a: – bajo utilización de CPU – SO concluye que debe aumentar su nivel de multiprogramación. – SO suma otro proceso al sistema Thrashing es equivalente a tener el proceso ocupado en swap in y swap out
    29. 29. Thrashing   Como evitar thrashing? – Dándole al proceso los frames que necesite. Cuantos necesita? – Working set.
    30. 30. Working Set    Working Set está basado en el modelo de localidad. Localidad: conjunto de páginas las cuales son usadas juntas. Localidad está definida por la estructura del programa y datos. Definamos un tamaño de ventana donde se encuentra un número fijo de referencias a páginas y llamemolos Delta ∆
    31. 31. Working Set      Working set es el número total de páginas referenciadas en la ventana mas reciente. Si la ventana es muy pequeña no abarcará la entera localidad. Si la ventana es muy grande contendrá mas de una localidad. Si la ventana tiende a infinito tendrá todo el programa. Si el total de marcos demandados es superior al número total de marcos disponibles entonces thrashing
    32. 32. Working Set  Si el número total de frames demandados es mayor que el total de frames, entonces un proceso debe ser suspendido.
    33. 33. Frecuencia de Page Fault    Una forma de controlar thrashing es por medio del PFF (Page Fault Frequency). Siempre que la PFF se eleve por encima de un umbral, toda página referenciada que no está en memoria es lleva a memoria SIN reemplazo de alguna página. Esto implica incrementa sus frames. Si PPF cae por debajo de un umbral, aquellos frames que no han sido referenciado desde la última ocurrencia de PF, son liberados. Esto implica decrece sus frames.
    34. 34. Otras Consideraciones   Prepaging : búsqueda anticipada de páginas. Tiene su justificación cuando el costo del prepaging es menor que lo que cuesta servir el PF. correspondiente. Selección Tamaño de la página – Como seleccionar el tamaño?  Tamaño de la tabla de páginas  Utilización mejor de la memoria (fragmentación interna)  tiempo requerido para leer y escribir páginas  reducir tasa de fallo de páginas (localidad)
    35. 35. Tamaño de Página  Paginas pequeñas: – Menor fragmentación interna. – Mas páginas por procesos. – Largas tablas de páginas – Largas porciones de la tabla de páginas en memoria virtual – Muchas páginas en memoria principal – Refleja la localidad.
    36. 36. Tamaño de Página  Paginas grandes: – Memoria secundaria diseñada para transferencia eficiente de grandes bloques de datos. – Mas de una localidad por página. – Menor número de fallos de páginas. – Aumenta la fragmentación
    37. 37. Otras Consideraciones   Selección cuidadosa de las estructuras de datos y programación puede incrementar localidad, lo que implica disminuir la tasa de PF y el número de páginas en el working set. I/o Interlock – algunas veces es necesario anclar frames a memoria. Ej I/O sobre memoria usuario. – Lockbit se le asocia al frame.

    ×