Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Memoria Memoria
virtual física
dirección dirección
virtual física (DRAM)
Espacios de Direcciones
• Cuando un programa es compilado, sus direcciones son
direcciones del espacio virtual.
• Cuando un programa es ejecutado, las direcciones con las
que se accede a memoria son direcciones del espacio
físico.
• En el medio, debe haber un proceso que traduzca una
dirección virtual a una dirección física.
• El proceso de traducción permite que un programa cambie
muchas veces su mapeo entre dirección virtual y dirección
física durante su ejecución.
• La técnica de memoria virtual la implementa:
– El sistema operativo con soporte de hardware
– La traducción de direcciones virtuales a físicas, la realiza el
hardware (en casi todos los procesadores actuales)
Memoria Virtual
V irtu a l a d d r e s s e s P h y s ic a l a d d re s s e s
A d d re s s tra n s la tio n
• La unidad (bloque)
de transferencia se
llama página.
• Fallo: Fallo de
página (Page Fault)
• El mapeo se realiza
entre las páginas
de memoria virtual
D is k a d d r e s s e s y las páginas de
memoria física.
Traducción
• Una dirección de memoria virtual se compone de:
– Número de página
– Offset dentro de la página
• La función de traducción asigna un número de página
física a la página virtual.
• La traducción se realiza cada vez que se accede a un
dato.
Virtual address
31 30 29 28 27 15 14 13 12 11 10 9 8 3210
Translation
29 28 27 15 14 13 12 11 10 9 8 3210
Physical address
Páginas
• Cuando la función de traducción encuentra que
no hay mapeo para una dirección virtualfallo
de página
• El fallo de página tiene una penalización
enorme: acceder al disco cuesta millones de
ciclos de proceso
• Los sistemas de memoria virtual se diseñan de
forma de reducir esta penalización.
Páginas
– Las páginas deben ser lo suficientemente grandes para
amortizar el tiempo de acceso: de 4KB, 16KB, 32KB y 64 KB.
– Se usa un esquema totalmente asociativo para colocar las
páginas en memoria.
– El software gestiona los fallos de página: el hardware avisa
que hay fallo, el SO toma el control, transfiere la página y
utiliza algún algoritmo para decidir a quien reemplaza.
– Cuando se escribe en memoria principal, no se actualiza el
disco: se utiliza la política de escritura diferida. El disco se
actualiza cuando la página se elimina de memoria.
Como ubicar y encontrar una página
Valid
Physical page or
disk address
Physical memory
• Se indexa con el
1
número de página
1
1 virtual.
• Contiene el número
1
0
1
1
0
de página física o bien
1
1
Disk storage una indicación de que
0
1
no está.
• Cada programa tiene
su propia Tabla de
• Un registro del procesador apunta
Páginas.
a la dirección en memoria de la
Tabla de Páginas
Tabla de Páginas
Page table register
• Tamaño de página: 212 bytes
Virtual address
(4K bytes)
31 30 29 28 27 15 14 13 12 11 10 9 8 3 2 1 0 • Espacio virtual de
Virtual page number Page offset direcciones: 232 bytes
20 12 • Espacio físico de
Valid Physical page number direcciones: 230 bytes
• Tamaño de la Tabla de
Páginas: 220 entradas, de 19
bits.
Page table
• O sea: un millón de entradas
de 32 bits (redondeando
para hacer mas fácil el
If 0 then page is not
18
acceso)
present in memory
29 28 27 15 14 13 12 11 10 9 8 3 2 1 0
Physical address
Programas y Procesos
• La Tabla de Páginas, junto con el PC y los registros
representan el estado del programa que se está
ejecutando.
• La Tabla de Páginas define el estado de la
memoria del programa.
• Si se quiere compartir la CPU, se deberá salvar el
estado del programa.
• El programa y su estado se denomina proceso.
• Un proceso está activo si está en posesión de la
CPU : de lo contrario está inactivo.
• El S.O es el que pasa los procesos del estado
inactivo a activo y viceversa
¿Donde está la página en disco?
Virtual page • Un fallo de página provoca
una excepción que le da
number
Page table
Physical memory
Physical page or
Valid disk address
control al S.O
1
1
• Este debe localizar el lugar
1
1
del disco donde se encuentra
0
1
la página que falló.
1
0 • Utiliza una estructura similar
1
1
Disk storage
a la Tabla de Páginas, o bien
0
1 la misma Tabla de Páginas
para almacenar la
ubicaciónde la página en
disco.
• El S.O también tiene una tabla por proceso
donde guarda información de sus páginas
mapeadas.
• Reemplaza, utilizando LRU.
Problema
• Calcular el tamaño de la Tabla de Páginas
necesaria para soportar un sistema con páginas
de 4KB, 4 bytes por entrada en la TP y direcciones
virtuales de 32 bits.
• Respuesta: 4MB!!!!!!!!!!
• Sistemas mixtos:
– Las cachés se indexan con la dirección virtual (se
pueden usar los bits de desplazamiento de página
que no se cambian en la traducción), pero se
comparan con la dirección física.
– La caché y la TLB se acceden en paralelo. La TLB
suministra la etiqueta para los comparadores
Protección
• Es una de las funciones del sistema de memoria
virtual: permitir la compartición de la memoria
única entre múltiples procesos: protección entre
procesos y con el SO.
• En la TLB, el bit de escritura protege contra
accesos de escritura no deseados.
• Lecturas:
– El SO debe garantizar que las páginas virtuales de dos
procesos independientes se asignen a páginas físicas
disjuntas.
– También debe garantizar que un proceso no pueda
cambiar su Tabla de Páginas, sin embargo el SO si debe
poder cambiar las Tablas de Páginas.
Protección
• El hardware debe proporcionar:
– Al menos dos modos de ejecución: proceso usuario y
proceso kernel (supervisor, ejecutivo)
– Instrucciones que solo puedan ser usadas por el
proceso kernel (para actualizar las estructuras de
datos)
– Mecanismos para pasar de un modo a otro
• De usario a kernel excepciones, llamadas al sistema (syscall)
• De kernel a usuarioretorno de excepción: restaura el estado
del proceso.