Tema 4 - Memoria Virtual
Tema 4 - Memoria Virtual
Tema 4 - Memoria Virtual
Contenido
aspectos
generales
introducción
paginación
segmentación
conclusiones
introducción
virtual introducción
Contenido
aspectos
Técnica que permite la ejecución de un
generales proceso aunque no esté totalmente en
introducción
memoria. El resto del proceso se
encontrará en memoria secundaria
paginación
segmentación
Ventajas:
conclusiones
Un programa ya no está restringido por la
cantidad de memoria física disponible
Se aumenta la utilización de la CPU, al
aumentar el grado de multiprogramación
Se requiere menos E/S para cargar o
intercambiar los procesos
Desventajas:
Puede reducirse el rendimiento del sistema si
no se emplea con cuidado
virtual introducción
Contenido
aspectos
El mecanismo más elemental de
generales memoria virtual es el de recubrimientos
introducción
(overlays)
paginación Se encuentran varias implementaciones
segmentación
de memoria virtual:
conclusiones paginación por demanda
segmentación por demanda
Se mantienen en memoria principal
aquellas páginas o segmentos que sean
necesarios en cada momento
El conjunto de páginas o segmentos que
se mantienen para cada proceso
constituyen su conjunto residente
virtual paginación por demanda
Contenido
aspectos
generales
introducción
paginación
segmentación
conclusiones
segmentación
1 página 0
página 0 0 1 2
conclusiones
página 1 1 4 3 página 2
página 2 2 3 4 página 1
página 3 3 7 5
tabla de 6
memoria
páginas
lógica 7 página 3
memoria
física
virtual paginación por demanda
introducción
Contenido
aspectos Se combinan las técnicas de:
traducción de direcciones
generales
paginación simple
introducción marco
paginación intercambios
Dirección virtual (swapping)
Dirección física
paginación 0
p d m d 1 página 0
segmentación Acceso a
página 0 0 1 2 memoria
conclusiones
página 1 1 4 3 página 2
2 página 1
página Tabla
2 de páginas 3 4
página 3 3 7 5
tabla de Memoria
CPU memoria 6
páginas principal
lógica p m 7 página 3
memoria
física
virtual paginación por demanda
tabla de páginas
Contenido
aspectos Además del número de marco,
generales
cada entrada de la tabla de
introducción páginas posee:
paginación
un bit de validez que indica si la
segmentación
página está cargada actualmente en
conclusiones memoria
reiniciar
instrucción
actualizar traer
tabla de página
páginas
memoria
principal
virtual paginación por demanda
reemplazo de página
algoritmo
Contenido de reemplazo
acceso a tablaSidelapáginas
aspectos memoria está totalmente
generales
si (bit_de_validez ocupada= 1) es necesario extraer una
introducción
acceder página
a memoriade memoria (víctima) para
sinopaginación
dejar el espacio necesario para la
si no existe marco libre
segmentación
nueva página
seleccionar página víctima a sustituir
conclusiones
actualizar tabla de páginas
si (bit_de_modificación = 1)
Si el bit de modificación es 0 (la
escribir página en memoria auxiliar
página es limpia) no será necesario
finsi
finsi escribir la página en memoria
secundaria
transferir nueva página a memoria principal
actualizar tablas
finsi
virtual paginación por demanda
rendimiento
Contenido
aspectos
La tasa de fallos es la probabilidad de que
generales se produzca un fallo de página:
introducción
p = nº de fallos / nº total de referencias
paginación 0p1
segmentación
Si p=0 no se produce ningún fallo
conclusiones
Si p=1 cada referencia es un fallo de página
conclusiones
Existen diferentes algoritmos,
entre ellos:
Algoritmo FIFO
Algoritmo óptimo
Algoritmo LRU
Algoritmo de segunda oportunidad
virtual paginación por demanda
algoritmos de reemplazo | serie de referencias
Contenido
aspectos
generales Representa la secuencia de páginas
introducción que han sido accedidas
paginación Cada dirección lógica emitida por el
segmentación procesador se reduce a su número de
conclusiones
página asociado
Si hay varias referencias consecutivas
a una misma página, se eliminan las
repeticiones
Ejemplo:
• Tamaño de página = 1024
• Referencias: 2000, 15, 48, 1500, 3000
• Serie de referencias: 1, 0, 1, 2
virtual paginación por demanda
algoritmos de reemplazo | FIFO
Anomalía
Contenido de Belady
aspectos
Se producen
generales
Se más
elimina la página
fallos quealhace
de página más
aumentar
el númerotiempo
introducción de marcos que fue cargada en memoria
paginación
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2
1 2 03 14 1 2 5 1 12 3 64 5 6
segmentación0 1
1 42 52 25 1 9 fallos
conclusiones1 22 13 1 3 2de página 2
2 33 24 2 4 3 3
4 5 7
1 2 3 4 1 2 5 1 2 3 4 5
0 1 1 5 4
Inconvenientes: 10 fallos
1 2 2 1 5 de página
2 3Una página que 2se referencie mucho y sea
antigua se sustituirá
3 4 3
Se puede producir la anomalía de Belady
virtual paginación por demanda
algoritmos de reemplazo | óptimo
Contenido
aspectos
generales
Se reemplaza la página que no se usará
durante un mayor periodo de tiempo
introducción
paginación 1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2
segmentación
0 1 1 1
1 2 2 2 2 2
conclusiones
2 3 3 3
3 4 6 6
4 5 7
paginación
Aproximación al algoritmo óptimo que
utiliza el pasado reciente como
segmentación
aproximación de lo que sucederá en el
conclusiones
futuro cercano
1 2 3 4 2 1 5 6 2 1 2 3 7 6 3 2
0 1 1 1
1 2 2 2 2 2
2 3 6 6
3 4 3 3
4 5 7
virtual paginación por demanda
algoritmos de reemplazo | 2ª oportunidad
Contenido
aspectos
generales
Se escoge una página según un criterio y
1 2 3 se4 2examina
1 5 6 2su1bit 2 de3 7referencia:
6 3 2
introducción
0 1 1 bit está
Si el 6 a 1, se la da6una segunda
1
paginación
2 2
oportunidad2 2 2
2
segmentación 3 • Se borra su bit de1referencia (se pone a 0)
3
conclusiones 4 • Se elige la siguiente página,3 aplicando3de nuevo la misma regla
4 Si el bit
5 está 0, es sustituída 7
Se puede implementar mediante una
cola circular (algoritmo Página del Bitreloj)
de referencia
1
6 0
1
2 1
0
1
3 0
1
4 0
1
5 0
1
virtual paginación por demanda
asignación de marcos
Contenido
aspectos Se debe resolver el problema de cómo se
generales
reparten los marcos entre todos los
introducción procesos
paginación Existe un mínimo número de marcos que
deben asignarse a un proceso, que está
segmentación definido por la arquitectura del repertorio
conclusiones de instrucciones
Asignación equitativa: si hay m marcos y
n procesos se asignan m/n marcos a
cada uno
Asignación proporcional: se asigna
memoria a cada proceso según su
tamaño
Asignación por prioridad: asignación
proporcional basada en las prioridades
de los procesos
virtual paginación por demanda
ámbito del reemplazo
Contenido
aspectos
generales Reemplazo global:
introducción Un proceso elige del conjunto de
paginación marcos total
segmentación Puede elegir marcos de otro proceso
conclusiones El número de marcos asignado a un
proceso es variable
Reemplazo local:
Un proceso sólo selecciona marcos de
los que tiene asignados
El número de marcos asignado es fijo
Se puede producir hiperpaginación
virtual paginación por demanda
hiperpaginación (thrashing)
Contenido
aspectos
generales
Alto índice de actividad en el tráfico de
información entre memoria central y
introducción
memoria auxiliar
paginación
segmentación
Se produce cuando un proceso emplea
conclusiones activamente un número determinado de
páginas y tiene asignado un número
menor de marcos.
conclusiones
controlar la frecuencia de fallos de
página
segmentación
Si se excede el límite superior, se
asignan más marcos al proceso
conclusiones
Si cae por debajo del límite
inferior, se liberan marcos
Un proceso puede llegar a
suspenderse si se queda con muy
pocos marcos, al haberlos cedido a
otros procesos
virtual paginación por demanda
modelo del conjunto de trabajo
Contenido
aspectos
generales
Se basa en el principio de localidad:
introducción
a medida que progresa la ejecución
de un programa, las referencias a
paginación
memoria evolucionan de una
segmentación
localidad a otra
conclusiones
Al conjunto de páginas que se
utilizan en cada momento se le
denomina conjunto de trabajo
Estas páginas no son conocidas a
priori
El modelo del conjunto de trabajo
intenta estimarlas a partir del
pasado reciente
virtual paginación por demanda
modelo del conjunto de trabajo
Contenido
aspectos El conjunto de trabajo es el conjunto de
generales
página de las últimas n referencias a
introducción memoria (ventana del conjunto de
paginación trabajo)
segmentación 26157777516234123444343444132344434443
conclusiones n=10 t n=10 t
1 2
CT1={1,2,5,6,7}
CT2={3,4}
Si TCTi es el tamaño de cada conjunto de
trabajo, el número total de marcos
demandados es D=(TCTi)
Si M es el número de marcos de la
memoria, si D>M se produce
hiperpaginación
virtual paginación por demanda
implementación de la tabla de páginas
Contenido
Dirección virtual Dirección física
p
aspectos
p Tabla de página multinivel
generales
1 2 d m d
Cuando las tablas de páginas son muy
introducción grandes, se pueden usar 2 o más niveles de
paginación
paginación
Tabla
La tabla de páginas estará paginada
de páginas
segmentación
Se realizan más accesos a memoria
conclusiones
Tabla de páginas
Tabla invertida Memoria
p1 Cuando el de
espacio virtual es muchoprincipal
mayor
páginas
que el físico la tabla de páginas puede ocupar
mucha memoria
La tabla se indexa por número de marco en
lugar de ppor
2
m
número de página
La traducción es mucho más difícil: hay que
buscar una combinación (identificador de
proceso, número de página) coincidente
virtual paginación por demanda
implementación de la tabla de páginas
Contenido
aspectos
generales Tabla de páginas en memoria:
introducción El MMU sabe la posición de memoria
paginación donde está la tabla de páginas del
segmentación
proceso: registro base de la tabla de
páginas (PTBR) y registro de longitud
conclusiones
de la tabla de páginas (PTLR)
Obtiene el marco asociado
Construye la dirección física
Accede a memoria física
Se realizan dos accesos a memoria
principal
virtual paginación por demanda
implementación de la tabla de páginas
Contenido
aspectos
generales Tablas en registros dedicados:
introducción Para que la búsqueda sea más rápida,
paginación todas las tablas están en una memoria
segmentación
caché
conclusiones
Tiene alto coste
Se realiza un acceso a caché y otro a
memoria principal
virtual paginación por demanda
implementación de la tabla de páginas
Contenido
aspectos
generales Buffers de traducción anticipada
introducción (TLBs: Translation Look-aside
paginación Buffers):
segmentación Las tablas se contienen parcialmente
conclusiones en caché (los descriptores más
recientemente utilizados)
Si no se encuentra en caché, se busca
en la memoria principal
Si hay acierto en la caché, se realiza
un acceso a caché y otro a principal.
Si no hay acierto, se accede una vez a
caché y dos veces a memoria principal
virtual segmentación por demanda
Contenido
aspectos
generales
introducción
paginación
segmentación
conclusiones
paginación
La tablas de segmentos d incorpora además
CPU
de los registros base y límite, los bits de
segmentación
validez, referencia tabla de y modificación
segmentos Memoria
Límite Base
conclusiones principal
Si se accede a un segmento que está
fuera de memoria se produce una
interrupción por fallo de segmento
La asignación se produce sobre zonas
libres de tamaño suficiente:
d < límite
SI
d + base
dirección
física
si no hubiera espacio
NO libre, se compacta
error de protección
si no fuera suficiente, se utilizan técnicas
similares a las de paginación (FIFO, LRU,…)