Sunteți pe pagina 1din 39

Memoria virtual

Introduccin
Memoria virtual es un mecanismo que permite que

la memoria principal parezca mas grande que su


tamao fsico.
Permite ejecutar programas mas grandes que la
memoria fsica disponible.
La memoria principal acta como cach de la
memoria secundaria (disco duro).

Universidad de Sonora

Arquitectura de Computadoras

Definiciones
Espacio de direcciones. Rango de localidades de

memoria accesibles solo por un programa.


Direccin fsica. Direccin en la memoria principal.
La memoria virtual incluye mecanismos para traducir
del espacio de direcciones a direcciones fsicas.
Proteccin. Mecanismos para asegurar que mltiples
procesos que compartan la CPU, memoria o
dispositivos de I/O no interfieran uno con otro.
La proteccin tambin asla los procesos del usuario
de los procesos del sistema operativo.
Universidad de Sonora

Arquitectura de Computadoras

Memoria y cachs
Los conceptos en memoria virtual y cachs son los

mismos pero con nombres diferentes.


Un bloque en memoria virtual se llama pgina.
Una falla en memoria virtual se llama falta de
pgina.
En memoria virtual la CPU produce una direccin
virtual que es traducida por hardware y software a
una direccin fsica que se usa para accesar la
memoria principal.
Universidad de Sonora

Arquitectura de Computadoras

Mapeo de direcciones
Esta traduccin se le llama mapeo de direcciones

o traduccin de direcciones.

Universidad de Sonora

Arquitectura de Computadoras

Relocalizacin
La memoria virtual ofrece un mecanismo de

relocalizacin de programas.
Las direcciones virtuales usada por un programa se
mapean a direcciones fsicas.
Los programas se componen de una o mas pginas
de tamao fijo.
El sistema operativo carga en memoria principal
solo un nmero suficiente de pginas por programa.

Universidad de Sonora

Arquitectura de Computadoras

Direcciones virtuales y
fsicas
En memoria virtual, una direccin se compone de un

nmero de pgina virtual y un offset.


El nmero de pgina virtual se traduce a un nmero
de pgina fsica.

Universidad de Sonora

Arquitectura de Computadoras

Direcciones virtuales y
fsicas
El nmero de bits del offset determina el tamao de

la pgina.
El nmero de bits del nmero de pgina virtual es
mayor o igual al nmero de bits del nmero de
pgina fsica.
La idea es que la memoria virtual sea mas grande
que la memoria fsica.

Universidad de Sonora

Arquitectura de Computadoras

Consideraciones de
diseo
La falta de pgina es muy costosa.
La memoria principal es 100,000 veces ms rpida

que el disco duro.

Universidad de Sonora

Arquitectura de Computadoras

Consideraciones de
diseo
Consideraciones:
Las pginas deben ser suficientemente grandes

para amortizar el costo de acceso (32 64KB).


Para reducir la tasa de faltas, los bloques pueden ir
en cualquier parte de la memoria principal (i.e. la
memoria es fully associative).
Las faltas de pgina se manejan por software para
permitir algoritmos inteligentes.
Cualquier reduccin en la tasa de faltas vale la pena
el esfuerzo de implementacin.
Universidad de Sonora

Arquitectura de Computadoras

10

Consideraciones de
diseo
Write-through no funciona para memoria virtual. Los

sistemas de memoria virtual usan write-back.

Universidad de Sonora

Arquitectura de Computadoras

11

Buscando una pgina


Una pgina puede estar en cualquier lugar de la

memoria.
Se usa una tabla para accesar la memoria llamada
tabla de pginas.
La tabla de pginas se indexa con el nmero de
pgina virtual y regresa el nmero de pgina fsica.
La CPU incluye un registro para apuntar a la tabla
de pginas del programa que est corriendo.

Universidad de Sonora

Arquitectura de Computadoras

12

Tabla de pginas

Universidad de Sonora

Arquitectura de Computadoras

13

Explicacin
El registro de tabla de pginas apunta al comienzo

de la tabla de pginas.
El tamao de pgina es 212 = 4 KB.
El espacio de direcciones virtuales es 232 = 4 GB.
El espacio de direcciones fsicas es 230 = 1 GB.
El nmero de entradas en la tabla de pginas es 220
= 1,048,576.
Cada entrada tiene un bit vlido para indicar si el
mapeo es legal.
Si el bit es falso, se genera una falta de pgina.
Universidad de Sonora

Arquitectura de Computadoras

14

Tabla de pginas
Cada programa tiene su propia tabla de pginas.
Varios programas pueden tener el mismo espacio

de direcciones virtuales.
El sistema operativo se encarga de:
Asignar la memoria fsica.
Actualizar las tablas de pginas para que los espacios

de direcciones virtuales de los distintos programas no


colisionen.

Universidad de Sonora

Arquitectura de Computadoras

15

Falta de pgina
Ocurre cuando el bit vlido es falso.
El sistema operativo:
Toma el control.
Interrumpe el proceso y guarda su estado.
Busca la pgina en el rea de swap del disco duro y la

carga en la memoria principal.


Si la memoria est llena, se necesita reemplazar una
pgina.
Tpicamente, la estrategia de reemplazo es LRU (o
una aproximacin).
Universidad de Sonora

Arquitectura de Computadoras

16

rea de swap
rea del disco reservada para todo el espacio de

memoria virtual de un proceso.


Incluye un registro de donde se guarda en disco
cada pgina virtual.

Universidad de Sonora

Arquitectura de Computadoras

17

Tamao de la tabla de
pginas
Suponer lo siguiente:
Direcciones virtuales de 32 bits.
Nmero de pgina virtual ocupa 20 bits y el offset los
otros 12 bits.
El nmero de entradas en la tabla de pginas es 220

= 1,048,576.
Si cada entrada ocupa 4 bytes, la tabla ocupa 4 MB.
Si hay cientos de procesos, la memoria puede ser
insuficiente.
Es deseable reducir el tamao de la tabla.
Universidad de Sonora

Arquitectura de Computadoras

18

Tamao de la tabla de
pginas
Estrategias:
1. La tabla crece segn el proceso consume memoria

2.

(tabla dinmica).
No es prctico en los esquemas modernos de usar
un rea dinmica de pila y otra de heap.
Usar dos tablas dinmicas, una para la pila y otra
para el heap.
Las tablas crecen en direcciones opuestas.
Usado en varias arquitecturas incluyendo MIPS.
Universidad de Sonora

Arquitectura de Computadoras

19

Tamao de la tabla de
pginas
3. Hacer la tabla de pginas virtual.
La tabla se pgina y reside en el espacio de

direcciones virtuales.
Desventaja: se generan nuevos problemas, como
posibles cadenas sin fin de faltas de pgina.
Solucin general:
Las tablas residen en el espacio de direcciones del

sistema operativo.
Algunas de las tablas del sistema se colocan en
memoria principal y nunca en disco.
Universidad de Sonora

Arquitectura de Computadoras

20

TLB
Aunque las tablas de pginas residan en memoria

principal, cada acceso toma el doble de tiempo:


Un acceso para obtener la direccin fsica.
Un segundo acceso para obtener los datos.

Para mejorar el rendimiento se aprovecha el

concepto de locality.
Si una traduccin de una direccin virtual se acaba
de usar, es posible que se vuelva a usar.
Se usa un cach especial de traducciones llamado
TLB (translation-lookaside buffer).
Universidad de Sonora

Arquitectura de Computadoras

21

TLB

Universidad de Sonora

Arquitectura de Computadoras

22

Explicacin
La TLB acta como cach para las entradas que

mapean solo a pginas fsicas.


La TLB contiene un subconjunto de los mapeos de
pgina virtual a pgina fsica que estn en la tabla
de pginas.
Como el TLB es un cach tiene campo de etiqueta.
Si la pgina no est en el TLB se busca en la tabla
de pginas.

Universidad de Sonora

Arquitectura de Computadoras

23

Explicacin
Se busca la pgina virtual en la tabla de pginas y

sucede una de dos cosas:


a) Regresa el nmero de pgina fsica de la pgina

(que se usa para construir una entrada en la TLB).


b) Indica que la pgina reside en disco, en cuyo caso
se genera una falta de pgina.

La tabla de pginas no tiene campo de etiqueta

porque no es un cache.

Universidad de Sonora

Arquitectura de Computadoras

24

Valores tpicos de TLB


Tamao: 16 512 entradas.
Tamao de bloque: 1 2 entradas de la tabla de

pginas (4 8 bytes cada una).


Hit time: 0.5 1 ciclo de reloj.
Miss penalty: 10 100 ciclos de reloj.
Miss rate: 0.01% 1%.
Estategia de escritura: write-back.
Organizacin tpica: fully associative con reemplazo
aleatorio de bloques.
Universidad de Sonora

Arquitectura de Computadoras

25

Intrinsity FastMATH TLB


Tamao de pgina: 4 KB.
Tamao de la direccin: 32 bits, 20 bits para el

nmero de pgina virtual y 12 bits para el offset.


La direccin fsica tambin es de 32 bits.
El TLB tiene 16 entradas, es fully associative y se
comparte entre referencias a datos y a instrucciones.
Cada entrada del TLB es de 64 bits.
Etiqueta de 20 bits (nmero de pgina virtual).
Nmero de pgina fsica, tambin de 20 bits.
Bit vlido, bit sucio y otros bits de referencia.
Universidad de Sonora

Arquitectura de Computadoras

26

Universidad de Sonora

Arquitectura de Computadoras

27

Intrinsity FastMATH TLB


Procesando una peticin de lectura o escritura.

Universidad de Sonora

Arquitectura de Computadoras

28

Intrinsity FastMATH TLB


Cuando ocurre una falla de TLB:
Se interrumpe el proceso actual.
Entra el sistema operativo a manejar la falla.
Accesa la tabla de pginas.
Si la direccin fsica es vlida, la guarda en el TLB.
Si no es vlida, se genera una falta de pgina.
La entrada a reemplazar se escoge aleatoriamente.

Universidad de Sonora

Arquitectura de Computadoras

29

Jerarqua de memoria
La Memoria virtual, el TLB y los cachs forman una

jerarqua.
Un dato no puede estar en el cach sin estar en la
memoria principal.
El sistema operativo mantiene la jerarqua borrando
una pgina del cach si decide migrar la pgina de
la memoria principal al disco duro.
Al mismo tiempo, modifica el TLB y la tabla de
pgina de modo que una referencia a un dato en la
pgina produce una falta de pgina.
Universidad de Sonora

Arquitectura de Computadoras

30

Combinaciones
Posibles combinaciones de eventos en el TLB,

memoria virtual y cach.

Universidad de Sonora

Arquitectura de Computadoras

31

Proteccin
El sistema operativo debe asegurar que un proceso

no escriba en el espacio de direcciones de otro


proceso.
El bit de acceso de escritura en la TLB protege una
pgina de ser escrita.
El hardware debe ofrecer al menos tres capacidades:
1. Soportar dos modos para distinguir entre un proceso
de usuario (modo usuario) y un proceso del sistema
operativo (modo kernel o supervisor).
Universidad de Sonora

Arquitectura de Computadoras

32

Proteccin
2. Proveer una parte del estado del procesador de

solo lectura. Esto incluye el bit de modo


usuario/supervisor, el apuntador a la tabla de
pginas y el TLB.
3. Proveer un mecanismo para que el procesador
vaya de modo usuario a modo supervisor y
viceversa.
Modo usuario supervisor: excepcin de llamada al

sistema (system call exception).


Modo supervisor usuario: regreso de excepcin.
Universidad de Sonora

Arquitectura de Computadoras

33

Proteccin
Un proceso no debe accesar los datos de otro.
Un proceso de usuario no puede cambiar su propia

tabla de pginas.
El sistema operativo es el nico que puede hacerlo.
Si un proceso P2 desea compartir una pgina con
P1, debe pedirle al sistema operativo que cree una
entrada en la tabla de pginas de P1 que apunte a
dicha pgina fsica de P2.

Universidad de Sonora

Arquitectura de Computadoras

34

Proteccin
Cambio de contexto (context switch). Cuando el

sistema operativo decide dejar de correr un


proceso P1 para correr otro proceso P2.
El sistema operativo debe asegurarse que P2 no

pueda accesar las pginas de P1.


Hay dos opciones:
a) Limpiar el TLB en cada cambio de contexto.
Problema: serie de fallas cuando P1 regrese y
encuentre el TLB vaco.
Universidad de Sonora

Arquitectura de Computadoras

35

Proteccin
b) Agregar el nmero de proceso (pid process id) al

TLB.
Intrinsity FastMATH usa un campo de 8 bits con el
pid.
Un xito en el TLB ocurre solo si el nmero de pgina
y el pid coinciden.

Universidad de Sonora

Arquitectura de Computadoras

36

Conclusin
Memoria virtual es el nivel de memoria que acta

como cach entre la memoria principal y el disco.


Permite a un programa expander su espacio de
direcciones mas all de los lmites de la memoria
principal.
Permite compartir la memoria principal entre varios
procesos activos.
Para apoyar la comparticin, la memoria virtual
debe ofrecer mecanismos para proteccin de la
memoria.
Universidad de Sonora

Arquitectura de Computadoras

37

Conclusin
El principal problema es el alto costo de las faltas de

pgina.
Tcnicas para reducir la tasa de faltas:
Usar pginas grandes para tomar ventaja del locality

espacial.
El mapeo entre direcciones virtuales y fsicas es fully
associative. Una pgina virtual puede estar donde sea
en la memoria principal.
El sistema operativo usa tcnicas, como LRU (o su
aproximacin) para escoger la pgina a reemplazar.
Universidad de Sonora

Arquitectura de Computadoras

38

Conclusin
Las escrituras son caras. Se usa write-back y un bit

sucio para evitar escribir pginas que no cambiaron.


Para asegurar que los procesos estn protegidos
unos de otros, el sistema operativo es el nico que
puede alterar las tablas de pginas.
La tabla de pginas incluye un bit de acceso de
escritura para permitir que otro proceso escriba en
alguna pgina.
El TLB acta como cach de la tabla de pginas.
Universidad de Sonora

Arquitectura de Computadoras

39

S-ar putea să vă placă și