Memoria Virtual - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

Memoria Virtual

Description:

Reiniciar la instrucci n que caus el fallo. Reemplazo de P gina ... Sea p la probabilidad de fallo de p gina. PF denota page fault ... – PowerPoint PPT presentation

Number of Views:207
Avg rating:3.0/5.0
Slides: 38
Provided by: EmelyA4
Category:
Tags: fallo | memoria | virtual

less

Transcript and Presenter's Notes

Title: Memoria Virtual


1
Memoria Virtual
Emely Arráiz Ene-Mar 08
  • Fundamentos
  • Paginación por demanda
  • Algoritmos de Reemplazo
  • Asignación de Frames
  • Thrashing

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
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
Memoria Virtual

p
a
g
e
0
p
a
g
e
1
p
a
g
e
2
Memoria Fisica
Tabla de Pagina
p
a
g
e
n
Memoria Virtual
a
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
Bit Valido/invalido

0
1
A
0
Bit V
2
f
r
a
m
e
B
1
3
C
2
B
A
D
4
0
1
3
4
A
E
C
E
D
4
1
0
5
F
5
1
2
6
G
H
F
C
6
6
G
0
3
H
7
7
0
4
L
o
g
i
c
a
l
9
1
5
8
M
e
m
o
r
y
0
6
F
9
0
7
1
0
P
a
g
e
P
h
y
s
i
c
a
l
T
a
b
l
e
M
e
m
o
r
y
a
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 V1.
  • Reiniciar la instrucción que causó el fallo

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
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
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

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
  • 1 2 3 4 1 2 5 1 2 3 4 5

12

a
a
a
a
a
a
a
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


13

a
a
a
a
a
a
a
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


Anomalia de Baladys Mas frames no implica menos
Fallos de Páginas.
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

5
4
4 2 6 PF
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

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

3
3
4
4 2 2 8 PF
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

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

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

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

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

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

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

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

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

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

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

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

Thrashing
  • Como evitar thrashing?
  • Dándole al proceso los frames que necesite.
  • Cuantos necesita?
  • Working set.

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

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

Working Set
  • Si el número total de frames demandados es mayor
    que el total de frames, entonces un proceso debe
    ser suspendido.

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

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

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

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

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.
Write a Comment
User Comments (0)
About PowerShow.com