Está en la página 1de 11

Memoria virtual

Computadora = Máquina multiprogramada


- Una o varias CPUs procesando múltiples tareas en un intervalo de tiempo.
Retos:
A. Tener un espacio de memoria principal pequeño y limpiado.
- Los programadores tenían que dividir los programas en partes mutuamente excluyentes
(overlays) cargadas en memoria o salvadas a disco dinámicamente.
B. Compartiendo de memoria eficiente entre múltiples programas:
- Un programa pueda solo leer y escribir las partes de memoria que tiene asignadas.
Memoria virtual

• Memoria virtual: El tamaño total del programa, sus datos y su pila puede acceder
la cantidad de memoria que se le puede asignar. El sistema mantiene:
o Las partes del proceso que se están usando en memoria principal (MP)
o El resto del proceso en disco.

• Espacio de direcciones virtual


o Mayor tamaño normalmente que el espacio de direcciones físicas.
o La unidad de administración de memoria (MMU), traduce las direcciones
virtuales en direcciones físicas.
Memoria virtual
Paginación
• Direcciones virtuales de 16 bits.
- Espacio de direcciones virtuales
de 64 KB
• 32 KB de memoria física.
• Páginas de 4 Kbytes
- 16 páginas virtuales
- 8 marcos de página
Paginación
Tabla de páginas

Una página virtual puede estar asociada en cualquier marcos de


página.
• El SO mantiene una tabla de páginas para conocer la asociación.
La tabla de páginas se almacena en memoria principal.
• La MMU tendrá que realizar un acceso a MP por cada referencia a
memoria
Cada proceso tiene asignada una tabla de páginas
• Para conocer la ubicación de la TP en memoria, el procesador tiene
un registro que apunta al principio de la TP (registro de la tabla de
páginas).
Tabla de páginas
Tratamiento de fallos de página

Problema: el espacio de direcciones virtuales suele ser más grande que la memoria física.
• Bit presente/ausente → controlar qué páginas están presentes en memoria.
• ¿Qué sucede si no hay asociación página/marco? → Fallo de página
Tratamiento de fallo de página:
1. La MMU detecta que la página no tiene correspondencia
2. La MMU provoca un fallo de página (interrupción)
3. SO escoge un marco que no se esté usando muho (si es necesario vuelve a escribir su
contenido en disco)
4. Trae la nueva página a este marco
5. Modifica la tabla de páginas
6. Reinicia la instrucción
Tratamiento de fallos de página
TLB (translation-lookaside buffer)

• Dispositivo hardware que traduce direcciones virtuales a físicas sin acceder a la


tabla de páginas.
• Está en el interior de la MMU
• Consiste en un número pequeño de entradas (casi nunca más de 64)
• Cada entrada contiene información sobre una página:
- Bits de control
- Etiqueta
- Número de página física
- Bits de control de la tabla de páginas para la página virtual
TLB (translation-lookaside buffer)

También podría gustarte