Está en la página 1de 64

Curso 2008/2009 ECm2 - Memoria Virtual 1

MEMORIA VIRTUAL
Curso 2008/2009 ECm2 - Memoria Virtual 2
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Definicin
Gestin de memoria automtica que da al
programador la ilusin de que su espacio de
direccionamiento no est limitado por el espacio
de memoria principal reservado a su programa
(espacio fsico), sino por el rango de direcciones
que permite el sistema (espacio virtual).
Curso 2008/2009 ECm2 - Memoria Virtual 3
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Ventajas de la memoria virtual
! El espacio virtual puede ser mucho
mayor que el espacio fsico. (A veces
menor, raro).
! Facilita la multiprogramacin.
! Mejor aprovechamiento de la memoria
principal.
! Facilita la proteccin de los programas.
! Transparente al programador.
Curso 2008/2009 ECm2 - Memoria Virtual 4
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Inconvenientes de la memoria virtual
! Gasto temporal relativamente elevado
de la gestin de memoria (traduccin
de direcciones, reemplazos de bloques
reservados, etc.)
! Gasto de procesamiento en la
resolucin de excepciones.
! Gasto hardware para conseguir una
gestin de memoria rpida y eficiente
(MMU, Memory Management Unit).
Curso 2008/2009 ECm2 - Memoria Virtual 5
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Estructura de la
gestin de la memoria virtual
! Traduccin hw-sw:
Desde el procesador
Mapeador de Direcciones
Jerarqua de Memoria
Fallo de pgina
(si la pgina no
est presente)
Direccin Virtual
Direccin Fsica
Curso 2008/2009 ECm2 - Memoria Virtual 6
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Estrategias de
implementacin de la memoria virtual (I)
! MMU interna:
" MMU en el mismo circuito integrado que el
procesador.
" Se da en casi todos los procesadores
actuales
" Ventajas:
! Tiempos de acceso reducidos.
! Alta portabilidad de programas.
! Comparticin de hardware entre el procesador
y la MMU.
Curso 2008/2009 ECm2 - Memoria Virtual 7
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Estrategias de
implementacin de la memoria virtual (II)
! MMU externa:
" MMU en un circuito integrado
independiente.
" Ejemplos:
! Motorola 68000/10 (68020) + 58451 (68851)
! Zilog 8001 (8803) + 8010 (8015)
! Nat. Semic. 16000 + 16082
" Ventajas:
! Se ahorra espacio del circuito integrado del
procesador para otros recursos (cach, etc.)
Curso 2008/2009 ECm2 - Memoria Virtual 8
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Definiciones (I)
! Espacio virtual ! espacio nominal !
espacio de direcciones:
" Conjunto de direcciones que puede direccionar
un proceso.
! Espacio fsico ! espacio de memoria !
reserva de memoria primaria (PMA):
" Espacio de memoria principal reservado para el
proceso.
Curso 2008/2009 ECm2 - Memoria Virtual 9
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Definiciones (II)
! Traductor de direcciones:
" V: espacio virtual
" M: espacio fsico
, si x est en M
en la posicin y
, en otro caso
{ } ! " #M V f :
y x f V x = ! " ) (
! = ) (x f
0
1
2
3
|V|-1
|M|-1
0
1
Espacio
Virtual
Espacio
Fsico
Curso 2008/2009 ECm2 - Memoria Virtual 10
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Definiciones (III)
! Excepcin o fallo de direccionamiento:
" Se produce cuando f(x) = .
" La referencia x debe transferirse de la memoria secundaria
a la primaria.
! Reglas para resolver los fallos de direccionamiento:
" Regla de carga: CUANDO se transfiere x.
" Regla de ubicacin: DONDE se sita x en la memoria
principal.
" Regla de reemplazo: QUE referencia virtual situada en la
memoria principal debe eliminarse para hacer sitio a x.
(slo si la memoria principal est totalmente ocupada).
Curso 2008/2009 ECm2 - Memoria Virtual 11
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Clasificacin de los
sistemas de memoria virtual (I)
! Los sistemas de memoria virtual agrupan las
referencias virtuales en bloques.
! Una referencia virtual, por tanto, est
compuesta de dos campos: nmero de
bloque y desplazamiento dentro del bloque.
! Estos bloques se consideran como las
unidades de transferencia de informacin
entre la memoria secundaria y la principal.
Curso 2008/2009 ECm2 - Memoria Virtual 12
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Clasificacin de los
sistemas de memoria virtual (II)
! El traductor de direcciones, por tanto, slo
debe traducir el campo de bloque, dejando
invariante el desplazamiento.
! El tamao del traductor, de esta manera, es
proporcional al nmero de bloques del
espacio virtual (o fsico). (Justificacin de la
definicin de bloques).
! Referencia: N de bloque + desplazamiento
" Slo es necesario traducir el nmero de bloque.
Curso 2008/2009 ECm2 - Memoria Virtual 13
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Clasificacin de los
sistemas de memoria virtual (III)
! Tipos de sistemas de memoria virtual segn el
tamao de los bloques:
" Sistemas paginados:
! Los bloques son todos del mismo tamao.
! Los bloques se llaman pginas y una excepcin se
llama fallo de pgina.
" Sistemas segmentados:
! Los bloques son de tamao diferente.
! Los bloques se llaman segmentos y una excepcin
se llama fallo de segmento.
" Sistemas segmentados con paginacin:
! Los bloques (segmentos) son de tamao desigual
pero mltiplo de un tamao unidad (pgina).
Curso 2008/2009 ECm2 - Memoria Virtual 14
Sistemas paginados
Esquema de memoria virtual ms difundido.
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Curso 2008/2009 ECm2 - Memoria Virtual 15
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Representacin
! Programa P:
" P = {p
1
,p
2
, , p
N
}, p
i
pgina virtual.
! Normalmente, tamao(p
i
) = p = 2
k
.
! Direccin virtual includa en pi:
" a
ij
= p
i
d
j
, p
i
P, 0!d
j
!p
m bits m-k k bits
! Vector de referencias (referencias a
pginas generadas al ejecutarse P):
" R = r(1)r(2)r(n), r(i) = p
j
, 1!i!n, 1!j!N
!
Curso 2008/2009 ECm2 - Memoria Virtual 16
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Traduccin de direcciones (I)
! Proyeccin del subespacio virtual asociado a P
sobre su espacio fsico reservado en la
memoria principal (PMA):
Desplazamiento Nmero de Pgina
DIRECCIN VIRTUAL
MAPEADOR
DE PGINAS
Direccin Base
de la Pgina
Pgina (en Memoria)
Desplazamiento
Relativo
Dentro de
la Pgina
Curso 2008/2009 ECm2 - Memoria Virtual 17
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Traduccin de direcciones (II)
! La traduccin slo afecta al campo de
pgina virtual. El desplazamiento se
concatena con el resultado de la
traduccin.
" Pgina virtual ! pgina fsica
Curso 2008/2009 ECm2 - Memoria Virtual 18
GRUPO DE ARQUITECTURA
DE COMPUTADORES
! Traduccin directa:
" El traductor se implementa mediante una tabla de
acceso directo de tamao |V|/p, llamada tabla de
pginas.
! Tabla indexada por el nmero de PV
! Bit de residencia
! Bit de validez
! Bit de modificacin
(siempre postescritura)
! Reemplazo
(ej. Bits de referencia)
! Proteccin
Esquemas bsicos de
implementacin de la traduccin (I)
Tabla de Pginas
i
1
0
|V|/p-1
#de Pg. Desplaz.
#de Marco Desplaz.
Curso 2008/2009 ECm2 - Memoria Virtual 19
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Esquemas bsicos de
implementacin de la traduccin (II)
! Traduccin directa
(cont.):
" Almacenamiento de la
tabla de pginas:
! En registros rpidos:
" Traduccin rpida y
costosa.
! En la memoria principal:
" Traduccin ms lenta
pero menos costosa que
la anterior.
ndice de registro Desplazamiento
Direccin Lgica
0 15
12 bits 4 bits
# de
marco
Bits de
proteccin
# de marco Desplazamiento
Direccin Fsica 0 23
Memoria
Fsica
Pgina
de 4KB
1
6

R
e
g
i
s
t
r
o
s

d
e

d
i
r
e
c
c
i

n

b
a
s
e

d
e

p

g
i
n
a
0
15
Curso 2008/2009 ECm2 - Memoria Virtual 20
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Esquemas bsicos de
implementacin de la traduccin (II)
! Traduccin asociativa:
" La traduccin se implementa mediante una tabla de
pginas, pero sta se almacena en una memoria
asociativa. Su tamao es |M|/p.
" Tabla de pginas invertida por hash (f(DV) # DF).
Tabla de Pginas Asociativa (|M|/p entradas)
k
i
#de Pg. Desplaz.
#de Marco Desplaz.
l
j
#de Pg. #de Marco
Curso 2008/2009 ECm2 - Memoria Virtual 21
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Esquemas bsicos de
implementacin de la traduccin (III)
! Traduccin directa en varios niveles:
" El alto coste de los registros rpidos y de
las memorias asociativas as como el gran
tamao de la tabla de pginas de acceso
directo restringen el uso de los esquemas
de traduccin directo y asociativo a
sistemas pequeos.
" La mayora de los sistemas realizan la
traduccin mediante un esquema directo
en dos niveles, es decir, almacenan la
tabla de pginas en el espacio virtual
(paginan la tabla de pginas).
Curso 2008/2009 ECm2 - Memoria Virtual 22
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Esquemas bsicos de
implementacin de la traduccin (IV)
! Traduccin directa en varios niveles (cont.):
" Algunos sistemas amplan la traduccin a tres
niveles, como el Z80,000.
" Inconvenientes:
! La traduccin es lenta, pues hay que hacer tres (o
cuatro, tres niveles ms dato) accesos a la memoria
principal.
! La gestin de los fallos de pgina es compleja.
Registros
Descriptores
de Tablas
+ + +
TP nivel 1 TP nivel 2 TP nivel 3
I-TP1 I-TP2 I-TP2 " Direccin Lgica " # Marco
0 9 16 15 24 23 31
Etiquetas de Direccin
Lgica de Pgina
Direcciones
Fsicas de
Marcos
Buffer de
Traduccin
Anticipada
0 9 10 31
Curso 2008/2009 ECm2 - Memoria Virtual 23
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Esquemas bsicos de
implementacin de la traduccin (V)
! Traduccin directa y asociativa combinada:
" Pretende combinar la ventaja del bajo coste
hardware de la traduccin directa con la ventaja de la
alta velocidad de la traduccin asociativa.
Tabla de Traduccin
Asociativa (parcial)
#de Pg. Desplaz.
#de Marco Desplaz.
#de Pg. #de Marco
PTP
+
Tabla de Traduccin
Directa
+
1
2
N
max
Acierto
No acierto
Puntero a la
Tabla de Pginas
Curso 2008/2009 ECm2 - Memoria Virtual 24
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Esquemas bsicos de
implementacin de la traduccin (VI)
! Traduccin directa y asociativa
combinada (cont.):
" La memoria asociativa o TLB (translation-
lookaside buffer) almacena los pares
[pgina virtual, pgina fsica] ms
recientemente referenciados junto con los
bits de gestin que se requieran
" Su xito est justificado por el principio de
localidad.
" Tamao tpicos de la TLB: 32 a 256
entradas
Curso 2008/2009 ECm2 - Memoria Virtual 25
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Esquemas bsicos de
implementacin de la traduccin (VII)
Curso 2008/2009 ECm2 - Memoria Virtual 26
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Buffer de traduccin rpida
y funcionamiento de la cach
Curso 2008/2009 ECm2 - Memoria Virtual 27
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Ejemplos de aplicacin
de las tcnicas de traduccin
Memoria
Virtual
Memoria
Virtual
Pgina
3
1
10
3 10
Posicin en
Memoria Virtual
Traduccin directa
Tabla de pginas
1
0
1
2
3
1 10
Posicin en
Memoria Fsica
Una entrada/Pg virtual
Traduccin asociativa
Memoria asociativa
0 4
9 2
3 1
1 0
PV PF
Una entrada/Pg residente
en memoria
Curso 2008/2009 ECm2 - Memoria Virtual 28
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Ejemplos de aplicacin
de las tcnicas de traduccin
Posicin en
Memoria Virtual
1 tabla
Pgina fsica
2 tablas
1 tabla 2 tabla Desplaz. 2 4 9
0
7
1
2
3
4
7 9
Posicin en
Memoria Fsica
RBTP
0
1
2
Curso 2008/2009 ECm2 - Memoria Virtual 29
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Tamao de las pginas (I)
! Compromiso entre los factores:
" Eficiencia del dispositivo de memoria secundaria: el ms
influyente.
" Espacio ocupado por la tablas de pginas.
" Tamao medio de las estructuras lgicas de los programas.
" Otros (menos importantes).
! Influencia del tamao de pgina:
" Fragmentacin interna:
! Espacio de memoria fsica desperdiciado al final de la ltima
pgina fsica.
! Grave si el tamao de pgina es grande.
" Fragmentacin de la tabla:
! Espacio de memoria fsica desperdiciado en almacenar las tablas
de pginas.
! Grave si el tamao de pgina es pequeo.
! Estudios indican que la mayora de los bloques lgicos
ocupan menos de 1000 palabras.
Curso 2008/2009 ECm2 - Memoria Virtual 30
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Tamao de las pginas (II)
! El tamao de pgina
prctico se sita
entre 128 y 1024
palabras.
(normalmente entre
512 y 8192 bytes)
! Ubicacin
(totalmente
asociativo).
Curso 2008/2009 ECm2 - Memoria Virtual 31
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmo de carga (I)
! Cundo debe transferirse una pgina virtual desde la
memoria secundaria a la primaria?
! Soluciones:
" Carga por demanda:
! La pgina virtual se carga en la memoria principal cuando es
referenciada y produce un fallo de pgina.
! Mtodo simple y no sobrecarga el canal de paginacin.
! Usual en los microprocesadores de 16 y 32 bits.
" Precarga:
! Como consecuencia de un fallo de pgina, se carga en la memoria
principal la pgina fallada junto con otra/s adicional/es.
! Mtodo predictivo: se precargan aquellas pginas que produciran
fallos en un futuro prximo.
! Nmero de pginas precargadas:
" Segn la organizacin de la informacin en la memoria secundaria.
" Segn el tipo de interface entre la memoria principal y la secundaria.
" Segn el tamao de la PMA y si es de tamao constante. (Influye en la
sobrecarga del canal de paginacin, reemplazo).
! Normalmente, se precarga una sola pgina.
Curso 2008/2009 ECm2 - Memoria Virtual 32
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmo de carga (II)
! Ejemplo de un algoritmo de prediccin satisfactorio:
1) A p
i
se le asocia PRED[i] (inicialmente, PRED[i]=p
i
+1).
2) LAST=k si p
k
produjo el ltimo fallo de pgina (inicialmente 0).
3) Si pi produce un fallo de pgina, entonces:
$ Se carga p
i
por demanda.
$ Se precarga PRED[i] si no es residente.
$ Si no hubo precarga en el fallo anterior, o la pgina precargada
no fue referenciada, entonces PRED[LAST]=p
i
.
" Algoritmo de prediccin operativo cuando el tamao de pgina es
pequeo (muchas pginas).
! Ejemplo de sistema con un algoritmo de precarga:
" Sistema operativo VAX/VMS de DEC VAX-11/780.
" El conjunto de pginas precargadas puede elegirse de forma
manual o automtica.
! Seguimiento dinmico del comportamiento del programa.
Curso 2008/2009 ECm2 - Memoria Virtual 33
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmo de reemplazo
! Controlado por el Sistema Operativo
" Aproximaciones tericas: FIFO, LRU,
" Aproximaciones prcticas
! LFU (Least Frequentlu Used)
! NUR (Not Used Recently)
! etc.
Curso 2008/2009 ECm2 - Memoria Virtual 34
Sistemas segmentados
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Curso 2008/2009 ECm2 - Memoria Virtual 35
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Inconveniente fundamental
de los sistemas paginados
! Las pginas son de tamao fijo y
arbitrario: no tienen relacin con la
estructura lgica del programa.
! Puede haber datos en una pgina no
relacionados con los dems. Ineficiencia
por el principio de localidad.
Curso 2008/2009 ECm2 - Memoria Virtual 36
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Sistema segmentado
! Sistema de memoria virtual que considera
bloques de tamao desigual, definidos en
funcin de la estructura lgica del cdigo y
datos del programa. (procedimientos,
funciones, arrays, matrices).
! Cada bloque se denomina segmento.
! La mayora de la caractersticas (conceptos)
de los sistemas segmentados son similares a
las de los sistemas paginados.
Curso 2008/2009 ECm2 - Memoria Virtual 37
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Traduccin de direcciones (I)
! Direcciones virtuales:
! Tabla de segmentos:
" Contiene informacin para traducir el nmero de segmento a
una direccin fsica de comienzo del segmento.
" Sus entradas contienen informacin similar a la contenida en las
entradas de las tablas de pginas, junto con la longitud del
segmento.
! Fallo de segmento:
" Referencia a un segmento no residente en la memoria principal.
! Registro base de la tabla de segmentos.
! La tabla de segmentos es un segmento ms (para el
S.O.).
(s
i
,d
j
) s
i
nmero de segmento; d
j
desplazamiento
Curso 2008/2009 ECm2 - Memoria Virtual 38
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Traduccin de direcciones (II)
! Tipos de traduccin:
" Los mismos que en
los sistemas
paginados (directa,
asociativa o hbrida).
" Diferencia: el
desplazamiento se
suma (no se
concatena).
" Ejemplo: directa.
-PTS (Puntero a la Tabla de Segmentos):
contiene la direccin fsica de comienzo de la
tabla de segmentos.
- Se chequea d
j
contra la longitud para
comprobar que la direccin virtual se
encuentra dentro del segmento referenciado.
- Mayor facilidad de proteccin (entidad
lgica).
s
i
d
J
PTS
+
Tabla de Segmentos
longitud base
+
Bits de
proteccin
flag
Dir. fsica
Curso 2008/2009 ECm2 - Memoria Virtual 39
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Traduccin de direcciones (III)
! Ejemplo: Intel 432 con traduccin en
dos niveles
" Se almacenan los derechos de acceso
independientemente de la tabla de segmentos
" Permite que varios mdulos compartan
segmentos con diferentes derechos de acceso
Selector
de
segmento
Descriptor de
acceso
Segmento de acceso
Descriptor de
segmento
Tabla de segmentos
segmento
Curso 2008/2009 ECm2 - Memoria Virtual 40
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Fallos de segmento
! Es necesario determinar si hay espacio de
memoria principal para ubicar el segmento
virtual fallado (este problema no existe en los
sistemas paginados).
! Solucin:
" Estructurar la memoria principal. Se definen dos
listas encadenadas similares:
! Lista de segmentos reservados.
! Lista de segmentos libres (LAVS), normalmente en
orden ascendente de su posicin.
T
a
m
a

o
E
n
l
a
c
e
T
a
m
a

o
E
n
l
a
c
e
T
a
m
a

o
E
n
l
a
c
e
FIRST
Curso 2008/2009 ECm2 - Memoria Virtual 41
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Espacio virtual segmentado
versus paginado
! Un sistema segmentado es un espacio
bidimensional: los segmentos son
bloques de direcciones virtuales
contiguas, pero los segmentos no son
contiguos entre si.
! Se produce una excepcin al intentar
acceder a una posicin fuera del
segmento.
Curso 2008/2009 ECm2 - Memoria Virtual 42
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Comparticin de los segmentos
! Posibilidades de comparticin de
segmentos:
" Un segmento compartido es
referenciado por dos procesos
mediante el mismo nmero.
" Un segmento compartido es
referenciado por dos procesos
mediante nmeros diferentes:
! Esquema ms verstil.
! Implementacin: Permitiendo una
tabla de segmentos privada a
cada proceso.
! Puede necesitarse que el
segmento compartido genere
nmeros de segmento
dependientes del contexto.
Segmento de A
Segmento de B
0
1
2
3
4
Tabla de
Segmentos de A
0
1
2
3
4
Tabla de
Segmentos de B
Segmento
Compartido
Curso 2008/2009 ECm2 - Memoria Virtual 43
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmos de carga y ubicacin
! Proceso de carga: similar a los sistemas
paginados (precarga), (cundo?)
! Proceso de ubicacin: ms complejo que
en los sistemas paginados. (dnde?).
Curso 2008/2009 ECm2 - Memoria Virtual 44
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmos de ubicacin
! Todos basados en la lista de LAVS:
" First-Fit.
" Best-Fit.
" Worst-Fit.
" Binary-Buddy.
Curso 2008/2009 ECm2 - Memoria Virtual 45
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmo First-Fit (I)
! Hace uso de la lista LAVS.
! El segmento solicitado no residente se coloca en el primer
segmento libre de la memoria principal donde quepa.
(bsqueda en orden ascendente de direcciones fsicas).
! Si el procesador solicita el segmento S no residente de
tamao L, se realizan las siguientes acciones.
1) Sea Q%FIRST (puntero inicial de LAVS).
2) Si TAMAO(Q)>L, S se coloca a partir de la direccn fsica
Q+TAMAO(Q)-L. Se actualiza TAMAO(Q) a TAMAO(Q)-L.
3) Si TAMAO(Q)=L, S se coloca a partir de la direccin fsica
Q. Se borra el segmento libre de LAVS.
4) Si TAMAO(Q)<L, se asigna Q%SIGUIENTE(Q) y se va a 2.
Curso 2008/2009 ECm2 - Memoria Virtual 46
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmo First-Fit (II)
! Para evitar la formacin de segmentos libres demasiado
pequeos, se cambian:
2) Si TAMAO(Q)>L+C
3) Si L!TAMAO(Q)!L+C
! Ejemplo:
" Un sistema tiene la siguiente lista de segmentos libres:
LAVS=(0,128)#(384,1024)#(1920,512).
" Se solicitan los segmentos A (tamao 64) y B (tamao 256).
" Evolucin de la lista LAVS:
LAVS=(0,64)#(384,1024)#(1920,512); A comienza en la
direccin 64.
LAVS=(0,64)#(384,768)#(1920,512); B comienza en la
direccin 1152.
Curso 2008/2009 ECm2 - Memoria Virtual 47
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmo Best-Fit
! Hace uso de la lista LAVS.
! El segmento solicitado no residente se coloca en el
segmento libre de la memoria principal ms pequeo
donde quepa.
! El procedimiento de ubicacin es el mismo que el del
algoritmo First-Fit, pero previamente, se ordena la lista
LAVS segn el orden creciente de los tamaos de los
segmentos libres.
! Necesidad de reordenacin.
! Ejemplo:
" LAVS = (0,128)#(384,1024)#(1920,512).
" Se solicitan los segmentos A (tamao 64) y B (tamao 256).
" Se reordena la lista LAVS:
LAVS = (0,128)#(1920,512)#(384,1024).
" Evolucin de la lista LAVS:
LAVS=(0,64)#(1920,512)#(384,1024); A comienza en la direccin 64.
LAVS=(0,64)#(1920,256)#(384,1024); B comienza en la direccin 2176.
Curso 2008/2009 ECm2 - Memoria Virtual 48
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmo Worst-Fit
! Hace uso de la lista LAVS.
! El segmento solicitado no residente se coloca en el mayor
de los segmentos libres de la memoria principal.
! El procedimiento de ubicacin es similar al del algoritmo
Best-Fit, salvo que la lista LAVS se ordena en orden
decreciente de los tamaos de los segmentos libres.
! Ejemplo:
" LAVS = (0,128)#(384,1024)#(1920,512).
" Se solicitan los segmentos A (tamao 64) y B (tamao 256).
" Se reordena la lista LAVS:
LAVS = (384,1024)#(1920,512)#(0,128)
" Evolucin de la lista LAVS:
LAVS=(384,960)#(1920,512)#(0,128); A comienza en la direccin
1344.
LAVS=(384,704)#(1920,512)#(0,128); B comienza en la direccin
1088.
Curso 2008/2009 ECm2 - Memoria Virtual 49
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmo Binary-Buddy (I)
! Tamao de segmento y LAVS potencia entera de 2.
! Hace uso de la lista LAVS.
! Procedimiento de ubicacin:
" Se divide la lista LAVS en n listas (2
n
es el tamao mximo
de los segmentos).
" La i-sima lista encadena los segmentos libres de tamao 2
i
(buddies).
" Las n listas pueden reestructurarse de dos formas:
a) Un segmento libre de la lista (i+1)-sima se divide en dos
segmentos iguales y se encadenan a la lista i-sima.
b) Proceso inverso al a).
" Desarrollo de un algoritmo de ubicacin basado en las
n listas anteriores y sus dos mecanismos de
reestructuracin.
Curso 2008/2009 ECm2 - Memoria Virtual 50
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmo Binary-Buddy (II)
" Ejemplo de algoritmo de ubicacin:
Bsqueda de un buffer
del tamao requerido
Existe?
Peticin
de memoria
Asignar buffer
a la peticin
S
Fin
Buscar un buffer de
tamao inmediatamente
mayor
Lo hay?
Dividir el buffer
grande en dos mitades
Asignar una mitad a la peticin
Poner la otra en la lista de bloques
disponibles correspondiente
S
Fin
Buscar dos buffers
consecutivos del nivel inferior
Existen? Unirlos
Asignar el resultado a la peticin
Fin
S Poner la peticin
en cola de espera
Fin
Curso 2008/2009 ECm2 - Memoria Virtual 51
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Algoritmo Binary-Buddy (III)
" Ejemplo:
! LAVS=(0,128)#(384,1024)#(1920,512).
! Se solicitan los segmentos A (tamao 64) y B (tamao 256).
! Se reordena la lista LAVS en 3 listas:
" Lista-7 = (0,128)
" Lista-9 = (1920,512)
" Lista-10=(384,1024)
! Evolucin de las listas:
" Se divide la lista-7 en dos buddies:
$ Lista-6=(0,64)#(64,64); A comienza en la direccin 0.
" Se divide la lista-9 en dos buddies:
$ Lista-8=(1920,256)#(2176,256); B comienza en la
direccin 1920.
! Lista finales:
" Lista-6=(64,4)
" Lista-8=(2176,256)
" Lista-10=(384,1024)
Curso 2008/2009 ECm2 - Memoria Virtual 52
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Comparacin de los
algoritmos de ubicacin
! Algoritmo Best-Fit:
" Minimiza el tamao del segmento libre sobrante tras la
ubicacin.
! Algoritmo Worst-Fit:
" Basado en la idea de que, tras la ubicacin, el segmento
libre sobrante es suficientemente grande como para ser
til.
! Algoritmos ms eficientes:
" First-Fit y Binary Buddy
! Inconveniente asociado a la ubicacin:
" Fragmentacin externa:
! Prdida de espacio de memoria fsica debido a la
produccin de segmentos libres sobrantes de tamao
muy pequeo (intiles).
" Puede llegar a ser un gran problema.
Curso 2008/2009 ECm2 - Memoria Virtual 53
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Compactacin o reemplazo (I)
! Cuando se solicita un segmento no residente, pueden
darse dos situaciones:
" Se encuentra un segmento libre de tamao suficiente:
ubicacin.
" No se encuentra tal segmento libre:
! Soluciones:
" Compactacin.
" Reemplazo.
! Compactacin (o garbage-collection):
" Se redisponen los segmentos libres de forma contigua
en una zona de la memoria fsica ( se crea un nico
segmento libre de gran tamao).
" Problemas:
! Hay un gran consumo de tiempo.
! Tiene asociada una actualizacin de las tablas de
segmentos (o listas de segmentos residentes, si la
hubiere).
Curso 2008/2009 ECm2 - Memoria Virtual 54
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Compactacin o reemplazo (II)
! Reemplazo:
" Similar al reemplazo de los sistemas paginados.
" nica diferencia:
! Debe tenerse en cuenta el tamao del segmento solicitado.
" Problemas:
! Uso poco eficiente de la memoria fsica.
! El segmento reemplazado puede necesitarse en un futuro
prximo.
! La eleccin entre compactacin y reemplazo no es simple:
" Depende de cada situacin particular.
! Tamao de los segmentos:
" Los segmentos pueden ser desmesuradamente grandes.
" Soluciones:
! Limitar el tamao de los segmentos (1 Kbyte para B5500; 64 Kbytes
para i80286 y Z8000).
! Paginar los segmentos: segmentacin con paginacin.
Curso 2008/2009 ECm2 - Memoria Virtual 55
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Sistemas segmentados con paginacin (I)
! Hoy en da pocos sistemas utilizan
segmentacin pura debido a los
problemas para efectuar los reemplazos
! Enfoque hbrido: segmentos paginados
" Simplifica el reemplazo
! No se precisa que la memoria de un segmento
sea contigua
! No es preciso cargar los segmentos enteros en
memoria
Curso 2008/2009 ECm2 - Memoria Virtual 56
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Sistemas segmentados con paginacin (II)
! Combinacin de segmentacin y paginacin:
(los segmentos se dividen en un nmero
entero de pginas)
" Segmentacin lineal (domina paginacin).
" Segmentacin nominal (domina segmentacin).
! Direccin virtual: (s
i
, p
j
, d
k
) espacio 3-
dimensional.
" s
i
es el nmero de segmento virtual.
" p
j
es el nmero de pgina virtual.
" d
k
es el desplazamiento dentro de la pgina.
Curso 2008/2009 ECm2 - Memoria Virtual 57
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Sistemas segmentados con paginacin (III)
! - PTS apunta a la tabla de segmentos del proceso en curso.
- Limite es el campo que indica el tamao de cada segmento.
- Los bits de proteccin estn a nivel de pginas (no necesario
en segmentacin nominal).
- Flag indica la residencia en PMA de cada pgina.
Limite Punt. a TP
#de Marco Desplaz.
s
i
p
J
d
k
PTS
Direccin virtual (Puntero a la Tabla de Segmentos)
+
Tabla de Segmentos
#marco
Tabla de Pginas
para el segmento s
i
+
Bits de
proteccin
flag
Curso 2008/2009 ECm2 - Memoria Virtual 58
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Sistemas segmentados con paginacin (IV)
! DOS traducciones: elevado coste
temporal.
" Soluciones:
! Uso de TLB
! Uso de registros rpidos
! El fallo de pgina se resuelve de la
misma forma que en los sistemas
puramente paginados.
! PROBLEMA: fallo en el acceso a la tabla
de pginas ! lentifica ! 2 fallos.
Curso 2008/2009 ECm2 - Memoria Virtual 59
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Paginacin vs Segmentacin
No siempre (pequeos
segmentos pueden
transferir slo unos pocos
bytes)
S (ajusta tamao de
pgina para equilibrar
tiempo de acceso y tiempo
de transferencia)
Trfico de disco eficiente
Fragmentacin externa
(partes no usadas de
memoria principal)
Fragmentacin interna
(porcin inutilizada de
pgina)
Uso ineficiente de memoria
Difcil (debe encontrar una
parte no utilizada de
memoria principal de
tamao variable y
contigua)
Trivial (todos los bloques
tienen el mismo tamao)
Reemplazo de un bloque
Puede ser visible a la
aplicacin del programador
Invisible a la aplicacin del
programador
Visible al programador?
Dos (segmento y
desplazamiento)
Una Palabras por direccin
Segmento Pgina
Curso 2008/2009 ECm2 - Memoria Virtual 60
GRUPO DE ARQUITECTURA
DE COMPUTADORES Parmetros comparativos de los
niveles de la jerarqua de memoria
Postescritura Postescritura Escritura directa o
postescritura
Postescritura Q4: estrategia de
escritura
# LRU Pseudo-LRU Pseudo-LRU Pseudo-LRU Q3: reemplazo de
bloques
Tabla Etiqueta/bloque Etiqueta/bloque Etiqueta/bloque Q2: identificacin de
bloques
Totalmente
asociativa
Correspondencia
directa o asociativa
por conjuntos
Correspondencia
directa o asociativa
por conjuntos
Asociativa
completamente o por
conjuntos
Q1: ubicacin de
bloques
Discos Memoria Principal
(DRAM)
Cache de 2 nivel Cache de 1er nivel Nivel inferior
16-8192 MB 256KB-16MB 1-128 KB 32-8192 bytes (8-
1024 PTEs)
Tamao
0.00001-0.001% 15-30% 0.5-20% 0.1-2% Tasa de fallos (local)
700,000-6,000,000 30-200 ciclos de reloj 8-66 ciclos de reloj 10-30 ciclos de reloj Penalizacin de fallo
10-100 ciclos de reloj 6-15 ciclos de reloj 1-2 ciclos de reloj 1 ciclo de reloj Tiempo de acierto
512-16,384 bytes 32-256 bytes 4-32 bytes 4-8 bytes (1 PTE) Tamao de bloque
Memoria virtual Cache 2 nivel Cache 1er nivel TLB
Curso 2008/2009 ECm2 - Memoria Virtual 61
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Ejemplo: Intel 80386 y 80486 (I)
! Incluyen hardware para la gestin de memoria tanto
PAGINADA como SEGMENTADA.
! MMU interna.
! Espacio fsico: 4 Gbytes (32 bits)
! Espacio virtual: 64 Tbytes (46 bits)
! Segmentos desde 1 byte a 4 Gbytes.
! Pginas de 4 Kbytes.
! El programador puede activar cualquiera de estas
posibilidades:
" Direccionamiento directo (no usa Memoria Virtual).
" Paginacin pura. (2 niveles)
" Segmentacin pura.
" Segmenteacin con paginacin.
Curso 2008/2009 ECm2 - Memoria Virtual 62
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Ejemplo: Intel 80386 y 80486 (II)
! Traduccin de direcciones:
Registro Base de
Tabla de Segmentos
Unidad de
Direccin Efectiva
Registro de segmento
Direccin
Lgica L
Direccin
Efectiva
Direccin de
Segmento L
S
14
32
Tabla de segmentos
L
S
+
32
32
32
Direccin
Lineal N
10 10
Directorio de
Pginas N
d
Tabla de
Pginas N
p
Registro Base del
Directorio de Pginas
N
d
Directorio de pginas
Tabla de pginas
N
p
# marco "
12
20
Direccin Fsica P
Curso 2008/2009 ECm2 - Memoria Virtual 63
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Ejemplo: Intel 80386 y 80486 (III)
! Traduccin de direcciones:
" Sin la unidad de segmentacin: L=N
" Sin la unidad de paginacin (en dos niveles): N=P
" Ambas unidades poseen una pequea memoria
cache.
" Un proceso activo tiene asociados varios
segmentos:
! Cdigo ejecutable
! Stack
! Conjuntos de datos
" Existen 6 registros base de estos segmentos L
s
en
la figura.
Curso 2008/2009 ECm2 - Memoria Virtual 64
GRUPO DE ARQUITECTURA
DE COMPUTADORES
Formato de la tabla de pginas
P
r
e
s
e
n
t
e
Protecci
n de
pgina
0
A
c
c
e
di
d
o
M
o
d
i
f
i
c
a
d
o
0
Disponible
para el
Sistema
Operativo
Direccin de pgina fsica
! Bit 0: Bit de presencia en memoria fsica.
! Bits 1-2: Bits de proteccin de lectura, escritura o supervisor.
! Bit 5: Bit de accedido o de referencia.
! Bit 6: Bit de modificacin.
! Bits 9-11: Privados del sistema operativo.
! Bits 3,4,7,8: Reservados para posibles expansiones.
! Bits 3-4: Control de memoria cache. (slo en 80486)
! Bits 12-31: Direccin base de la pgina fsica.
31 12 11 10 9 8 7 6 5 4 3 2 1 0

También podría gustarte