Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 10
Principios de la memoria virtual.
Hardware y estructuras de control
Memoria virtual basada en paginación.
Memoria Virtual
A.Ortigosa 3 A.Ortigosa 4
1
Paginación Tablas de páginas
- Son tablas que contienen (para cada proceso) el nº marco
Ptero a tabla
Dirección de páginas Dirección que corresponde a cada página virtual del proceso
lógica física
- Estructura de una entrada de la Tabla de Páginas:
(virtual)
CPU p d m d Número de marco
Rendimiento de un sistema
Segmentación
de paginación
Tiempo de acceso efectivo a memoria (tae) para un sistema de Técnica para mantener espacios independientes de
paginación de memoria mononivel: direcciones virtuales, llamados segmentos.
Pueden ser de distintos tamaños, incluso variar de tamaño
tae= tb + (1 - p) x tam + p x (t-fallo + tam) dinámicamente
Dirección = nº segmento + desplazamiento
tb: tiempo medio de búsqueda en la tabla de páginas La segmentación permite:
p: probabilidad de que ocurra un fallo de página Desentenderse de la administración ‘interna’ de la memoria
virtual del proceso, es decir, del control del crecimiento,
tam: tiempo de acceso a memoria decrecimiento y ajuste entre sí de las distintas partes del
tfallo: tiempo de resolución de un fallo de página. Tiene proceso.
tres componentes principales: Modificar y recompilar módulos independientemente
1. Atender la interrupción de fallo de página Asignar permisos distintos a las partes del proceso
2. Traer la página a la memoria Compartir datos o procedimientos entre procesos
3. Continuar el proceso
A.Ortigosa 11 A.Ortigosa 12
2
Segmentación Segmentación
A.Ortigosa 13 A.Ortigosa 14
Puntero a tabla
de segmentos Segmento
segmentos, cada segmento en varias páginas
nº segmento
A.Ortigosa 15 A.Ortigosa 16
A.Ortigosa 17 A.Ortigosa 18
3
Paginación + Segmentación
Dirección lógica
S P D M D
despl.
Puntero a tabla
de segmentos Tabla de Marco de
Páginas (*) Página
nº segmento
nº pag.
+
+
(*)
Tabla de
Segmentos
1 tabla de págs/segmento
Tabla de segmentos nos da dirección de la tabla de páginas del segmento
A.Ortigosa 19 A.Ortigosa 20
A.Ortigosa 21 A.Ortigosa 22
A.Ortigosa 23 A.Ortigosa 24
4
Paginación multinivel Paginación multinivel
Tabla de páginas
raíz (4KBytes)
Dirección lógica Dirección física
p1 p2 d (…) f d
Tabla de páginas
p1 Memoria Usuario (4MBytes)
p2
Espacio de
Tabla de páginas 0 direcciones del
de nivel superior Tablas de páginas usuario (4KBytes)
de segundo nivel
Ejemplo tabla de páginas de dos niveles
A.Ortigosa 25 A.Ortigosa 26
A.Ortigosa 27 A.Ortigosa 28
A.Ortigosa 29 A.Ortigosa 30
5
Buffer de traducción adelantada (TLB) Buffer de traducción adelantada (TLB)
(viene de abajo)
PV no Fallo de
presente TLB
Extrae entrada
sí Busca en tabla antigua
no de Páginas
Válido?
Introduce la nueva
PV en la memoria
sí PV no
presente asociativa
no
Permiso? sí
sí no Fallo de
permiso página
accede marco
sí
Intercambio
Trampa al SO Trampa al SO Lee marco desde disco
por error por error
de acceso de acceso y actualización
A.Ortigosa
(sigue arriba) de memo asociativa 31 A.Ortigosa 32
- Consultar TLB
- Si está: dirección física = nº marco + despl.
A.Ortigosa 33 A.Ortigosa 34
6
Aspectos de diseño Aspectos de diseño
A.Ortigosa 37 A.Ortigosa 38
Aspectos de diseño
Tabla 8.2. Ejemplos de tamaños de páginas.
A.Ortigosa 39 A.Ortigosa 40
7
Políticas de Memoria Virtual Políticas de Memoria Virtual
Factor clave para el diseño: rendimiento Políticas del SO sobre la memoria virtual:
Políticas de Lectura
Minimizar porcentaje de fallos de páginas Políticas de Ubicación
(también cuando ejecuta parte de proceso Políticas de Reemplazo
mientras busca página que falló para otro) Gestión del Conjunto Residente
Políticas de Vaciado
Control de Carga
No hay una política definitivamente mejor que
las otras
A.Ortigosa 43 A.Ortigosa 44
A.Ortigosa 45 A.Ortigosa 46
¿Dónde va a residir una parte de un proceso ¿Cuál es la página a reemplazar (de entre el
en la memoria principal? conjunto de candidatas)?
Es una decisión importante en sistemas con Gestión del Conjunto Residente (después):
segmentación ¿Nº marcos de página a asignar para cada
Mejor ajuste, primer ajuste, etc. proceso?
Carece de importancia en sistemas con ¿Reemplazar sólo páginas del propio proceso o
de cualquier otro?
paginación (con y sin segmentación).
A.Ortigosa 47 A.Ortigosa 48
8
Algoritmos básicos
Algoritmos de Reemplazo
de reemplazo
Óptima
Tras un fallo de página (FdP.), se debe elegir Usada menos recientemente
qué página de memoria se lleva a disco para (LRU, Least Recently Used)
hacer sitio a la nueva página. Primera en entrar, primera en salir (FIFO)
Reloj
Objetivo: reemplazar la página con menor Reloj mejorado (NRU)
posibilidad de ser referenciada en un futuro * Almacenamiento intermedio de páginas
cercano
=> intentar predecir comportamiento futuro en
Ejemplo:
función del comportamiento pasado Proceso al que se le asignan 3 marcos de memoria
Cuanto + elaborada es la política, mayor Secuencia de accesos para el proceso:
A.Ortigosa 49 A.Ortigosa 50
A.Ortigosa 53 A.Ortigosa 54
9
Algoritmo LRU Algoritmo FIFO
Ventaja: se acerca al algoritmo óptimo Primera en entrar, primera en salir.
Desventaja: difícil de implementar: Supone que una página introducida hace mucho tiempo
puede haber caído en desuso
Implementación A:
Tabla = Pila de nº de página Cuando se produce un FdP. y no hay marcos libres, se
Tope = página más recientemente usada quita la página que lleve más tiempo en memoria
Actualización de tabla lenta, aún usando Hw especial
Buffer circular de marcos de un proceso + puntero
Implementación B: Round Robin para eliminar páginas de memoria
Contadores: Las entradas de la tabla de páginas tienen un campo de
A.Ortigosa 55 A.Ortigosa 56
Comportamiento: Implementación:
2 3 2 1 5 2 4 5 3 2 5 2 (a) Cada entrada de la tabla tiene un registro
2 2 2 2 5 5 5 5 3 3 3 3
asociado con el instante de carga de la página
3 3 3 3 2 2 2 2 2 5 5 Nº de página 2,3 Instante de entrada en tabla
1 1 1 4 4 4 4 4 2 0,1
F F F F F F F F F 1,2
A.Ortigosa 57 A.Ortigosa 58
10
Algoritmo del Reloj Algoritmo del Reloj
Primer marco en el buffer n-1 0
n-1 0 circular de los candidatos al
reemplazo Página 9 Página 19 1
Página 9 Página 19 uso = 1 uso = 1
1 .
uso = 1 uso = 1 Página 1
. Página 1 uso = 0
uso = 1 .
. Puntero al
Página 45
2
Página 45
2 . siguiente marco
uso = 0
. uso = 1
A.Ortigosa 63 A.Ortigosa 64
11
Algoritmo NRU Algoritmo NRU
12
Tamaño del Conjunto Residente -
Tamaño del Conjunto Residente
Políticas
SO debe decidir cuánta memoria asignar a un proceso Asignación Fija: otorga a cada proceso un
(nº págs. a cargar en memoria principal). nº fijo de páginas.
Factores que influyen en la decisión: Se decide en la carga inicial, según tipo de proceso o
Cuanto menos memoria necesite cada proceso, directrices del programador o administrador.
mayor cantidad de procesos en memoria Cuando hay FdP., siempre se reemplaza una página
=> mayor probabilidad de procesos listos en memoria. del mismo proceso.
Si hay pocas páginas de un proceso en memoria, aumenta Problemas:
la probabilidad de FdP. Desperdicia espacio si el proceso no necesita todos los
marcos que se le han asignado.
Por encima de un determinado tamaño, más memoria no Si el proceso necesita más marcos de los asignados, el
tendrá un efecto notable (por principio de cercanía). proceso no podrá ejecutarse correctamente, aunque en el
sistema haya muchos marcos vacíos.
A.Ortigosa 73 A.Ortigosa 74
A.Ortigosa 77 A.Ortigosa 78
13
Variable + Global Variable + Local
14
Conjunto de Trabajo Conjunto de Trabajo
Posible estrategia:
Para calcular tamaño del cjto. de trabajo, se Supervisar el conjunto de trabajo de cada proceso
Eliminar periódicamente del conjunto residente las páginas que no
utiliza el modelo de cjto. de trabajo
A.Ortigosa 85 A.Ortigosa 86
Políticas de lectura (previa / bajo demanda) ¿Cuándo escribir en disco una página modificada?
Políticas de ubicación (mejor/peor/primer Vaciado por demanda:
ajuste, ...) Se escribe página en disco sólo cuando se va a reemplazar
(antes de leer la siguiente)
Políticas de reemplazo (óptima, LRU, FIFO, Ventaja: Minimiza cantidad de páginas escritas en disco
reloj, ...) Desventaja: Cada FdP produce 2 transferencias de página
Gestión del conjunto residente (tamaño, => menor rendimiento
asignación fija/variable, reemplazo local/global) Vaciado previo:
Escribe las páginas modificadas antes de que se necesiten sus
Políticas de vaciado (por demanda/previo) marcos
Control de carga Ventaja: Aprovecha las ventajas de escribir en el disco por lotes
Desventaja: Posibles operaciones innecesarias
(escritura de páginas que son modificadas después)
A.Ortigosa 87 A.Ortigosa 88
Gestión de memoria
Políticas de Vaciado
Sw del SO
A.Ortigosa 89 A.Ortigosa 90
15
Control de Carga Control de Carga
Último activado
bloqueados Conjunto residente más pequeño
Si hay muchos, aumenta frecuencia de FdP Proceso mayor
Mayor ventana de ejecución restante
(posible hiperpaginación)
La elección depende
=> Se debe aumentar cuando el número de FdP (objetivos, tipo de programa)
sea pequeño y disminuir cuando sea grande
A.Ortigosa 91 A.Ortigosa 92
16