AGENDA
Memoria VirtualPaginada
Paginación por demanda
Fallo de página
Tabla de páginas.
Reemplazo de página.
Algoritmos de reemplazo
Ejemplos de implementación en Linux y Windows 10.
2
Memoria Virtual
4
• Técnicaque permite la ejecución de procesos que no se
encuentran cargados en memoria principal.
• La idea es mantener en memoria principal sólo los
fragmentos de cada proceso que se estén utilizando.
• La MMU se encarga de mapear las direcciones virtuales
a físicas
Ventajas de MV
Losprogramas no estarán restringido por la cantidad de
memoria física disponible.
Ejecutar mayor cantidad de programas al mismo tiempo.
Menos operaciones de E/S para cargar o intercambiar
cada programa de usuario.
Libera al programador de la preocupación de que sus
programas quepan en memoria.
Optimiza el uso de memoria.
6
7.
Desventajas de MV
Elsistema puede comportarse de manera más lenta debido a
la gran carga de los datos.
Ocupa un área de disco duro que queda reservada solo para
ella y el resto del sistema no puede contar con ella.
No resulta fácil implementarla
7
Espacio de direccionesvirtuales
9
De un proceso hace referencia a la
forma lógica de almacenar un proceso
en memoria.
Esta forma consiste en que el proceso
comienza en una cierta dirección lógica
(ejemplo, dirección 0) y está almacenado
de forma contigua en la memoria.
Espacio de direcciones virtuales
10.
Paginación bajo demanda
Trae una página a memoria sólo cuando hace falta
La E/S se reduce
Se requiere menos memoria
La respuesta es más rápida
Puede haber más procesos en memoria
Se necesita una página la página es referenciada
referencia inválida aborta
no está en memoria se trae a memoria
“Intercambiador” perezoso
El intercambiador que trabaja con páginas es un paginador
10
11.
Bit de Validez
En cada entrada de la tabla de páginas hay un bit de validez
v en memoria,
i no en memoria o acceso ilegal
Al comienzo el bit de validez es inicializado a i en todas las entradas
Ejemplo de tabla de páginas:
Durante la traducción de direcciones, si el bit de validez de la entrada
de la tabla de páginas es i fallo de página 11
12.
Tabla de Páginas
12
Sonuna parte integral del Sistema
de Memoria Virtual en sistemas
operativos, cuando se utiliza
paginación.
Permite marcar una entrada como
inválida mediante un bit válido-
inválido o mediante un valor
especial de una serie de bits de
protección.
Tabla de páginas cuando algunas páginas no se
encuentran en MP
13.
¿Qué sucede sise trata de acceder a una página
y esta no está en memoria?
13
Hardware necesario parasoportar
Paginación bajo demanda
Tabla de página: Permite marcar una entrada como inválida
mediante un bit válido-inválido o mediante un valor especial de
una serie de bits de protección.
Memoria secundaria: Almacena aquellas páginas que no están
presentes en memoria principal.
Disco de alta velocidad dispositivo de intercambio
Sección espacio de intercambio
22
23.
Rendimiento de lapaginación bajo
demanda
Es crucial mantener una tasa de fallos de página baja en
los sistemas de paginación bajo demanda.
Si no es así, el tiempo efectivo de acceso incrementa,
ralentizando enormemente la ejecución de los procesos.
23
24.
Sustitución de páginas
Utilizala siguiente técnica:
Si no hay ningún marco libre, localiza uno que no
esté siendo actualmente utilizado y lo liberamos.
Podemos liberar escribiendo su contenido en el
espacio de intercambio y modificando la tabla de
página (y demás tablas) para indicar que esa
página ya NO se encuentra en memoria.
24
Rutina de serviciodel fallo de
página
26
1. Hallar la ubicación de la página deseada dentro del disco.
2. Localizar un marco libre:
a) Si hay marco libre, utilizarlo
b) Si no hay marco libre, usar un algoritmo de reemplazo de página
para escoger un marco víctima.
c) Escribir la página víctima en el disco y actualizar tablas
3. Leer la página del disco y colocarla en el marco recién liberado y
actualizar tablas
4. Finalmente reiniciar el proceso de usuario.
27.
Sustitución de Páginas
SiNO hay marco libre se necesitan 2 transferencias de páginas:
Una de carga y otra de descarga.
Duplica el tiempo de servicio del fallo de página e incrementa
correspondientemente el tiempo efectivo de acceso.
.
Podemos reducir la sobrecarga por transferencias de páginas
# Se usa el bit de modificación ( o bit sucio): sólo las páginas
modificadas se escriben a disco
Activado
No Activada
27
28.
Sustitución de páginas
•Con la paginación bajo demanda, el tamaño del espacio
lógico de direcciones ya no está restringido por la memoria
física.
• Dos problemas a resolver cuando utilizamos paginación
bajo demanda:
• Algoritmo de asignación de marcos
Algoritmo de sustitución de páginas
• Probablemente cada SO tenga su propio esquema de
sustitución
28
29.
Algoritmos de Reemplazode Páginas
Los algoritmos se EVALUAN ejecutándolos sobre una
cadena de referencias a memoria y calculando el
número de fallos de página producidos con esa cadena.
29
¿Cómo podemos seleccionar un algoritmo de sustitución concreto?
TASA DE FALLOS DE PÁGINAS MÁS BAJA
Generar cadenas de referencias
Forma artificial
(generador de número aleatorios)
# Obtener una traza de un sistema
determinado y
registrar la dirección de cada
referencia de memoria
30.
Número de fallosde página
Cadena de referencias
Algoritmo de sustitución
Número de Marcos de página disponible.
Incrementa el número de marcos, reduce el
número de fallos de páginas.
30
31.
Fallos de páginaen función del
número de marcos de Página
Cadena de referencia: 1, 4, 1, 6, 1, 6, 1, 6, 1
3 o más marcos de páginas 3 fallos de página
Uno para la primera referencia a cada página.
1 solo marco 11 fallos de página
Tendríamos una sustitución por cada referencia
31
Gráfica fe fallos de página
en función de número de
marcos
32.
Algoritmo FIFO (First-In-First-Out)
Primeroen entrar, primero en salir
32
• Es el algoritmo más sencillo para el reemplazo de página.
• Asocia a cada página el momento en que ésta fue traída a memoria.
• Cuando una página debe ser reemplazada
• se selecciona a la más antigua.
• Una cola FIFO: almacenar todas las páginas en memoria y sustituir la
situada al principio de la cola.
Es fácil de entender y programar Su rendimiento no es bueno
33.
Reemplazo de PáginasFIFO
33
• Cadena de referencia: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
• 3 marcos de páginas
• 15 fallos de páginas.
34.
Reemplazo de PáginasFIFO
34
• Cadena de referencia: 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
• 3 marcos de páginas
• 15 fallos de páginas.
35.
Cadena de referencia:1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
35
• 3 marcos de páginas 9 fallos de páginas
• 4 marcos de páginas 10 fallos de páginas
Algoritmo Óptimo
Reemplaza lapágina que no será usada por el período
de tiempo más largo.
Ejemplo con 4 marcos
Garantiza la tasa de fallos de página más baja posible.
37
• 3 marcos de páginas 9 fallos de páginas
• Mucho mejor ya que solo 9 fallos de páginas ante 15 de FIFO
38.
Algoritmo Óptimo
Reemplaza lapágina que no será usada por el período
de tiempo más largo.
Ejemplo con 4 marcos
Garantiza la tasa de fallos de página más baja posible.
38
• 3 marcos de páginas 9 fallos de páginas
Este algoritmo se usa para estudiar los accesos futuros a memoria el rendimiento
de otros. Ya que no se puede implementar.
39.
Algoritmo LRU (LeastRecently Used)
Menos usadas recientemente
39
• 3 marcos de páginas 12 fallos de páginas
• Mucho mejor ya que solo 12 fallos de páginas ante 15 de FIFO
Algoritmo LRU -Contadores
41
Implementaciones
Caso más sencillo.
Cada entrada de página tiene un contador, cada ves que la página es
referenciada se copia la hora en el contador.
Cundo una pagina necesita ser cambiada, se miran los contadores para
determinar cúal se cambia.
Requiere una búsqueda en la tabla de páginas para localizar la menos
usada recientemente
42.
Algoritmo LRU -Pila
42
Se mantiene una pila de números de páginas:
cada vez que se hace referencia a una página, se extrae esa página de la pila
y se coloca en la parte superior.
La página más recientemente usada estará siempre en la parte superior
La menos recientemente utilizada en la inferior.
43.
43 / 7
AproximaciónLRU
Concepto básico
Bit de referencia, si el valor del bit es 1 la página
fue accedida (lectura o escritura.)
Después un tiempo se puede determinar qué
páginas fueron usadas examinando el bit de
referencia, pero no en que orden.
44.
44 / 7
Algoritmode los bits de
referencia adicionales
Para cada página se tienen p.e. 8 bits, a intervalos
regulares se modifica un bit marcando si se
referenció la pág. transformado a decimal el
valor más chico se selecciona para reemplazar.
45.
45 / 7
Algoritmode segunda
oportunidad (del Reloj)
Se evalúa su bit de referencia:
Si es 1, la pág se usó, se cambia a 0 y se pasa a la
siguiente página.
Si es 0 se reemplaza esa página
Implementación con una cola circular, el puntero
apunta a la posible víctima.
46.
46 / 7
Algoritmode segunda
oportunidad mejorado
Al bit de referencia se le agrega un bit de modificación.
Tomados como par ordenado:
(0,0) no referenciada y no modificado, víctima ideal,
(0,1) no usada recientemente pero modificada, no tan
buena, hay que descargarla al disco
(1,0) se usó pero no se modificó, posiblemente se vuelva a
usar
(1,1) referenciada y modificada, posiblemente se use y hay
que escribirla a disco.
47.
47 / 7
Reemplazobasado en contador
LFU (Least Frecuently Used, menos frecuentemente
usado) la pág. con el contador más chico se
reemplaza. Contador alto pagina en uso activo.
MFU (Most Frecuently Used, mas frecuentemente
usado), se reemplaza la que tenga el contador
más alto. Contador bajo página recién cargada.
49 / 7
Asignaciónequitativa
Es fácil
Dado m marcos disponibles y n procesos,
asignamos m/n marcos a cada proceso.
¿Problema?
Un proceso puede no necesitar tantos marcos
los cuales se desperdician.
¿Solución?
50.
50 / 7
Asignaciónproporcional
Se asignan dependiendo del tamaño del proceso.
A cada proceso pi
se le asignan ai
= (si
/S) x m
marcos,
Donde :
si
: tamaño de la memoria virtual para pi
S: total de marcos necesarios (S = Σ si
)
m: total de marcos disponibles
51.
51 / 7
Asignaciónproporcional (cont.)
ai
tiene que ser un número mayor que número mínimo
de marcos requeridos, sin exceder la suma de m.
Si se incrementa la multiprogramación los procesos
reciben menos marcos.
Procesos de alta y baja prioridad tratados de igual
manera.
Asignar según la prioridad o una combinación de
tamaño y prioridad
52.
52 / 7
Asignaciónglobal y local
Reemplazo global: se escoge para reemplazar
un marco de cualquier proceso, un proceso
puede tomar un marco de otro
Reemplazo local: se escoge para reemplazar un
marco del proceso que necesita la página
53.
53 / 7
Sobrepaginación,
Hiperpaginación,Thrashing
Un proceso pasa más tiempo paginando que
ejecutándose
El uso de CPU cae
El SO agrega un nuevo proceso para aumentar la
multiprogramación.
54.
54 / 7
Hiper-paginación:soluciones
Reducir el grado de multi-programación.
Utilizar algoritmo de sustitución local.
Asignar tantas páginas como necesite.
¿Cómo saber?
55.
55 / 7
Conjuntode trabajo
Basado en la localidad de un programa
Dado Δ, que es una ventana del conjunto de
trabajo
Éste será igual a las últimas Δ referencias.
Si Δ es pequeño, el conjunto no abarca la
localidad completa. Muy grande, solapamiento de
localidades. Infinito conjunto es igual a las págs.
utilizadas.
56.
56 / 7
Conjuntode trabajo (cont.)
Propiedad importante, tamaño del conjunto de
trabajo WSSi
, para cada proceso.
Si la demanda total D = Σ WSSi
es mayor a m
habrá sobre hiper-paginación.
D < m, se puede agregar un nuevo proceso, sino
el SO suspende uno y reasigna sus marcos.
57.
57 / 7
Frecuenciade fallos de página
Dada una tasa de fallos de página, establecer un
límite superior y uno inferior
Por encima del límite superior asignar más
marcos
Por debajo quitar marcos a ese proceso.
58.
Ejemplos de SistemasOperativos
58
Windows 10
• Sistemas de 32 bits
el espacio de direcciones virtuales predeterminado de un proceso es de 2
GB, puede ampliarse a 3 GB.
Admiten 4GB de memoria Física
Implementa la mayoría de las características de administración de memoria:
Bibliotecas compartidas
Paginación a demanda
Copia en escritura, paginación
Compresión de memoria....
• Sistemas de 64 bits
el espacio de direcciones virtuales predeterminado de un proceso es de 128
TB, puede ampliarse a 3 GB.
Admiten 24 TB de memoria Física
59.
Ejemplos de SistemasOperativos
59
Windows 10
• Implementa paginación de demanda con agrupamiento.
• Administración de conjuntos de trabajos.
• Usa el algoritmo de reloj de aproximación LRU, con una
combinación de políticas de reemplazo de página locales y
globales. El administrador de memoria virtual mantiene una lista
de marcos de página libres
Notas del editor
#3 La mayoría de los ordenadores se organizan en cinco tipos de memoria: registros en la CPU ,
la memoria cache, la memoria RAM, el disco duro. Y también unidades de almacenamiento
En ese orden, van de menor capacidad y mayor velocidad a mayor capacidad y menor velocidad.
Este detalle impacta en la performance el proceso de Memoria Virtual.
La MV utiliza dos niveles de la jerarquía: La MP y Disco duro o disco de respaldo.
Para su funcionamiento la MV exige una gestión automática entre estos dos niveles.
#4 Una de las principales ventajas de este esquema es los
programas pueden tener un tamaño mayor que la propia memoria física.
Además, la memoria virtual abstrae la memoria principal, transformándola
conceptualmente en una matriz uniforme y extremadamente grande de posiciones de almacenamiento,
separando así la memoria lógica de la física.
Cada proceso tiene su propio espacio de direccionamiento virtual (o lógico)
y la UNIDAD DE GESTION DE MEMORIA (MMU) es la que se encarga de Mapear las direcciones virtuales a físicas.
#5 La memoria virtual se puede implementar por Paginación bajo demanda
O Segmentación bajo demanda
#6 Proporciona un mecanismo eficiente para la creación de procesos.
#7 Si no se utiliza adecuadamente puede reducir sustancialmente el rendimiento del sistema.
Jamás una configuración de Más memoria virtual podrá ser mejor que una ampliación de memoria RAM
#8 Entonces la MV es la Separación de la memoria lógica, tal como la percibe el usuario, con respecto a la memoria física.
Proporciona una memoria virtual extremadamente grande, solo cuando está disponible una memoria física de menor tamaño.
#9 La memoria física puede estar organizada en marcos de páginas y
estos estar asignados a un proceso pueden no ser contiguas.
Es responsabilidad de la UNIDAD DE GESTION DE MEMORIA MMU
establecer la correspondencia entre esas páginas lógicas y
los marcos de pagina física de la memoria.
#10 Es una estrategia que consiste en cargar inicialmente las páginas únicamente cuando sean necesarias.
Se utiliza justamente en los sistemas de MV
Consta de cargar durante la ejecución el programa solo cuando necesita las páginas.
Si no se acceden a algunas página estas nunca se cargarán en memoria.
-Es similar a un sistema de paginación con intercambio en la que los procesos residen en memoria secundaria (disco)
Pero en lugar de intercambiar un proceso completo usamos un intercambiador perezoso.
JAMÁS INTERCAMBIAR UNA PÁGINA CON LA MEMORIA A MENOS QUE ESTA VAYA SER NECESARIA.
#11 Para este esquema necesitamos algún tipo de soporte HW que distinga que página se encuentra en memoria y
cual reside en el disco.
Podemos usar para ello un esquema basado en un bit válido-inválido.
#12 La entrada de la tabla de páginas correspondiente a una página que no se encuentra actualmente en memoria
se marcará como inválido y contendrá la dirección de la página dentro del disco.
El proceso no tendrá ningún efecto si nunca intenta acceder a la página
#14 El acceso de una página marcada como inválida provoca una interrupción de fallo de página.
El HW de paginación, al traducir la dirección mediante la tabla de página, detectará que el bit de pagina está activado,
provocando una interrupción dirigida al sistema operativo.
#19 Ordenamos una operación de disco para leer la página deseada en el marco recién asignado
#20 Una vez completada la lectura del disco, modificamos la tabla interna que se mantiene con los datos del proceso
y la tabla de páginas para indicar que dicha página se encuentra ahora en memoria
#21 Reiniciamos la instrucción interrumpida. El proceso podrá ahora acceder a la página como si siempre hubiera estado en memoria.
Un requisito fundamental para la paginación bajo demanda es la necesidad de poder reiniciar
cualquier instrucción después de un fallo de página.
Al reiniciar el proceso en exactamente el mismo lugar y con el mismo estado.
Salvo que ahora la página se encontrará en memoria y será accesible.
#22
Usar Disco de estado solido tiene la ventaja en el tiempo de inicio de SO se reduce significantemente.
El teimpo de ejecución de los programas. Pero este tiene la desventaja del precio. Aunque vale la pena pagar.
SSD trabaja con bloquues.
#23 Es importante mantener baja la frecuencia de fallos de página,
ya que de lo contrario el tiempo de acceso aumentará y frenará drásticamente la ejecución de los procesos.
#25 Ahora podemos utilizar el marco liberado para almacenar la página que provocó el fallo de página en el proceso.
#26 Si no hay marco libre se necesitan 2 transferencias de páginas. Una de carga y otra de descarga.
Esta situación duplica, el la practica, el tiempo de servicio del fallo de página e
incrementa correspondientemente el tiempo efectivo de acceso.
#27 Esta situación duplica, el la practica, el tiempo de servicio del fallo de página e incrementa correspondientemente
el tiempo efectivo de acceso.
..
..
# Cada página tiene asociado un bit de modificación, este activado por el HW cada vez que se escribe una
palabra o byte de la página para indicar que ésta ha sido modificada. Cada vez que seleccionamos un página
verificamos el bit de modificación. ->
Activado: la página ha sido modificada desde que se leyó y hay que escribirla a disco.
No Activada: no se ha modificado desde su lectura y carga en memoria
#28 Cualquier mejora en los métodos de paginación proporciona un gran beneficio en término de rendimiento del sistema.
Existen muchos algoritmos distintos de sustitución de páginas, probablemente cada sistema operativo tenga su propio esquema.
#29 Los criterios a seguir para implementar un algoritmo de reemplazo de páginas son fundamentalmente dos:
Minimizar el número de fallos de página
Sencillez de implementación.
Podemos generar cadenas de referencia de dos formas
#Esta segunda opción produce un gran numero para reducir se puede emplear 2 hechos
#30 Para determinar el N° de fallos de página para una cadena de referencias concreta y un algoritmo de sustitución de páginas,
También necesitamos conocer el Número de Marcos de página disponible.
Que obviamente a medida que incrementa el número de marcos, reduce el número de fallos de páginas.
#31 Entonces podemos esperar tener una curva como muestra la imagen .
A medida que incrementa el numero de marcos, el numero de fallo de paginas cae hasta un cierto nivel mínimo.
Por supuesto que si añadimos memoria físic se incrementara el numero de marcos.
#32 No es necesario anotar cuando se cargó a memoria, simplemente crear una cola FIFO para almacenar todas
las páginas en memoria y sustituir la página situada al principio de la cola.
Cuando se carga en memoria una página nueva, se la inserta al fina de la cola.
#33 Los tres marcos Inicialmente están vacíos.
Las tres primeras referencias provocarán fallo de páginas al cargarse en esos marcos.
La siguiente referencia sustituirá a 7, ya que esta fue la primera en entrar (cargarse)
Puesto que el 0 es la siguiente referencia y ya está en memoria no se producirá un fallo de página.
La referencia 3 reemplazará a el 0 puesto que este es el primero en la cola…
debido a esta sustitución provoca un fallo de página.
#34 El problema consiste en que podemos sacar de memoria una página de memoria muy usada (activa)
solo porque es la más antigua.
Una mala página que hay que sustituir incrementa la tasa de fallos de página ralentizando la ejecución de los procesos,
eso no implica que la ejecución sea incorrecta,.
#35 Para ilustrar ese problema veamos el siguiente ejemplo.
El resultado es completamente inesperado … a ello se lo conoce como Anomalia de Belady
#36 Para algunos algoritmos de sustitución, la tasa de fallo de página puede incrementarse
a medida que se incrementa el número de marco de página asignados.
Uno de los resultados de esta anomalá fue la búsqueda de un algoritmo óptimo de sustitución de página.
#37 Aquel que tenga la tasa más baja de fallos de página entre todos los algoritmos y que nunca esté sujeto a la anomalía de Belady.
Este algoritmo Existe y se llama: Algoritmo optimo o MIN.
Ingresa la página 2 se reemplaza por el 7 que no va a ser utilizado hasta la referencia 18. La ref 0 y 1 se utilizarás antes .
#38
Desafortunadamente este algoritmo resulta difícil implementar porque requiere un conocimiento futuro de la cadena
de referencia.
Se utiliza principalmente con propósitos comparativos, para saber que algún nuevo algoritmo es óptimo o no..
#39 2- Basado en utilizar el pasado reciente como una predicción del futuro más próximo.
Se asocia a cada página el instante en que se usó por última vez, y cuando hay que sustituir una
página selecciona la página que no haya sido utilizada durante un periodo de tiempo más largo.
#41 Este esquema requiere una búsqueda en la tabla de páginas para localizar la menos usada recientemente
y realizar una escritura en memoria para cada acceso a memoria.
#42 Como hay que eliminar las entradas intermedias,
lo mejor es implementar lista doblemente enlazada con un puntero en la cabecera y otra a la cola.
Eliminar una página y colocarla en la parte superior de la pila requiere modificar 6 punteros en el caso peor
Es un poco más caro que la otra implementación pero no requiere buscar en la tabla de referecias.
Es apropiado para algoritmos de sustitución mediantes software o microcódigo.
No sufre la anomalía de belady.
#58 arquitecturas Intel: IA-32 y x86- 64) y ARM
Sistemas de 32 y 64 bits que se ejecutan en arquitecturas Intel.
#59 Una estrategia que reconoce la localidad de las referencias de memoria y, por lo tanto, maneja las fallos de la página al incorporar no solo la página con fallos, sino también varias páginas inmediatamente anteriores y posteriores a la página con fallos.
Cuando se crea un proceso, se le asigna un conjunto de trabajo mínimo de 50 páginas y un conjunto de trabajo máximo de 345 páginas. El mínimo de conjunto de trabajo es el número mínimo de páginas que el proceso tiene garantizado en la memoria;
Si hay suficiente memoria disponible, a un proceso se le pueden asignar tantas páginas como su conjunto de trabajo máximo. A menos que un proceso se configure con límites establecidos de trabajo duro, estos valores pueden ignorarse. La cantidad de memoria asignada a un proceso puede reducirse por debajo del mínimo en períodos de alta demanda de memoria.