Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Enrique Soriano
Laboratorio de Sistemas,
Grupo de Sistemas y Comunicaciones,
URJC
26 de abril de 2011
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento -
Fragmentación externa
Fragmentación interna
Estrategias
h f h f h fh f h f h f h f
Libre
Ocupado
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Vinculación (Binding)
Tres alternativas:
• En tiempo de compilación: código absoluto.
Dirección lógica ≡ Dirección fı́sica
• En tiempo de carga: código relocalizable.
Dirección lógica ≡ Dirección fı́sica
Se comprometen las direcciones en el momento de carga.
• En tiempo de ejecución. ←
Dirección lógica (dirección virtual) 6= Dirección fı́sica
Se necesita apoyo del hardware para mapear: MMU.
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Memoria virtual
¡La CPU nunca ve direcciones fı́sicas!
BUS DE MEMORIA
dirección dirección
física física
MMU
MEMORIA
dirección
virtual
CPU
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Memoria virtual
FÍSICA
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Intercambio (Swap)
Memoria virtual
Permite:
• Aumentar la memoria usando almacenamiento secundario
(antes era necesario, ahora hay sistemas que no lo
implementan).
• Crear la ilusión de un espacio virtual de direcciones grande y
contiguo. → Crear la ilusión de que el proceso está ejecutando
en su propia máquina virtual → simplicidad.
• Reusar/compartir memoria.
• Proteger la memoria de los distintos procesos (errores y
ataques).
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
if logical > lr
trap
else
physical = logical + rr
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Paginación
Paginación
n-m m
n
2m = tamaño de página
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Paginación
Memoria
Física
Dirección Dirección
Lógica Física
CPU p d m d
Tabla de
Páginas
0 m0
1 m1
2 m2
3 m3
4 m4
... ...
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Paginación
Paginación
Paginación: TLB
Paginación: TLB
TLB Memoria
Física
Dirección Dirección
Lógica Física
CPU p d m d
2
Tabla de
Páginas
0 m0
1 m1
2 m2
3 m3
4 m4
... ...
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Paginación: TLB
Memoria
Física
Dirección Dirección
Lógica Física
CPU pid p d f d
Tabla de Páginas
Invertida
pid p
... ...
f ... ...
... ...
... ...
... ...
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Memoria
Física
Dirección Dirección
Lógica Física
CPU pid p d f d
IPT
pid p next
... ...
Hash
f ... ...
... ...
... ...
Hash Anchor
Table
...
...
hash(pid,p)
...
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Paginación multinivel
Paginación multinivel
Paginación en demanda
Paginación en demanda
Paginación en demanda
• De forma equitativa.
• De forma proporcional al tamaño del proceso en memoria.
Siendo si el tamaño en memoria del proceso i,
P
S = si
y M el número de marcos libres, al proceso i le corresponden:
ai = M sSi
• Prioridad del proceso.
Asignación Dinámica Direcciones Swap Memoria virtual Particiones Paginación Algoritmos de reemplazo
Thrashing
Conjunto de trabajo