Anda di halaman 1dari 9

1

Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 1 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
MEMORIA VIRTUAL
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 2 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Ejecutar un programa
El SO reserva suficiente
memoria para cargar el
programa
El SO copia el programa
desde el disco duro a
memoria principal
El SO inicializa el contador de
programa con la direccin de
comienzo del programa en
memoria principal
El programa comienza a
ejecutarse
Disco
Memoria Principal
Cdigo
Heap
Stack
2
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 3 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Qu ocurre si el programa es demasiado grande?
En algunos SOs como DOS no
puede ejecutarse
Solucin de los
programadores: OVERLAYS
Dividir el programar en mdulos
que quepan en memoria
Mdulo principal con variables
globales y cdigo para cargar los
diferentes mdulos.
Resto de memoria para mdulo
activo.
Los mdulos que no estn
activos estn guardados en
el disco duro.
Muy difcil de manejar con:
Datos que crecen
Multiprogramacin
Solucin: MEMORIA VIRTUAL
Memoria Principal
Mdulo
principal
Stack
Mdulo
M1
Mdulo
M2
Mdulo
M3
Disco duro
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 4 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Memoria Virtual
Hacer creer a la CPU que
tiene ms memoria principal
de la que realmente dispone.
Dnde est el resto de la
informacin que no cabe en
memoria?
En el disco duro (SWAP)
El mecanismo es
transparente a la CPU
El programador se olvida de las
limitaciones de tamao de la
memoria principal
Dos tipos de direcciones
Direcciones virtuales: las que
maneja la CPU (Programador)
Direcciones fsicas: las que
maneja la memoria principal
CPU
MEMORIA
PRINCIPAL
Disco
?
3
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 5 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Funcionamiento general de la MMU
La CPU lanza la direccin virtual a la MMU (Memory
Management Unit)
Si la MMU sabe que el dato est en la memoria principal,
convierte la direccin virtual en la direccin fsica donde
est el dato de verdad en memoria principal
Si no est el dato en memoria principal, se trae previamente
del disco duro a memoria principal
La memoria principal acta de cach del disco duro
Operacin sincronizada con el Sistema Operativo
Posicin en
el disco
Memoria
Principal
MMU
Disco
CPU
Direccin
Virtual
Direccin
Fsica
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 6 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Organizacin de la memoria virtual y memoria fsica
Memoria virtual y memoria
fsica se organizan en
bloques de igual tamao:
En el caso de la memoria fsica
los bloques reciben el nombre
de MARCOS DE PGINAS
En el caso de la memoria
virtual se llaman pginas.
La memoria fsica almacena
slo una parte de las pginas,
el resto est en el disco duro
Espacio de swap
La MMU es la que indica en
qu marco de pgina est la
pgina requerida
Por qu puede funcionar?
Principio de localidad
Memoria Virtual
Memoria Fsica
Disco duro
Espacio
de swap
Pgina
Marco
de
pgina
4
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 7 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Algoritmo de translacin de dir. Virtual a fsica
La direccin virtual de n bits se divide en
dos bloques
Direccin relativa (DR): p bits bajos.
2
p
es el tamao de la pgina y del marco
de pgina.
Identificador de pgina virtual (IPV): n-p bits
altos.
Completado con p ceros es la direccin
de inicio de la pgina.
La direccin fsica de m bits se divide
tambin en dos bloques:
Direccin relativa (DR): p bits bajos.
Identificador de pgina fsica (IPF): m-p bits
altos.
Completado con p ceros es la direccin
de inicio del marco de pgina.
A travs de la TABLA DE PAGINAS se
realiza la correspondencia entre pgina y
marco de pgina donde est la pgina
Mejor dicho: entre IPV y su correspondiente
IPF
IPV direcciona la tabla de pginas
IPV
DIR
p-1 0 n-1
IPF
DR
0 p-1 m-1
0000 IPF
1
Direccin virtual
Direccin fsica
Tabla de pginas
...
2
n-p
-1
IPF
2
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 8 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Tabla de pginas
El nmero de entradas de la tabla de pginas es 2
n-p
Tamao de la tabla:
En cada entrada se almacena el IPF de la pgina, el bit de pgina vlida y
el bit de pgina en disco. En el caso de pgina en disco, el IPF sirve
tambin para seleccionar la pgina en el disco duro.
Ejemplo
Tamao direccin de memoria virtual: 32 bits
Memoria principal mxima disponible: 64 MB
Tamao de pgina: 16 KB
Tamao direccin relativa: 14 bits
Tamao IPF: 26 bits 14 bits = 12 bits
Tamao IPV: 32 bits 14 bits = 18 bits
Nmero de entradas en la tabla de pginas: 2
18
= 256 K entradas
Tamao de la tabla de pginas: 512 KB (se pierden 2 bits por entrada)
Esta tabla se genera en el arranque del Sistema Operativo

8 / ) 2 ( 2 +

p m
p n
5
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 9 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Problemas con la tabla de pginas
Tamao (ver transparencia anterior)
Hacerla crecer conforme sea necesario
Almacenar slo las referencias utilizadas (hay
huecos en la tabla de pginas)
Utilizar tcnicas de hashing para compensar el
hecho de no poder direccionar directamente
Velocidad
Slo se puede guardar en memoria principal
Dos accesos a memoria por cada instruccin
Solucin para la velocidad: TLB
Una cach de la tabla de pginas donde se
almacenan las correspondencias ms
recientes entre direcciones virtuales y
direcciones fsicas (Ms correcto:
correspondencias IPV-IPF ms recientes).
Para cada correspondencia IPV-IPF se
almacena si la correspondencia es correcta y
si est en memoria principal
Asociativa
Memoria
Principal
TLB
CPU
Direccin virtual
Direccin fsica
MMU
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 10 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Segmentacin
La paginacin trata la memoria como un nico bloque
dividido en pginas de igual tamao.
Es interesante un esquema de organizacin de la memoria
que permita adaptar los tamaos de memoria asignados a
las necesidades de cada tarea
Solucin: segmentacin
La memoria es dividida en bloques o segmentos de tamao
variable
A cada segmento se le pueden asignar derechos de acceso, de
uso, etc.
El segmento asignado a una tarea puede crecer o disminuir en
funcin de sus necesidades.
La segmentacin se completa con la paginacin
Segmentos divididos en pginas
Aprovechar la facilidad para traducir las direcciones virtuales en
fsicas
Slo se usan las tablas de pginas necesarias
6
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 11 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Organizacin en la segmentacin paginada
Identificador de segmento
Indica donde est la tabla de
pginas correspondiente a ese
segmento
Indica tambin donde est la
informacin sobre los derechos
de uso de ese segmento.
Identificador de pgina
Selecciona la lnea de la tabla
de pginas donde est el IPF
correspondiente a esa pgina.
Direccin relativa
Direccin del dato dentro de la
pgina
En la TLB se almacena las
ltimas correspondencias
entre [IS,IPV] e IPF
Direccin virtual
IPV
DIR
p-1 0 n-1
IS
s-1
IPF
DR
0 p-1 m-1
Direccin fsica
Tabla de pginas TP0
0000 IPF
1
...
2
n-p
-1
IPF
2
TP
0
TP
1
TP
2
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 12 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Proceso de acceso a un dato en memoria
1. La CPU genera una direccin virtual que se enva a la MMU
2. La MMU comprueba si est en la TLB
3. Si la TLB da acierto, el bit de validez es correcto y el bit de disco es 0 se
accede a memoria principal con el IPF dado por la TLB.
Si la pgina est en disco sera un fallo de pgina (punto 6)
4. Si la TLB da fallo se va a la tabla de pginas (TP) (correspondiente a ese
segmento)
5. Con el IPF proporcionado por la TP y si el bit de pgina en disco es 0 se
accede a memoria principal.
Se actualiza la TLB
6. Si la TP indica que la pgina est en disco estamos en el caso de una
fallo de pgina:
Se trae la pgina del disco a memoria principal (swapping). Si es necesario se
libera un marco de pgina. Se actualiza la TLB.
El SO puede planificar otro proceso mientras dura la operacin con el disco duro.
MMU y Sistema Operativo estn ntimamente relacionados.
El SO construye la tabla de pgina y decide la poltica de reemplazo de pginas y
liberacin de marcos de pgina (Ver asignatura Sistemas Operativos)
7
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 13 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Relacin entre cach y memoria virtual
La cach se utiliza por
velocidad
La memoria virtual se
utiliza por tamao
Se puede pensar que la
memoria principal es una
cach del disco duro.
Diferencia: swap + memoria
principal se suman.
El objetivo es disponer de
ms memoria que la fsica
disponible
La cach permite acceso
rpido al dato
La TLB permite permite
acceso rpido a la
direccin fsica donde est
el dato.
Dnde se coloca la MMU?
Memoria
Principal
MMU
Disco
CPU
Direccin
Virtual
Direccin
Fsica
Cach
Direccin
Virtual
Memoria
Principal
MMU
Disco
CPU
Direccin
Virtual
Direccin
Fsica
Cach
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 14 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Relacin entre cach y MMU
Cach en la parte de direcciones
virtuales
El tiempo de acceso al dato es
menor
Las etiquetas a manejar son
mayores: comparador ms lento
Cach en la parte de direcciones
fsicas
Las etiquetas son ms pequeas:
comparador ms rpido
Ms tiempo de acceso al dato
Permite tener en cach parte de la
tabla de pginas (es un dato ms)
Esquema muy utilizado
Esquema combinado
Adelantar el trabajo
IPV
DIR
p-1 0 n-1
Direccin virtual
Cach TLB
=
Dato
Fallo
Fallo
8
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 15 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Organizacin de la memoria virtual en X86
Tres modelos de memoria:
Plano (4 GB)
Real (compatibilidad 8086)
20 lneas: 1 MB
Segmentado (virtual)
Se puede paginar o no.
Modelo segmentado
Memoria fsica: 64 GB actualmente
en el PentiumIV
El programa no puede direccionar
ms de 4 GB directamente
Tamao de pgina tpico: 4 KB
Tambin admite 2 MB y 4 MB
Tamao de memoria virtual
Un programa puede manejar 16383
segmentos de 4 GB cada
segmento: 64 TBytes
En el captulo de procesadores
ms ejemplos
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 16 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Segmentacin paginada en la familia Intel X86 (PIV)
La direccin virtual se forma
con dos registros: segmentos
y offset
Espacio de memoria virtual
asignado a un segmento
Direccin virtual dentro de un
segmento
Direccin fsica
de la pgina
Mximo total:
64 GB
Mximo
directamente
4 GB
Mximo total:
64 TB
9
Arquitectura de Ordenadores
UPCO ICAI Departamento de Electrnica y Automtica 17 Jos A. Rodrguez Mondjar
Cesreo Fernndez Martnez
Memoria virtual
Informacin asociada a los segmentos en X86
Descriptor del segmento:
Inicio, tamao, derechos de
acceso
Slo 6 segmentos se pueden
acceder simultneamente