Documente Academic
Documente Profesional
Documente Cultură
Introduccin
Memoria virtual es un mecanismo que permite que
Universidad de Sonora
Arquitectura de Computadoras
Definiciones
Espacio de direcciones. Rango de localidades de
Arquitectura de Computadoras
Memoria y cachs
Los conceptos en memoria virtual y cachs son los
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
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
Universidad de Sonora
Arquitectura de Computadoras
Consideraciones de
diseo
Consideraciones:
Las pginas deben ser suficientemente grandes
Arquitectura de Computadoras
10
Consideraciones de
diseo
Write-through no funciona para memoria virtual. Los
Universidad de Sonora
Arquitectura de Computadoras
11
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
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
Arquitectura de Computadoras
16
rea de swap
rea del disco reservada para todo el espacio de
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
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
Universidad de Sonora
Arquitectura de Computadoras
23
Explicacin
Se busca la pgina virtual en la tabla de pginas y
porque no es un cache.
Universidad de Sonora
Arquitectura de Computadoras
24
Arquitectura de Computadoras
25
Arquitectura de Computadoras
26
Universidad de Sonora
Arquitectura de Computadoras
27
Universidad de Sonora
Arquitectura de Computadoras
28
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,
Universidad de Sonora
Arquitectura de Computadoras
31
Proteccin
El sistema operativo debe asegurar que un proceso
Arquitectura de Computadoras
32
Proteccin
2. Proveer una parte del estado del procesador de
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
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
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
Arquitectura de Computadoras
39