Vous êtes sur la page 1sur 80

Memoria Virtual

Estructura y Tecnolologa
de Ordenadores
Memoria virtual
1. Introduccin
2. Paginacin
3. Segmentacin
4. Segmentacin paginada
5. Paginacin por demanda y anticipada
6. Polticas de reemplazo
7. Poltica de asignacin de marcos de
pgina
8. Similitud entre las distintas Jerarquas

Estructura y Tecnologa de
Ordenadores
Memoria virtual
1. Introduccin
Concepto de Memoria Virtual: Mtodo para conseguir que la suma de
los espacios de pila, datos y texto de un programa pueda ser mayor que
el tamao fsico de la memoria disponible para l. (Fotheringham, 1961)

Cada proceso se asigna un rea de direcciones contiguo.

El SO mantiene en memoria solamente las partes del programa que se


estn utilizando y mantiene en disco (intercambiadas) el resto.

Sirve para sistemas mono y multiprogramados

Permite optimizar el uso de la memoria, al mantener en disco partes


del proceso poco usadas (rutinas de atencin a errores poco frecuentes,
funciones de uso espordico, datos no usados, )

- La memoria virtual se implementa normalmente mediante paginacin

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual

1. Introduccin

Ventajas:

a) Aumento del grado de multiprogramacin. Por tanto, aumento


en el rendimiento del sistema
b) Posibilidad de ejecutar programas ms grandes que la MV
disponible

El uso de la MV no implica que se acelere la ejecucin del programa


(ms bien al contrario, debido a la sobrecarga asociada a los
movimientos de informacin entre niveles de la jerarqua). Este
mecanismo no es apropiado para sistemas de tiempo real.

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
2. Paginacin
La memoria fsica se divide en bloques de tamao fijo que
llamamos marcos.

La memoria virtual se divide en bloques del mismo tamao


llamados pginas.

Al ejecutar un proceso se cargan sus pginas en los marcos


disponibles.

La vinculacin de direcciones requiere soporte por hardware-


MMU (Manejador de Memoria)

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
2. Paginacin
Pgina: Zona contigua de memoria de determinado tamao. (Por
motivos de eficiencia se suele trabajar siempre con tamaos potencia
de 2. Ej:4 KB.)
Organizacin:
El mapa de memoria del proceso se considera dividido en pginas.
La memoria principal se considera dividida en marcos de pgina
(tamao de marco = tamao de pgina).
Los marcos contendrn pginas de los procesos en ejecucin
La tabla de pginas (TP) relaciona cada pgina con el marco que
la contiene. El hardware de traduccin (MMU) usa la tabla de
pginas para traducir direcciones lgicas a fsicas
Tpicamente la MMU usa dos tablas de pginas (TP):
a) TP del usuario: Por ejemplo, direcciones lgicas que empiezan
por 0
b) TP del sistema: Por ejemplo, direcciones lgicas que empiezan
por 1. Estas slo se podrn usar en modo sistema

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
2. Paginacin

Direccin
direccin
fsica
lgica
CPU p d f d

p Memoria
Pgina
(virtual) f
Pgina
desplazamiento (fsica)
Tabla de pginas -marco- 0

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
2. Paginacin

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
2. Paginacin
La paginacin remedia la fragmentacin externa, pero no la fragmentacin
interna.

Un intento de acceso a una pgina virtual que no est asociada a un marco


produce un sealamiento al SO (trap), llamado fallo de pgina.

Como respuesta al fallo de pgina, el SO:

1. selecciona una pgina poco usada del proceso

2. Intercambia la pgina a disco

3. Asigna el marco de la pgina liberada a la pgina virtual que se


intenta acceder

Esto supone una forma de reasignacin dinmica por bloques de las


direcciones de memoria del proceso

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
2. Paginacin
La pgina est
S. O. 3 en memoria auxiliar
Programa

Referencia Memoria
2
1 Excepcin secundaria
LOAD M 0
6
Reiniciar
Memoria
la instr. principal
Tabla de
pginas
5 Marco libre 4 Cargar la
Actualizar la
pgina que
tabla de pginas
falla

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
2. Paginacin
Tabla de Pginas: Son tablas que contienen (para cada proceso) el
nmero de marco que corresponde a cada pgina virtual del proceso

Estructura de una entrada de la Tabla de Procesos


Nmero de marco

bit presente (1) ausente (0)


proteccin (permisos) del marco (RWX)
bit Modificado (1) o no (0) -lo usa el intercambiador
para saber si debe copiar el marco a disco o no-

Caching Desactivado/Activado
No usado
Estructura y Tecnologa de Ordenadores
ETSII ULL- 2004
Memoria virtual
Tamao de pgina: La eleccin de tamao de pgina
est condicionada por diversos factores, entre los que hay
que conseguir equilibrio:
Potencia de 2 y mltiplo del tamao del bloque de
disco
mejor pequeo por:
Menor fragmentacin
Se ajusta mejor al conjunto de trabajo
mejor grande por:
Tablas ms pequeas
Mejor rendimiento de dispositivos de E/S
Compromiso (entre 2K y 16K)

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Tamao de pgina

0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
0 010 1 bit presente/ausente
1 001 1
pgina 2 110 1
3 000 1
virtual 4 100 1
5 011 1 Desplazamiento
6 000 0
7 000 0 (12 bits)
8 000 0
pgina 9 101 1
10 000 0
fsica 11 111 1
12 000 0
13 000 0
14 000 0
15 000 0

1 1 0 0 0 0 0 0 0 0 0 0 1 0 0

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Tamao de pgina
Tasa de fallos de pgina

Tasa de fallos de pgina


(a) Tamao de pgina (b) Nmero de marcos de pgina asignados

P = Tamao del proceso completo


W = Tamao del conjunto de trabajo
N = Nmero total de pginas del proceso

Comportamiento tpico de la paginacin en un programa

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Tamao de pgina
Ejemplos de tamaos de pginas

Computadora Tamao de pgina


Atlas 512 palabras de 48 bits
Honeywell-Multics 1.024 palabras de 36 bits
IBM 370/XA y 370/ESA 4 Kbytes
Familia VAX 512 bytes
IBM AS/400 512 bytes
DEC Alpha 8 Kbytes
MIPS de 4 Kbytes a 16 Mbytes
UltraSPARC de 8 Kbytes a 4 Mbytes
Pentium de 4 Kbytes a 4 Mbytes
Power Pc 4 Kbytes

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual

Direccin:Una direccin lgica se obtiene a partir de:


n pgina + desplazamiento
Problema:
La paginacin no ofrece una solucin ptima. Lo ideal sera que
cada palabra del mapa de memoria de un proceso pudiera ubicarse
en cualquier direccin. Esta solucin es inviable debido al coste de
traduccin
Al no ser as, con la paginacin se asigna a cada proceso un
nmero entero de marcos de pgina, aunque el espacio de su
mapa de memoria no sea un mltiplo entero del tamao de pgina.
Por tanto, se irn generando huecos (memoria no aprovechada, en
la ltima de las pginas que no se llena de forma completa). Este
proceso se denomina fragmentacin interna (implica que, en
trmino medio, cada proceso desperdicia la mitad de una pgina)

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual

T. Pginas Proceso 1
Pgina 0 Marco 2
Memoria
Pgina 1 Marco N
Pg. 1 Pr. 2 Marco 0
..............
Pg. P Pr. 2 Marco 1
Pgina M Marco 3
Pg. 0 Pr. 1 Marco 2
Pg. M Pr. 1 Marco 3
T. Pginas Proceso 2
Pg. 0 Pr. 2 Marco 4
Pgina 0 Marco 4
............
Pgina 1 Marco 0
.............. Pg. 1 Pr. 1 Marco N

Pgina P Marco 1

Problema: Fragmentacin, la memoria asignada es mayor que la


memoria requerida y por lo tanto, se desperdicia cierta cantidad de
espacio

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Otras cuestiones:
En este esquema, el S.O. mantiene una tabla de pginas por
cada proceso. Cuando se produce un cambio de contexto se
indica a la MMU qu tabla de pginas usar
El S.O. mantiene una nica tabla de pginas para s
mismo. As, todos los procesos comparten el SO. Cuando un
proceso se ejecuta en modo sistema accede directamente a su
mapa y al del SO
S.O. mantiene tabla de marcos, como forma de mantener
informacin de estado de la memoria principal. De cada marco
se conoce su estado (libre, ocupado, etc)
S.O. mantiene tabla de regiones por cada proceso,
indicando las caractersticas de cada regin y qu rango de
pginas pertenecen a cada regin
Desperdicio de espacio: Mucho mayor gasto en tablas que con
asignacin contigua: es el precio de mucha mayor funcionalidad

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Estrategias de bsqueda
Paginacin por demanda
Las pginas son tradas desde memoria secundaria hasta
memoria principal cuando son referidas por el proceso en
ejecucin.
Paginacin anticipada
El sistema predice que pginas deben ser tradas desde el
almacenamiento secundario al primario, sin que stas
tengan que ser referenciadas explcitamente por el
proceso (por ej: la pgina siguiente).
Estrategias de colocacin
First FIT
Se van colocando las pginas consecutivamente desde la
posicin de memoria ms baja.

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
2. Paginacin

Polticas de sustitucin/reemplazo (FIFO, LRU, etc.)


Cmo se sabe dnde est la pgina que
buscamos.
La direccin virtual por s sola no es suficiente.
Necesidad de una estructura de datos adicional.
Tabla de pginas que incluya la posicin de todos.
Presentes: direccin fsica.
No presentes: posicin en el disco.

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
2. Paginacin

Qu ocurre con las escrituras?


Gran coste de acceso a la memoria
secundaria.
No es til usar un buffer de escritura como la
cach.
Postescritura (write back).
Cundo se reemplaza la pgina.
Existencia de un bit de cambio
No devolver si no se ha cambiado

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
TLB (Translation Look-aside Buffer)

Consta de una memoria asociativa con informacin


sobre ltimas pginas accedidas.

Para el multiproceso, existen varias posibilidades:

La TLB no incluye informacin del proceso. En este


caso, habr que invalidar la TLB en los cambios de
contexto
Entradas en TLB incluyen informacin sobre proceso:
en este caso, debe existir un registro de UCP para
mantener la identificacin del proceso actual

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
TLB (Translation Look-aside Buffer)
Estructura

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
TLB (Translation Look-aside Buffer)
Implementacin
HW: La MMU consulta la TLB y si falla, se usa la TP en
memoria.
Ventajas: Es un proceso muy rpido
Inconvenientes: Actualizar la TP en cambios de contexto y
hay que invalidar la TLB cuando se produce un cambio de
contexto (si no tiene informacin del Proceso)
SW: La MMU no usa la TP, sino que slo consulta TLB. En caso
de fallo, se activa el SO, que ha de buscar la entrada en la
tabla de pginas (mediante programa), e insertar en la TLB la
traduccin hecha, de forma que se pueda reutilizar.
Ventajas: flexibilidad, ya que la tabla de pginas puede ser
definida a conveniencia, sin restricciones impuestas por el
hardware
Inconvenientes: Es menos eficiente, ya que parte del
proceso de traduccin se realiza mediante programa.

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
TLB (Translation Look-aside Buffer)

Hacer rpida la traduccin de direcciones (el TLB)


TLB = Translation Lookaside Buffer
Las tablas de pgina estn en M.P. (son grandes)
Su acceso es costoso Prdida de la eficiencia de la
cach
Aplicacin del mismo criterio de localidad de la cach
Una cach especial (TLB) Con las traducciones
ltimamente usadas
Una cach que contiene solamente correspondencias de
tablas de pginas
Etiqueta: N de pgina virtual
Dato: N de pgina fsica
Bit adicionales de: Presencia; Referencia; Modificacin

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
TLB
(Translation
Look-aside
Buffer)

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Aplicacin del TLB en las referencias a memoria

1. Se busca el N de pgina virtual en el TLB


a) Si est acierto se forma la direccin fsica
* Se activa el bit de referencia
* Se activa el bit de modificacin si es escritura

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Aplicacin del TLB en las referencias a memoria

b) Si no est ver tipo de fallo posible


* Fallo de TLB (miss)
- Se carga desde la tabla de pginas
- Se intenta de nuevo la traduccin
* Fallo de pgina (fault)
- Una excepcin
- El S.O. producir el cambio de pgina

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Aplicacin del TLB en las referencias a memoria

Valores tpicos de una TLB

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Aplicacin del TLB en las referencias a memoria
2. Cuando se ha recuperado la traduccin del fallo:
a) Seleccionar una entrada de la TLB a sustituir
(Aleatorio, FIFO, LRU, ...)
b) Transferir slo los bits (modif y uso) a la tabla
de pginas.
* Poltica de postescritura

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
TLB de una DECStation 3100 (procesador R2000)

El TLB est incluido en el chip procesador


Tamao de pgina = 4 Kbytes = 220 pginas virtuales
N bits. Direccin fsica = N bits Direccin virtual (32)
TLB con 64 entradas

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
TLB de una DECStation 3100 (procesador R2000)

Totalmente asociativa
Cada entrada:
Etiqueta 20 bits
Bloque fsico 20 bits
Bits de validez, modificacin
Otros bits de organizacin

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
TLB de una DECStation 3100 (procesador R2000)

Cuando hay fallo:


El hardware genera el N de pgina de
referencia
El hardware suele guardar un ndice que indica
la entrada a sustituir

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual

TLB y Cach
de un R2000

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual

Fallos de pgina

Se produce cuando
el bit de presencia
est en off (0)
Quiere decir que la
pgina no est en
M.P.
Acudir al nivel
superior de
memoria (disco)
Transferirla a M.P.

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Veamos cmo se gestiona la ocurrencia de un fallo de pgina:
La MMU genera una excepcin. Normalmente deja en un registro
especial la direccin que caus el fallo
Se activa el SO, que comprueba:
Si la pgina es invlida, se aborta el proceso (solucin normal,
aunque tambin podra bastar con el envo de una seal).
Si la pgina es ausente se siguen los pasos siguientes:
a) Se consulta la tabla de marcos para ver si hay algn hueco
libre:
i. Si no hay ningn marco libre se aplica el algoritmo de
reemplazo, que decidir el marco a desalojar. La pgina
almacenada hasta entonces se marca como invlida. Si ha
sido modificada, antes hay que salvar su contenido en
memoria secundaria
ii. Si hay marco libre: se inicia la lectura desde memoria
secundaria y se vuelca al marco, marcndose como vlida
dicha entrada en la TP y apuntando el marco en que est
almacenada

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
En el peor de los casos un fallo de pgina puede suponer dos
operaciones de E/S:

a) Salvaguarda de la pgina expulsada


b) Lectura de la pgina nueva

Dos polticas definen el funcionamiento del sistema de memoria

Poltica de reemplazos:
Reemplazo local: Slo puede usarse para reemplazo un marco
asignado al proceso que causa fallo
Reemplazo global: Puede usarse para reemplazo cualquier marco

Poltica de asignacin de espacio a los procesos:


Asignacin fija: El nmero de marcos de pgina para cada proceso
es fijo.
Asignacin dinmica: El nmero de marcos de pgina para cada
proceso es dinmico

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Procesamiento
Memoria virtual
de fallos

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Tratamientos de los fallos de pgina y el TLB

Un fallo en TLB puede indicar 2 posibilidades:


La pgina est en M.P. slo crear la entrada
en la TLB
La pgina no est en M.P. control al S.O.
No est en M.P. si el bit de validez en la T.P.
es 0
El fallo de TLB puede ser tratado por hardware
o software

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Estructuras de informacin de las TP

Tabla directa (ordenada por pgina vitual)


Tabla de pgina de un nivel
Tabla multinivel
Tabla invertida (ordenada por marco de pgina)
Tabla Hash

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Una de las opciones disponibles para disminuir el tamao requerido por las
tablas de pginas es la tabla de pginas multinivel

Organizacin:Se trata de una tabla de pginas organizadas en M niveles:


Entrada de TP de nivel K apunta a TP de nivel K+1
Entrada de ltimo nivel apunta a marco de pgina

Direccin: La direccin lgica especifica la entrada a usar en cada nivel


1 campo por nivel + desplazamiento

Accesos:Un acceso lgico supone M + 1 accesos a memoria. Solucin:


uso de TLB

Invalidacin:Si todas las entradas de una TP son invlidas, no se almacena


esa TP y se pone invlida la entrada correspondiente de la TP superior

Ahorro de espacio:Si el proceso usa una parte pequea de su espacio


lgico, se consigue ahorro en espacio para almacenar TPs

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Pgina Direccin lgica

1er nivel 2 nivel Byte


0
1
2
3 Marcos de pgina
0
1
2
3

Registro base de la TP
(RIED) n
0
1
2
3

n MP: direcciones fsicas

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Ejemplo: Proceso que usa 12MB superiores y 4MB inferiores

2 niveles, pginas de 4K, dir. lgica 32 bits (10 bits por nivel) y 4
bytes por entrada
Tamao: 1 TP N1 + 4 TP N2= 5 * 4KB = 20KB (frente a 4MB)

Ventajas adicionales: permite compartir TPs intermedias y slo se


requiere que est en memoria la TP de nivel superior. Las restantes
pueden estar en disco y traerse por demanda

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
m e m o r ia
ta b la s d e p g in a s
s e g u n d o n iv e l P g in a 2 0 4 8

..
.
P g in a 1 0 2 3

T a b la d e p g in a s
p r im e r n iv e l
.. P g in a 0
V .
V
P g in a 1 0 2 4
V

I
P g in a 2 0 4 7

I ..
V .

P g in a 3 0 7 1

.. P g in a 1 0 4 8 5 7 5 ( 2 ^ 2 0 - 1 )
.

P g . 1 0 4 7 5 5 2 (2 ^ 2 0 -1 0 2 4 )
Memoria virtual
Otra alternativa para disminuir el espacio necesario por la tabla de pginas
es la tabla de pginas invertida
Organizacin:
La tabla contendr tantas entradas como marcos de pgina haya.
Cada entrada almacena la pgina cargada en dicho marco junto con
sus caractersticas:
Nmero de pgina,
Proceso dueo de la pgina
El tamao de la tabla de pginas es proporcional a la memoria
disponible.
Accesos:La MMU usa una TLB convencional, pero si falla la traduccin se
accede a la tabla de pginas invertida. Al estar la tabla organizada por
marcos no se puede hacer una bsqueda directa. Debera accederse a
todas las entradas en busca de la pgina correspondiente. Por esta
razn se suele organizar como una tabla hash
Ahorro de espacio: Se reduce el espacio de almacenamiento necesario,
ya que slo se guarda informacin sobre las pginas vlidas

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Direccin lgica

pid Pgina Byte

pid pgina i Byte

Direccin fsica

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
6. Polticas de reemplazo

Objetivo: Minimizar la tasa de fallos de pgina.

Cada algoritmo descrito tiene versin local y global:


Local: criterio se aplica a las pginas residentes del proceso
Global: criterio se aplica a todas las pginas residentes

Algoritmos a estudiar
A. FIFO
B. Reloj (o segunda oportunidad)
C. NRU
D. LRU
E. NFU

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
6. Polticas de reemplazo

Al intentar minimizar los fallos tratarn de eliminar la


pginas con menor probabilidad de uso.

Ejemplo. Secuencia de accesos:

T= 0 1 2 3 4 5 6 7 8 9 A B C D E F
Pgina= 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
FIFO (Primero en llegar)
- (a) Cada entrada de la tabla tiene un registro asociado con el instante de
carga de la pgina, o (b) el SO mantiene la tabla de pginas en orden de
antigedad (FIFO)
-
Cuando se produce un fallo de pgina y no hay marcos libres, se
intercambia a disco la pgina que lleve ms tiempo en la tabla.
-
Ej.: N de pgina 7,0 instante de entrada en tabla

T= 0 1 2 3 4 5 6 7 8 9 A B C D E F
Pgina= 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0
7,0 7,0 7,0 2,3 2,3 2,3 4,7 4,7 4,7 0,A 0,A 0,A
Tablas 0,1 0,1 0,1 3,5 3,5 3,5 2,8 2,8 2,8 1,D 1,D
a) 1,2 1,2 1,2 0,6 0,6 0,6 3,9 3,9 3,9 2,F
+ antiguo 7 7 7 0 1 2 3 0 4 2 3 0
0 0 1 2 3 0 4 2 3 0 1
+ nuevo b) 1 2 3 0 4 2 3 0 1 2
Estructura y Tecnologa de Ordenadores
ETSII ULL- 2004
Memoria virtual
Algoritmo de pginas del reloj

-Las pginas se mantienen en una cola circular, con un


apuntador a la pginas ms antigua.

-Si hay un fallo y R=0, la pgina se retira y se avanza el


apuntador. Si R=1 se limpia R se avanza hasta encontrar una
pgina con R=0.

-Son los punteros los que se desplazan, no las entradas de la


tabla.

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Primer marco en el buffer
circular de marcos que son
candidatos para el reemplazo
Pgina 9 Pgina 19
uso = 1 uso = 1
Pgina 1
uso = 1
Puntero al
siguiente Pgina 45
marco uso = 1

Pgina 222 Pgina 191


uso = 0 uso = 1

Pgina 33 Pgina 556


uso = 1 uso = 0
Pgina 67 Pgina 13
uso = 1 uso = 0

(a) Estado del buffer justo antes del reemplazo de


pgina

Figura
Estructura y Tecnologa 8.16. Ejemplo de funcionamiento de la poltica del reloj.
de Ordenadores
ETSII ULL- 2004
Memoria virtual
Algoritmo NRU
(de uso no reciente)

- Utiliza los bits de Referencia (R) y Modificado (M) de las


entradas de la tabla de pginas. Se definen cuatro clases de
pginas.


Clase 0: Pginas no referenciadas ni modificadas (R=0,M=0)

Clase 1: Pginas no referenciadas, modificadas (R=0,M=1)

Clase 2: Pginas referenciadas no modificadas (R=1,M=0)

Clase 3: Pginas referenciadas, modificadas (R=1,M=1)

La asignacin de pgina a desalojar se realiza aleatoriamente entre


las pginas de menor clase de la tabla.
Bit de Referencia
N de pgina 7,x,y Bit Modificado

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Algoritmo NRU
(de uso no reciente), ejemplo

Modif.
(M)=
Reset R=
T= 0 1 2 3 4 5 6 7 8 9 A B C D E
Pgina=7 0 1 2 0 3 0 4 2 3 0 3 2 1 2
7,1,0 7,1,0 7,1,0 2,1,1 2,0,1 3,1,1 3,1,1 3,1,1 3,0,1 3,1,1 3,1,1 3,1,1 3,0,1 3,0,1 3,0,1
0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1 2,1,1
1,1,1 1,1,1 1,0,1 1,0,1 1,0,1 4,1,1 4,0,1 4,0,1 0,1,0 0,1,0 0,0,0 1,1,0 1,1,0

2,0,1 3,0,1 3,0,1


0,0,0 0,0,0 2,0,1
1,0,1 4,0,1 0,0,0
Estructura y Tecnologa de Ordenadores
ETSII ULL- 2004
Memoria virtual

Algoritmo LRU
(pgina usada hace ms tiempo)

- Implementa un algoritmo basado en mirar al pasado y a


partir de l estimar cul podra ser el uso de la pgina.

- Cuando sea necesario, el planificador saca de la tabla que


lleva ms tiempo sin acceso, de entre las entradas de la
tabla.

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Algoritmo LRU
(pgina usada hace ms tiempo), implementaciones

A) La tabla se implementa como Pila de nmeros de pgina que


conserva en la salida la pgina ms recientemente usada y en la base la
menos recientemente usada. La actualizacin de la tabla es muy lenta,
an usando HW especial

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1

1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
0 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0
LRU 7 7 7 0 1 2 2 3 0 4 2 2 0 3 3 1 2 0 1 7

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Algoritmo LRU
(pgina usada hace ms tiempo), implementaciones
B) Uso de contadores.

Las entradas de la tabla de pginas tienen un campo de tiempo de uso en el que el


Manejador de Memoria escribe el tiempo de cada referencia.
Cada acceso a memoria requiere una bsqueda en la Tabla de Pginas y una
escritura en memoria por cada acceso a memoria.Requiere HW especial.

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Algoritmo NFU
(pgina no frecuentemente usada)

- Implementa una aproximacin del algoritmo LRU, utilizando


exclusivamente Software:


Se activa un contador software por cada pgina

En cada interrupcin de reloj, el SO suma el bit R (0 1)
al contador

Cundo existe un fallo de pgina se selecciona la pgina
con el contador ms bajo y se enva a disco

Problema: Tiene memoria

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Algoritmo NFU
(pgina no frecuentemente usada), ejemplo simple

Bits R de las pginas 1-6 en t=1,2,3 y 4


1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0
Contadores de las pginas 1-6 en t=1,2,3 y 4

00000001 00000010 00000011 00000100


00000000 00000001 00000010 00000010
00000001 00000001 00000001 00000001
00000000 00000000 00000001 00000001
00000001 00000010 00000010 00000011
00000001 00000001 00000010 00000010

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual

Algoritmo NFU
(pgina no frecuentemente usada)

-Solucin al problema de memoria:

-Maduracin:


Se activa un contador software por cada pgina

En cada interrupcin de reloj se desplaza el contador
un bit a la derecha y luego se suma el bit R al bit ms
significativo del contador.

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Algoritmo NFU con maduracin
(pgina no frecuentemente usada)

Bits R de las pginas 1-6 en t=1,2,3 y 4


1 0 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 1 0
Contadores de las pginas 1-6 en t=1,2,3 y 4

10000000 11000000 11100000 11110000

00000000 10000000 11000000 01100000

10000000 01000000 00100000 00010000

00000000 00000000 10000000 01000000

10000000 11000000 01100000 10110000

10000000 01000000 10100000 01010000


Estructura y Tecnologa de Ordenadores
ETSII ULL- 2004
Memoria virtual
3. Segmentacin
Segmentacin: es un esquema HW que intenta dar soporte
directo a las regiones.
En l se considera el mapa de memoria como compuesto por
varios segmentos.
Se puede considerar que consisten en una generalizacin de
los registros valla base y lmite, pero usando un par de
registros por cada segmento

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
3. Segmentacin
Direccin:Una direccin lgica estar compuesta por un nmero de
segmento y un desplazamiento en el mismo.
Traduccin: La forma de realizar la traduccin puede apreciarse en la
imagen siguiente:
d ir e c c i n l g ic a
s d
t a b la d e s e g m e n t o s

lm ite base

N O m e m o r ia
> +
S I

E x c e p c i n

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Tabla de segmentos:En este caso, la MMU usa una tabla de segmentos
(TS).
Organizacin:
El SO mantiene una TS por proceso, de forma que en cada cambio
de contexto se notifica a MMU cul debe usar
Cada entrada de TS contiene (entre otros):
Registro base y lmite del segmento
proteccin: RWX

Problema: Fragmentacin Externa


En este esquema se produce fragmentacin externa, ya que el
almacenamiento de los segmentos se realiza de forma contigua.
El SO debe mantener una lista que le permita conocer qu zonas de
memoria estn libres y cules ocupadas: es decir, estructuras de
datos que identifiquen huecos y zonas asignadas

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Valoracin:

Espacios independientes para procesos: mediante su propia TS, que


crea un espacio lgico independiente
Proteccin: mediante TS, ofreciendo espacios disjuntos de memoria
Compartir memoria: bajo control del SO es posible que dos o ms
procesos tengan un segmento asociado a la misma zona de memoria
Soporte de regiones: bits de proteccin
Maximizar rendimiento : No lo maximiza, por la fragmentacin
externa
Mapas de tamao adecuado: No cumple este objetivo porque no
permite implementar eficientemente un sistema de memoria virtual

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
4. Segmentacin paginada
Se intenta aunar las ventajas de ambos esquemas: segmentacin y
paginacin:
Segmentacin: soporte para regiones.
Paginacin: mejor uso del espacio de memoria.

Organizacin:
Entrada en TS apunta a una TP para el segmento.
El espacio del segmento est compuesto de varias pginas, de forma
que su espacio no tiene que ser contiguo.

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Traduccin:La traduccin se lleva a cabo segn se indica.

d ir e c c i n l g ic a
s p d t a b la d e p g in a s
t a b la d e s e g m e n t o s p a ra s e g m e n to s

lm ite d ir. T . P g . p m

NO m e m o r ia
> m d
SI
d ir e c c i n
E x c e p c i n f s ic a

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
Valoracin:

Espacios independientes para procesos: mediante TS


Proteccin: mediante TS
Compartir memoria: bajo control del SO, podemos hacer que una
misma entrada aparezca en diferentes TS (es decir, pueda ser usado
por varios procesos)
Soporte de regiones: bits de proteccin
Maximizar rendimiento: la paginacin aprovecha eficientemente el
espacio de memoria.
Mapas de tamao adecuado: permite esquemas de memoria virtual

Ventajas: Frente a paginacin sin segmentos facilita al SO la gestin de


las regiones, pero requiere HW ms complejo

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
5. Paginacin por demanda
Una vez analizados los diferentes esquemas hardware vamos a ver cmo
se articulan para construir un esquema de memoria virtual (estos
esquemas tambin pueden usarse sin memoria virtual, pero en la
actualidad su uso est siempre vinculado a la memoria virtual)

Normalmente la memoria virtual se construye sobre esquemas de


paginacin pura o segmentada. De esta forma, la unidad de informacin
intercambiada entre memoria principal y secundaria es la pgina.

Normalmente la transferencia de informacin se lleva a cabo bajo


demanda (paginacin por demanda). De esta forma, cuando un
proceso necesita acceder a una pgina que no est en memoria
principal, se genera un fallo de pgina y el SO se encarga de transferirla
desde la memoria secundaria. Si al traerla no hay espacio suficiente en
MP, ser necesario desalojar alguna de las pginas actuales (ello se
hace mediante un algoritmo de reemplazo)

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
La construccin de un sistema de memoria virtual sobre un procesador
con paginacin implica usar un bit de validez en las entradas de la
tabla de pginas, que indica si la pgina es vlida. Estarn marcadas
como invlidas todas las pginas que no residen en MP, as como las que
constituyen huecos en el mapa de memoria.

Para las entradas correspondientes a pginas no residentes en MP, la


entrada principal, en lugar de almacenar el marco donde reside
contendr la direccin del dispositivo de memoria en que se
encuentra almacenada. De forma que cuando se produce un acceso a
una de estas pginas, se produce una excepcin y se activa el SO,
responsable de hacer la transferencia desde memoria secundaria.

Algunos sistemas tambin usan la tcnica de prepaginacin. Al ocurrir


un fallo de pgina no slo traen la pgina en cuestin, sino tambin las
cercanas, al suponerse que se usarn en un corto plazo de tiempo. La
efectividad de esta tcnica depender del acierto de la prediccin.

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
7. Poltica de asignacin de marcos de pgina
El SO deber decidir cuntos marcos de pgina asigna a cada proceso:
a) Asignacin Fija
b) Asignacin Dinmica

A) Asignacin fija

Nmero constante de marcos asignados al proceso. Puede depender


de las caractersticas del proceso: tamao, prioridad,...
No se adapta a las distintas fases de ejecucin. Como positivo, el
comportamiento del proceso es relativamente predecible
Slo tiene sentido usar estrategia de reemplazo local
La arquitectura impone el N mnimo de marcos de pgina: mnimo
nmero de marcos a asignar igual al nmero de referencias que
aparezca en la instruccin que ms fallos de pgina pueda generar

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
Memoria virtual
B) Asignacin dinmica

El nmero de marcos asignados a un proceso es variable


dependiendo del comportamiento del proceso (y posiblemente de los
dems procesos).
Se adapta a las diferentes fases por las que puede pasar un proceso
Se pueden usar tanto estrategias de reemplazo global como local.

Asignacin dinmica + reemplazo local: el proceso va aumentando o


disminuyendo su conjunto residente dependiendo de su
comportamiento (comportamiento relativamente predecible)

Asignacin dinmica + reemplazo global: los procesos compiten por


el uso de las pginas entre ellos (comportamiento difcilmente
predecible)

Estructura y Tecnologa de Ordenadores


ETSII ULL- 2004
8. Similitud entre las distintas Jerarquas
Un marco comn para las
jerarquas de memoria

Estructura y Tecnologa de
Ordenadores
Similitud entre las distintas Jerarquas

Dnde ubicar un bloque?


Para la Cache
Exactamente en una posicin (Correspondencia Directa)
Posicin del bloque = N de Bloque mod bloques de la Cach
Un nmero fijo de posiciones (>= 2) donde colocar un bloque
(Asociativa por Conjunto)
Conjunto que contiene un bloque = N bloque mod nmero de
conj. de la Cach
En cualquier Posicin (Totalmente Asociativo)
Corresp. Directa y Totalmente Asocit., casos particulares

Estructura y Tecnologa de
Ordenadores
Similitud entre las distintas Jerarquas

Cmo se encuentra un bloque?

Sistema M. Virtual Indexacin de pginas


Cach Asociativa por Conjuntos
Descomposicin de la direccin virtual

Etiqueta | ndice | Desplazamiento en el bloque

ndice: selecciona el conjunto


Etiqueta: compara todas para ver si est

Estructura y Tecnologa de
Ordenadores
Estructura y Tecnologa de
Ordenadores
Similitud entre las distintas Jerarquas

Eleccin del tipo de Organizacin

M. Virtual: Totalmente Asociativa


M. Cach y TLB: Asociativa por conjuntos
Poltica de escritura: Ventaja en tiempo de
la directa

Estructura y Tecnologa de
Ordenadores
Similitud entre las distintas Jerarquas
Que bloques se deben de reemplazar en un
fallo de Cach?

Para Correspondencia directa:


Un solo candidato
Para Totalmente Asociativa: Todos son candidatos
Aleatoria (facilidad Hardware)
LRU (costosa)
Aproximacin LRU

Estructura y Tecnologa de
Ordenadores
Similitud entre las distintas Jerarquas

Qu ocurre en la escritura?
Escritura Directa (Write Trhough)
Fallos de lectura baratos
Implementacin facil (buffer de escritura)
Post-escritura (Write Back)
Escritura a velocidad de la Cach
Mltiples escritura se reduce a una
Uso del ancho de band del nivel mas bajo
Para Memoria Virtual
Poltica de Post-escritura (gran latencia)
Tendencias de Caches a Post-escritura
Aumento del gap CPU-Memoria

Estructura y Tecnologa de
Ordenadores

Vous aimerez peut-être aussi