Curso 2008/2009
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
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:
Curso 2008/2009
Definiciones (II)
Traductor de direcciones:
V: espacio virtual M: espacio fsico
0 1 2 3
0 1
Curso 2008/2009
Definiciones (III)
Excepcin o fallo de direccionamiento:
Curso 2008/2009
10
11
Curso 2008/2009
12
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 paginados
Esquema de memoria virtual ms difundido.
Curso 2008/2009
14
Representacin
Programa P:
P = {p1,p2, , pN}, pi pgina virtual.
pi !P, 0djp
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
Curso 2008/2009
17
#de Marco
Desplaz.
Tabla de Pginas
Curso 2008/2009 ECm2 - Memoria Virtual 18
# 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
Curso 2008/2009
19
i k
j l
#de Marco
Desplaz.
21
+
TP nivel 2
+
TP nivel 3 9 0 31 # Marco 10 9 0
Direccin Lgica
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.
ECm2 - Memoria Virtual 22
Curso 2008/2009
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
+
Acierto No acierto
+
#de Pg. #de Marco Nmax
#de Marco
Desplaz.
24
Curso 2008/2009
25
Curso 2008/2009
26
Curso 2008/2009
Curso 2008/2009
28
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
Curso 2008/2009
30
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).
Curso 2008/2009
31
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).
Curso 2008/2009
32
Algoritmo de reemplazo
Curso 2008/2009
33
Sistemas segmentados
Curso 2008/2009
34
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.
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
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:
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
38
Descriptor de acceso
Segmento de acceso
Tabla de segmentos
segmento
Curso 2008/2009
39
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.
Tamao Enlace Tamao Enlace
FIRST
Curso 2008/2009
Tamao Enlace
40
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
41
Segmento Compartido
Curso 2008/2009
42
Curso 2008/2009
43
Algoritmos de ubicacin
Todos basados en la lista de LAVS:
First-Fit. Best-Fit. Worst-Fit. Binary-Buddy.
Curso 2008/2009
44
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
45
2) Si TAMAO(Q)>L+C 3) Si LTAMAO(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.
ECm2 - Memoria Virtual 46
Curso 2008/2009
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.
ECm2 - Memoria Virtual 47
Curso 2008/2009
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.
ECm2 - Memoria Virtual 48
Curso 2008/2009
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
49
Existe?
Buscar dos buffers consecutivos del nivel inferior Poner la peticin en cola de espera S
Lo hay?
Existen?
Unirlos Asignar una mitad a la peticin Poner la otra en la lista de bloques disponibles correspondiente Fin
Curso 2008/2009
50
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)
Lista finales:
Curso 2008/2009
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:
Prdida de espacio de memoria fsica debido a la produccin de segmentos libres sobrantes de tamao muy pequeo (intiles).
Curso 2008/2009
52
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
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
54
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
55
+
Limite Punt. a TP
Tabla de Segmentos
Curso 2008/2009
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)
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
Fragmentacin interna (porcin inutilizada de pgina) S (ajusta tamao de pgina para equilibrar tiempo de acceso y tiempo de transferencia)
ECm2 - Memoria Virtual
Curso 2008/2009
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
60
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
+ 32
Registro de segmento
Curso 2008/2009
62
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