Anda di halaman 1dari 64

MEMORIA VIRTUAL

Curso 2008/2009

ECm2 - Memoria Virtual

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

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

GRUPO DE ARQUITECTURA DE COMPUTADORES

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 4

Estructura de la gestin de la memoria virtual


Traduccin hw-sw:
Desde el procesador Direccin Virtual Mapeador de Direcciones Direccin Fsica Jerarqua de Memoria
Curso 2008/2009 ECm2 - Memoria Virtual

GRUPO DE ARQUITECTURA DE COMPUTADORES

Fallo de pgina (si la pgina no est presente)

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

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

GRUPO DE ARQUITECTURA DE COMPUTADORES

Ventajas:
Se ahorra espacio del circuito integrado del procesador para otros recursos (cach, etc.)
Curso 2008/2009 ECm2 - Memoria Virtual 7

Definiciones (I)
Espacio virtual espacio nominal espacio de direcciones:

GRUPO DE ARQUITECTURA DE COMPUTADORES

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

Definiciones (II)
Traductor de direcciones:
V: espacio virtual M: espacio fsico
0 1 2 3

GRUPO DE ARQUITECTURA DE COMPUTADORES

0 1

f :V # M " { } ! x " V ! f ( x) = y, si x est en M


f
en la posicin y (x) = ! , en otro caso

|M|-1 Espacio Fsico |V|-1 Espacio Virtual

Curso 2008/2009

ECm2 - Memoria Virtual

Definiciones (III)
Excepcin o fallo de direccionamiento:

GRUPO DE ARQUITECTURA DE COMPUTADORES

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

10

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

GRUPO DE ARQUITECTURA DE COMPUTADORES

11

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.
ECm2 - Memoria Virtual

GRUPO DE ARQUITECTURA DE COMPUTADORES

Curso 2008/2009

12

Clasificacin de los sistemas de memoria virtual (III)


Tipos de sistemas de memoria virtual segn el tamao de los bloques:
Sistemas paginados:

GRUPO DE ARQUITECTURA DE COMPUTADORES

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 13

GRUPO DE ARQUITECTURA DE COMPUTADORES

Sistemas paginados
Esquema de memoria virtual ms difundido.

Curso 2008/2009

ECm2 - Memoria Virtual

14

Representacin
Programa P:
P = {p1,p2, , pN}, pi pgina virtual.

GRUPO DE ARQUITECTURA DE COMPUTADORES

Normalmente, tamao(pi) = p = 2k. Direccin virtual includa en pi:


aij = pidj,
m bits m-k k bits

pi !P, 0djp

Vector de referencias (referencias a pginas generadas al ejecutarse P):


R = r(1)r(2)r(n),
Curso 2008/2009

r(i) = pj, 1in, 1jN


15

ECm2 - Memoria Virtual

Traduccin de direcciones (I)

GRUPO DE ARQUITECTURA DE COMPUTADORES

Proyeccin del subespacio virtual asociado a P sobre su espacio fsico reservado en la memoria principal (PMA):
DIRECCIN VIRTUAL Nmero de Pgina Desplazamiento Desplazamiento Relativo Dentro de la Pgina

MAPEADOR DE PGINAS
Direccin Base de la Pgina

Pgina (en Memoria)


Curso 2008/2009 ECm2 - Memoria Virtual 16

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

GRUPO DE ARQUITECTURA DE COMPUTADORES

Curso 2008/2009

ECm2 - Memoria Virtual

17

Esquemas bsicos de implementacin de la traduccin (I)


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 #de Pg. Desplaz. Bit de validez Bit de modificacin 0 (siempre postescritura) 1 Reemplazo i (ej. Bits de referencia) Proteccin
|V|/p-1

GRUPO DE ARQUITECTURA DE COMPUTADORES

#de Marco

Desplaz.

Tabla de Pginas
Curso 2008/2009 ECm2 - Memoria Virtual 18

Esquemas bsicos de implementacin de la traduccin (II)


Traduccin directa (cont.):
Almacenamiento de la tabla de pginas:
En registros rpidos:
Traduccin rpida y costosa.
15 Direccin Lgica ndice de registro 4 bits Desplazamiento 12 bits 16 Registros de direccin base de pgina 0

GRUPO DE ARQUITECTURA DE COMPUTADORES

# de marco

Bits de proteccin

Memoria Fsica

En la memoria principal:
Traduccin ms lenta pero menos costosa que la anterior.

Pgina de 4KB 15

23

Direccin Fsica # de marco Desplazamiento

Curso 2008/2009

ECm2 - Memoria Virtual

19

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).
#de Pg. Desplaz.

GRUPO DE ARQUITECTURA DE COMPUTADORES

i k

j l

#de Marco

Desplaz.

Tabla de Pginas Asociativa (|M|/p entradas)


Curso 2008/2009 ECm2 - Memoria Virtual 20

#de Pg. #de Marco

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

GRUPO DE ARQUITECTURA DE COMPUTADORES

21

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.
+
Registros Descriptores de Tablas TP nivel 1 31

GRUPO DE ARQUITECTURA DE COMPUTADORES

+
TP nivel 2

+
TP nivel 3 9 0 31 # Marco 10 9 0

Direccin Lgica

24 23 16 15 I-TP1 I-TP2 I-TP2

Buffer de Traduccin Anticipada

Etiquetas de Direccin Lgica de Pgina

Inconvenientes:

Direcciones Fsicas de Marcos

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.
ECm2 - Memoria Virtual 22

Curso 2008/2009

Esquemas bsicos de implementacin de la traduccin (V)


Traduccin directa y asociativa combinada:

GRUPO DE ARQUITECTURA DE COMPUTADORES

Pretende combinar la ventaja del bajo coste hardware de la traduccin directa con la ventaja de la alta velocidad de la traduccin asociativa.
#de Pg. Desplaz. 1 PTP

Puntero a la Tabla de Pginas

+
Acierto No acierto

+
#de Pg. #de Marco Nmax

Tabla de Traduccin Asociativa (parcial)


Curso 2008/2009

#de Marco

Desplaz.

Tabla de Traduccin Directa


23

ECm2 - Memoria Virtual

Esquemas bsicos de implementacin de la traduccin (VI)


Traduccin directa y asociativa combinada (cont.):
La memoria asociativa o TLB (translationlookaside 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

GRUPO DE ARQUITECTURA DE COMPUTADORES

24

Esquemas bsicos de implementacin de la traduccin (VII)

GRUPO DE ARQUITECTURA DE COMPUTADORES

Curso 2008/2009

ECm2 - Memoria Virtual

25

Buffer de traduccin rpida y funcionamiento de la cach

GRUPO DE ARQUITECTURA DE COMPUTADORES

Curso 2008/2009

ECm2 - Memoria Virtual

26

Ejemplos de aplicacin de las tcnicas de traduccin


1 3 10 Pgina Memoria Virtual Memoria Virtual Posicin en Memoria Virtual Posicin en Memoria Fsica Traduccin directa Tabla de pginas 0 1 2 3 3 10 1 1 10 0

GRUPO DE ARQUITECTURA DE COMPUTADORES

Traduccin asociativa Memoria asociativa PV PF 0 4 9 2 3 1

Una entrada/Pg residente en memoria Una entrada/Pg virtual


ECm2 - Memoria Virtual 27

Curso 2008/2009

Ejemplos de aplicacin de las tcnicas de traduccin


Posicin en 1 tabla 2 tabla Desplaz. Memoria Virtual 2 4 9

GRUPO DE ARQUITECTURA DE COMPUTADORES

Pgina fsica 1 tabla RBTP 0 1 2 2 tablas 0 1 2 3 4

Posicin en 7 Memoria Fsica

Curso 2008/2009

ECm2 - Memoria Virtual

28

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). Fragmentacin interna:

GRUPO DE ARQUITECTURA DE COMPUTADORES

Influencia del tamao de pgina:

Fragmentacin de la tabla:

Espacio de memoria fsica desperdiciado al final de la ltima pgina fsica. Grave si el tamao de pgina es grande. 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.
ECm2 - Memoria Virtual

Curso 2008/2009

29

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).

GRUPO DE ARQUITECTURA DE COMPUTADORES

Curso 2008/2009

ECm2 - Memoria Virtual

30

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.

GRUPO DE ARQUITECTURA DE COMPUTADORES

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

31

Algoritmo de carga (II)


Ejemplo de un algoritmo de prediccin satisfactorio:
1) 2) 3)

GRUPO DE ARQUITECTURA DE COMPUTADORES

A pi se le asocia PRED[i] (inicialmente, PRED[i]=pi+1). LAST=k si pk produjo el ltimo fallo de pgina (inicialmente 0). Si pi produce un fallo de pgina, entonces: Se carga pi 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]=pi. 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

32

Algoritmo de reemplazo

GRUPO DE ARQUITECTURA DE COMPUTADORES

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

33

GRUPO DE ARQUITECTURA DE COMPUTADORES

Sistemas segmentados

Curso 2008/2009

ECm2 - Memoria Virtual

34

Inconveniente fundamental de los sistemas paginados


Las pginas son de tamao fijo y arbitrario: no tienen relacin con la estructura lgica del programa.

GRUPO DE ARQUITECTURA DE COMPUTADORES

Puede haber datos en una pgina no relacionados con los dems. Ineficiencia por el principio de localidad.
Curso 2008/2009 ECm2 - Memoria Virtual 35

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.

GRUPO DE ARQUITECTURA DE COMPUTADORES

La mayora de la caractersticas (conceptos) de los sistemas segmentados son similares a las de los sistemas paginados.
Curso 2008/2009 ECm2 - Memoria Virtual 36

Traduccin de direcciones (I)


Direcciones virtuales:
(si,dj) si nmero de segmento; dj desplazamiento

GRUPO DE ARQUITECTURA DE COMPUTADORES

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.).


Curso 2008/2009 ECm2 - Memoria Virtual 37

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

GRUPO DE ARQUITECTURA DE COMPUTADORES

si dJ
flag longitud Bits de proteccin base

Dir. fsica

Tabla de Segmentos -PTS (Puntero a la Tabla de Segmentos): contiene la direccin fsica de comienzo de la tabla de segmentos. - Se chequea dj contra la longitud para comprobar que la direccin virtual se encuentra dentro del segmento referenciado. - Mayor facilidad de proteccin (entidad lgica).

Curso 2008/2009

ECm2 - Memoria Virtual

38

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 segmento

GRUPO DE ARQUITECTURA DE COMPUTADORES

Descriptor de acceso

Segmento de acceso

Tabla de segmentos

segmento

Curso 2008/2009

ECm2 - Memoria Virtual

39

Fallos de segmento

GRUPO DE ARQUITECTURA DE COMPUTADORES

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.
Tamao Enlace Tamao Enlace

FIRST

Curso 2008/2009

ECm2 - Memoria Virtual

Tamao Enlace

40

Espacio virtual segmentado versus paginado

GRUPO DE ARQUITECTURA DE COMPUTADORES

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

41

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.
0 1 2 3 4 Segmento de A Tabla de Segmentos de A 0 1 2 3 4 Segmento de B Tabla de Segmentos de B

Segmento Compartido

Curso 2008/2009

ECm2 - Memoria Virtual

42

Algoritmos de carga y ubicacin


Proceso de carga: similar a los sistemas paginados (precarga), (cundo?)

GRUPO DE ARQUITECTURA DE COMPUTADORES

Proceso de ubicacin: ms complejo que en los sistemas paginados. (dnde?).

Curso 2008/2009

ECm2 - Memoria Virtual

43

Algoritmos de ubicacin
Todos basados en la lista de LAVS:
First-Fit. Best-Fit. Worst-Fit. Binary-Buddy.

GRUPO DE ARQUITECTURA DE COMPUTADORES

Curso 2008/2009

ECm2 - Memoria Virtual

44

Algoritmo First-Fit (I)


GRUPO DE ARQUITECTURA DE COMPUTADORES

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 QFIRST (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 QSIGUIENTE(Q) y se va a 2.

Curso 2008/2009

ECm2 - Memoria Virtual

45

Algoritmo First-Fit (II)

2) Si TAMAO(Q)>L+C 3) Si LTAMAO(Q)L+C

GRUPO DE ARQUITECTURA DE COMPUTADORES

Para evitar la formacin de segmentos libres demasiado pequeos, se cambian:

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.
ECm2 - Memoria Virtual 46

Curso 2008/2009

Algoritmo Best-Fit

GRUPO DE ARQUITECTURA DE COMPUTADORES

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.
ECm2 - Memoria Virtual 47

Curso 2008/2009

Algoritmo Worst-Fit

GRUPO DE ARQUITECTURA DE COMPUTADORES

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.
ECm2 - Memoria Virtual 48

Curso 2008/2009

Algoritmo Binary-Buddy (I)


Tamao de segmento y LAVS potencia entera de 2. Hace uso de la lista LAVS. Procedimiento de ubicacin:

GRUPO DE ARQUITECTURA DE COMPUTADORES

Se divide la lista LAVS en n listas (2n es el tamao mximo de los segmentos). La i-sima lista encadena los segmentos libres de tamao 2i (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

49

Algoritmo Binary-Buddy (II)


Ejemplo de algoritmo de ubicacin:
Peticin de memoria Bsqueda de un buffer del tamao requerido

GRUPO DE ARQUITECTURA DE COMPUTADORES

Existe?

S Asignar buffer a la peticin Fin

Buscar un buffer de tamao inmediatamente mayor

Buscar dos buffers consecutivos del nivel inferior Poner la peticin en cola de espera S

Lo hay?

S Dividir el buffer grande en dos mitades

Existen?

Unirlos Asignar una mitad a la peticin Poner la otra en la lista de bloques disponibles correspondiente Fin

Asignar el resultado a la peticin Fin Fin

Curso 2008/2009

ECm2 - Memoria Virtual

50

Algoritmo Binary-Buddy (III)


Ejemplo:

GRUPO DE ARQUITECTURA DE COMPUTADORES

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.

Lista finales:

Curso 2008/2009

Se divide la lista-9 en dos buddies: Lista-8=(1920,256)(2176,256); B comienza en la direccin 1920.

Lista-6=(64,4) Lista-8=(2176,256) Lista-10=(384,1024)


ECm2 - Memoria Virtual 51

Comparacin de los algoritmos de ubicacin


Algoritmo Best-Fit:

GRUPO DE ARQUITECTURA DE COMPUTADORES

Algoritmo Worst-Fit:

Minimiza el tamao del segmento libre sobrante tras la ubicacin. Basado en la idea de que, tras la ubicacin, el segmento libre sobrante es suficientemente grande como para ser til. First-Fit y Binary Buddy

Algoritmos ms eficientes:

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.


ECm2 - Memoria Virtual

Curso 2008/2009

52

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.

GRUPO DE ARQUITECTURA DE COMPUTADORES

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).
ECm2 - Memoria Virtual

Curso 2008/2009

53

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. Depende de cada situacin particular.

GRUPO DE ARQUITECTURA DE COMPUTADORES

La eleccin entre compactacin y reemplazo no es simple: 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

54

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

55

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: (si, pj, dk) espacio 3dimensional.


si es el nmero de segmento virtual. pj es el nmero de pgina virtual. dk es el desplazamiento dentro de la pgina.
Curso 2008/2009 ECm2 - Memoria Virtual 56

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.
si pJ dk Direccin virtual

(Puntero a la Tabla de Segmentos) PTS +

+
Limite Punt. a TP

flag #marco Bits de proteccin #de Marco Desplaz.

Tabla de Segmentos
Curso 2008/2009

Tabla de Pginas para el segmento si


57

ECm2 - Memoria Virtual

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 58

Paginacin vs Segmentacin
Pgina Palabras por direccin Visible al programador? Reemplazo de un bloque Una Invisible a la aplicacin del programador Trivial (todos los bloques tienen el mismo tamao) Segmento Dos (segmento y desplazamiento)

GRUPO DE ARQUITECTURA DE COMPUTADORES

Puede ser visible a la aplicacin del programador Difcil (debe encontrar una parte no utilizada de memoria principal de tamao variable y contigua) Fragmentacin externa (partes no usadas de memoria principal) No siempre (pequeos segmentos pueden transferir slo unos pocos bytes)
59

Uso ineficiente de memoria

Fragmentacin interna (porcin inutilizada de pgina) S (ajusta tamao de pgina para equilibrar tiempo de acceso y tiempo de transferencia)
ECm2 - Memoria Virtual

Trfico de disco eficiente

Curso 2008/2009

Parmetros comparativos de los niveles de la jerarqua de memoria


TLB Tamao de bloque Tiempo de acierto Penalizacin de fallo Tasa de fallos (local) Tamao Nivel inferior Q1: ubicacin de bloques 4-8 bytes (1 PTE) 1 ciclo de reloj 10-30 ciclos de reloj 0.1-2% 32-8192 bytes (81024 PTEs) Cache de 1er nivel Cache 1er nivel 4-32 bytes 1-2 ciclos de reloj Cache 2 nivel 32-256 bytes

GRUPO DE ARQUITECTURA DE COMPUTADORES

Memoria virtual 512-16,384 bytes

6-15 ciclos de reloj 10-100 ciclos de reloj 700,000-6,000,000 0.00001-0.001% 16-8192 MB Discos Totalmente asociativa Tabla LRU Postescritura

8-66 ciclos de reloj 30-200 ciclos de reloj 0.5-20% 1-128 KB Cache de 2 nivel Correspondencia directa o asociativa por conjuntos Etiqueta/bloque Pseudo-LRU Escritura directa o postescritura 15-30% 256KB-16MB Memoria Principal (DRAM) Correspondencia directa o asociativa por conjuntos Etiqueta/bloque Pseudo-LRU Postescritura

Asociativa completamente o por conjuntos Q2: identificacin de Etiqueta/bloque bloques Q3: reemplazo de Pseudo-LRU bloques Q4: estrategia de Postescritura escritura Curso 2008/2009

ECm2 - Memoria Virtual

60

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 61

GRUPO DE ARQUITECTURA DE COMPUTADORES

Ejemplo: Intel 80386 y 80486 (II)


Traduccin de direcciones:
Tabla de segmentos Registro Base de Tabla de Segmentos LS Tabla de pginas Np

Unidad de Direccin Efectiva Direccin Efectiva Direccin Lgica L Direccin de Segmento LS 14 Direccin Lineal N 10 Directorio de Pginas Nd 10 Tabla de Pginas Np 32

32 Registro Base del Directorio de Pginas Nd 20 12 # marco

32

+ 32

Directorio de pginas Direccin Fsica P

Registro de segmento

Curso 2008/2009

ECm2 - Memoria Virtual

62

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 Ls en la figura.
Curso 2008/2009 ECm2 - Memoria Virtual 63

Formato de la tabla de pginas


31 12 11 10 9 8 7 65 M o A d c i c f e i di c d a o d o 4 3 2 1

GRUPO DE ARQUITECTURA DE COMPUTADORES

Direccin de pgina fsica

Disponible para el Sistema Operativo

P r e Protecci s n de e pgina n t e

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.
ECm2 - Memoria Virtual 64

Curso 2008/2009

Anda mungkin juga menyukai