SlideShare una empresa de Scribd logo
1 de 37
Memoria Virtual
Fundamentos
Emely Arráiz
Ene-Mar 08

Paginación por
demanda
Algoritmos de
Reemplazo
Asignación de Frames
Thrashing
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.
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
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 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.
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
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
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
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 )
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.
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
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
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.
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
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.
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
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.
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.
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.
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
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.
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.
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.
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.
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
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.
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.
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
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
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
∆
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
Working Set


Si el número total de frames demandados es
mayor que el total de frames, entonces un
proceso debe ser suspendido.
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.
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)
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.
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
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.

Más contenido relacionado

Destacado

Destacado (20)

Exp so politicas
Exp so politicasExp so politicas
Exp so politicas
 
Adrila anabelli zapata
Adrila anabelli zapataAdrila anabelli zapata
Adrila anabelli zapata
 
Memoria virtual2
Memoria virtual2Memoria virtual2
Memoria virtual2
 
Dispositivos de almacenamiento XD
Dispositivos de almacenamiento XDDispositivos de almacenamiento XD
Dispositivos de almacenamiento XD
 
Algoritmo óptimo de reemplazo de páginas
Algoritmo óptimo de reemplazo de páginasAlgoritmo óptimo de reemplazo de páginas
Algoritmo óptimo de reemplazo de páginas
 
Taller preguntas.
Taller preguntas.Taller preguntas.
Taller preguntas.
 
Administración de memoras
Administración de memorasAdministración de memoras
Administración de memoras
 
LRU Icesi. SO
LRU Icesi. SOLRU Icesi. SO
LRU Icesi. SO
 
Memoria virtual ferney linares
Memoria  virtual  ferney linaresMemoria  virtual  ferney linares
Memoria virtual ferney linares
 
Paginacion
PaginacionPaginacion
Paginacion
 
Paginacion
PaginacionPaginacion
Paginacion
 
Fernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtualFernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtual
 
Memoria virtual y paginacion
Memoria virtual y paginacionMemoria virtual y paginacion
Memoria virtual y paginacion
 
Algoritmo De Remplazo Fifo
Algoritmo De Remplazo FifoAlgoritmo De Remplazo Fifo
Algoritmo De Remplazo Fifo
 
Paginación y segmentación
Paginación y segmentaciónPaginación y segmentación
Paginación y segmentación
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Tema4
Tema4Tema4
Tema4
 
Sistemas operativos memoria virtual
Sistemas operativos memoria virtualSistemas operativos memoria virtual
Sistemas operativos memoria virtual
 
PaginacióN Y SegmentacióN
PaginacióN Y SegmentacióNPaginacióN Y SegmentacióN
PaginacióN Y SegmentacióN
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 

Similar a Memvirtual

Capitulo 9 Memoria Virtual
Capitulo 9 Memoria VirtualCapitulo 9 Memoria Virtual
Capitulo 9 Memoria Virtuallagm000
 
MEMORIA VIRTUAL - SISTEMAS OPERATIVOS
MEMORIA VIRTUAL - SISTEMAS OPERATIVOSMEMORIA VIRTUAL - SISTEMAS OPERATIVOS
MEMORIA VIRTUAL - SISTEMAS OPERATIVOSAnnimoLatinoamerica
 
Algoritmos de gestión de memoria
Algoritmos de gestión de memoriaAlgoritmos de gestión de memoria
Algoritmos de gestión de memoriaadolfoahumada94
 
Estrategias de administración del almacenamiento virtual
Estrategias de administración del almacenamiento virtualEstrategias de administración del almacenamiento virtual
Estrategias de administración del almacenamiento virtualKelly Jhojanna Pernia
 
Fernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtualFernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtualfernandorincon125
 
Fernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtualFernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtualfernandorincon125
 
Fernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtualFernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtualfernandorincon125
 
Primer trabajo administracion de la memoria y algoritmos de reemplazo de pagina
Primer trabajo administracion de la memoria y algoritmos de reemplazo de paginaPrimer trabajo administracion de la memoria y algoritmos de reemplazo de pagina
Primer trabajo administracion de la memoria y algoritmos de reemplazo de paginaJhiZzelh T Cz
 
memoria virtual xD
memoria virtual xDmemoria virtual xD
memoria virtual xDandramelek
 
MeMoRiA ViRtUaL
MeMoRiA ViRtUaLMeMoRiA ViRtUaL
MeMoRiA ViRtUaLandramelek
 

Similar a Memvirtual (20)

Capitulo 9 Memoria Virtual
Capitulo 9 Memoria VirtualCapitulo 9 Memoria Virtual
Capitulo 9 Memoria Virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Trabajo practico - Sistemas Operativos (358) - UNA
Trabajo practico - Sistemas Operativos (358) - UNATrabajo practico - Sistemas Operativos (358) - UNA
Trabajo practico - Sistemas Operativos (358) - UNA
 
MEMORIA VIRTUAL - SISTEMAS OPERATIVOS
MEMORIA VIRTUAL - SISTEMAS OPERATIVOSMEMORIA VIRTUAL - SISTEMAS OPERATIVOS
MEMORIA VIRTUAL - SISTEMAS OPERATIVOS
 
Algoritmos de gestión de memoria
Algoritmos de gestión de memoriaAlgoritmos de gestión de memoria
Algoritmos de gestión de memoria
 
Estrategias de administración del almacenamiento virtual
Estrategias de administración del almacenamiento virtualEstrategias de administración del almacenamiento virtual
Estrategias de administración del almacenamiento virtual
 
Memoria virtual
Memoria virtual Memoria virtual
Memoria virtual
 
Estructuras de hardware y de control.
Estructuras de hardware y de control.Estructuras de hardware y de control.
Estructuras de hardware y de control.
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Fernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtualFernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtual
 
Fernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtualFernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtual
 
Fernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtualFernando rincon s.o memoria virtual
Fernando rincon s.o memoria virtual
 
Actividad 2 sistemas operativos
Actividad 2 sistemas operativosActividad 2 sistemas operativos
Actividad 2 sistemas operativos
 
Finalfinal
FinalfinalFinalfinal
Finalfinal
 
Memoria virtual
Memoria virtualMemoria virtual
Memoria virtual
 
Op
OpOp
Op
 
Primer trabajo administracion de la memoria y algoritmos de reemplazo de pagina
Primer trabajo administracion de la memoria y algoritmos de reemplazo de paginaPrimer trabajo administracion de la memoria y algoritmos de reemplazo de pagina
Primer trabajo administracion de la memoria y algoritmos de reemplazo de pagina
 
memoria virtual xD
memoria virtual xDmemoria virtual xD
memoria virtual xD
 
MeMoRiA ViRtUaL
MeMoRiA ViRtUaLMeMoRiA ViRtUaL
MeMoRiA ViRtUaL
 

Más de David Lilue

Más de David Lilue (11)

Principios de diseño de Interfaces
Principios de diseño de InterfacesPrincipios de diseño de Interfaces
Principios de diseño de Interfaces
 
Historia de las Interfaces
Historia de las InterfacesHistoria de las Interfaces
Historia de las Interfaces
 
Memoria2
Memoria2Memoria2
Memoria2
 
Filesystem2
Filesystem2Filesystem2
Filesystem2
 
Disco
DiscoDisco
Disco
 
Sincronizacion Procesos
Sincronizacion ProcesosSincronizacion Procesos
Sincronizacion Procesos
 
Planificacion
PlanificacionPlanificacion
Planificacion
 
Thread
ThreadThread
Thread
 
Semaforos
SemaforosSemaforos
Semaforos
 
Proceso
ProcesoProceso
Proceso
 
Deadlock
DeadlockDeadlock
Deadlock
 

Memvirtual

  • 1. Memoria Virtual Fundamentos Emely Arráiz Ene-Mar 08 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
  • 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 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. 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. 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 – 123412512345
  • 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. 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. 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. 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 1 2 3 4 4 1 2 5 3 2 5 2 4 3 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.

Notas del editor

  1. T memoria = 1 microseg T swapp = 10 mseg