You are on page 1of 44

Gestin de memoria

Rina Arauz

Definicin

La memoria es una amplia tabla de datos, cada uno de los cuales con su propia direccin Tanto el tamao de la tabla (memoria), como el de los datos incluidos en ella dependen de cada arquitectura concreta Para que los programas puedan ser ejecutados es necesario que estn cargados en memoria principal La informacin que es necesario almacenar de modo permanente se guarda en dispositivos de almacenamiento secundarios tambin conocidos como memoria secundaria

Gestin de memoria 2

Localidad

Los procesos tienden a concentrar sus referencias en un intervalo de tiempo en un subconjunto de su espacio de direcciones Segn Donald Knuth [1971]:

Los programas, normalmente, tienen un perfil muy desigual, con unos pocos picos agudos... Tambin encontramos que menos del 4 por 100 de un programa, generalmente, representa ms de la mitad de su tiempo de ejecucin

Es una propiedad emprica ms que terica La localidad puede ser de dos tipos: Localidad espacial Localidad temporal

Gestin de memoria 3

Localidad espacial y temporal

Localidad espacial: una vez hecha una referencia a una posicin de memoria, es muy probable que las localidades cercanas sean tambin referenciadas. En apoyo a esta observacin encontramos:

Ejecucin secuencial del cdigo Tendencia de los programadores a colocar prximas entre s las variables relacionadas Acceso a estructuras de datos de tipo matriz o pila

Localidad temporal: una vez hecha una referencia a una posicin de memoria en un determinado instante t, es muy probable que esa misma posicin sea accedida en un instante t + t Justificada por:

Formacin de ciclos Subrutinas Pilas

Gestin de memoria 4

Jerarqua de memoria

La jerarquizacin de la memoria es un intento de aumentar el rendimiento de los computadores Para ello se aprovechan los avances tecnolgicos en el diseo de memorias y la localidad de los programas Memorias rpidas: tienen un coste elevado y una capacidad pequea Memorias lentas: son baratas y tienen una capacidad alta
Registros internos del procesador Mayor rapidez menor tamao y mayor precio Menor rapidez mayor tamao y menor precio

Cach on-chip L1 Cach externa L2 Memoria principal Discos magnticos CD-ROM - Cintas

Gestin de memoria 5

Fragmentacin

Fragmentacin = memoria desaprovechada Puede ser de dos tipos, interna y externa Fragmentacin interna Se debe a la diferencia de tamao entre la particin de memoria y el objeto residente dentro de ella Se produce siempre que se trabaje con bloques de memoria de tamao fijo Si el tamao del objeto no coincide con el de la particin, queda una zona que no se puede aprovechar Fragmentacin externa Se debe al desaprovechamiento de memoria entre particiones

Gestin de memoria 6

Direcciones Simblicas/Fsicas
Otros Bibliotecas dinmicas

Compilador o Ensamblador
Programa fuente Programa objeto

objetos Enlazador

Programa
ejecutable Cargador

Bibliotecas

Memoria
Gestin de memoria 7

Reubicacin

La reubicacin hace referencia al hecho de poder localizar a los programas para su ejecucin en diferentes zonas de memoria Reubicacin esttica Se realiza antes o durante la carga del programa en memoria Los programas no pueden ser movidos una vez iniciados Reubicacin dinmica Los programas pueden moverse en tiempo de ejecucin El paso de direccin virtual a direccin real, se realiza en tiempo de ejecucin Necesita hardware adicional (MMU)

Gestin de memoria 8

Esquemas de gestin de memoria Mquina desnuda Monitor monoltico o residente Asignacin de memoria particionada contigua Asignacin de memoria particionada no contigua Memoria virtual

Gestin de memoria 9

Mquina desnuda

Es la manera ms sencilla de gestionar la memoria: no existe ningn gestor El usuario controla toda la memoria El sistema no porporciona ningn servicio

Memoria

Usuario

Gestin de memoria 10

Monitor monoltico o residente

Proteccin:

MEMORIA
MONITOR Direccin lmite

CPU

Direccin>Lmite No Error de direccionamiento

Gestin de memoria 11

Memoria particionada contigua

Se asigna una particin de memoria a cada proceso


MVT
Sistema multiprogramado con tamao y nmero de particiones variable Fragmentacin externa
Ventaja en la asignacin dinmica de memoria Requiere algoritmos de gestin de memoria ms complejos

MFT
Sistema multiprogramado con tamao y nmero de particiones fijo Fragmentacin interna y externa
Desventaja en la asignacin dinmica de memoria Problema: intercambio de trabajos con E/S pendiente

Proteccin: registros lmite o base-lmite Fragmentacin externa: compactacin


Gestin de memoria 12

Registros lmite

No soporta reubicacin dinmica


MEMORIA
Lmite inferior Lmite inferior

Programa X

CPU

<=
S No

>=
S No

Error de direccionamiento
Gestin de memoria 13

Registros base-lmite

Soporta reubicacin dinmica


MEMORIA
Lmite Base

Lmite

CPU

<
No
Error de direccionamiento

Programa X

Gestin de memoria 14

Tabla de descripcin de particiones


0K
100K

Sistema operativo
Nmero Base Tamao de la de la de la particin particin particin Estado de la particin ASIGNADA LIBRE

0
400K 500K Pj

0K 100K

100K 300K

Pi

1 2 3 4

400K
500K 700K

100K
250K 150K

ASIGNADA
ASIGNADA ASIGNADA

750K
Pk 900K 1000K

900K

100K

LIBRE

Gestin de memoria 15

Memoria particionada no contigua

Esquemas: Segmentacin Paginacin Segmentacin paginada Paginacin segmentada

Gestin de memoria 16

Segmentacin

Es un esquema de gestin de memoria con varias ventajas: Permite que los bloques de un proceso (cdigo, datos, pila, DLLs, etc.) puedan estar situados en reas de memoria no contiguas Suministra reubicacin dinmica Aporta proteccin y uso compartido Las direcciones en estos sistemas tienen dos componentes: nmero de segmento y offset En el 80x86 mov eax, ds:esi Para localizar el dato se utiliza el selector DS y el desplazamiento SI Los segmentos pueden tener tamaos diferentes

Gestin de memoria 17

Segmentacin (esquema lgico)


Espacio de direccionamiento virtual Cdigo Dtos Espacio de direccionamiento real Memoria fsica Dtos

MMU
Datos compartidos Datos compartidos Cdigo

Pila

Pila

Gestin de memoria 18

Segmentacin (HW)
D Procesador Memoria

Error !!!

<

Tabla de segmentos RPBTS Base 1 Base 2 Base 3 Base 4 Base 5 Base 6 Base 7 Base 8 Lmite 1 Lmite 2 Lmite 3 Lmite 4 Lmite 5 Lmite 6 Lmite 7 Lmite 8 Base 5

S
RLTS

Gestin de memoria 19

Cuestiones

Qu ocurre si la tabla de segmentos es muy grande? Solucin: se guarda en memoria apuntada por un registro base (RPBTS) Problema: se necesitan dos referencias por cada acceso, uno a la tabla de segmentos y el otro a la posicin referenciada Solucin: utilizar registros internos dentro de la CPU (Intel) En estos registros se almacenan las ltimas entradas utilizadas de la tabla de segmentos Mientras el segmento no se cambie, la entrada se mantiene en estos registros

Gestin de memoria 20

Proteccin y uso compartido

Proteccin basada en los registros base y lmite Se pueden establecer distintos derechos de acceso (rwx) a cada segmento del proceso Estos derechos suelen guardarse en la tabla de segmentos de cada proceso El uso compartido es uno de los argumentos ms importantes en favor de la segmentacin Cmo pueden dos o ms procesos compartir un segmento? Basta con que dos entradas en las dos tablas de segmentos (que no tienen por qu coincidir en nmero) apunten a la misma direccin base
Gestin de memoria 21

Ventajas e inconvenientes

Ventajas: Elimina de fragmentacin interna Permite el crecimiento dinmico de los segmentos Aporta proteccin y uso compartido Permite un enlace y carga dinmicos Inconvenientes: Necesita compactacin de memoria En sistemas antiguos se fijaba un tamao mximo fijo para cada segmento Necesita hardware adicional Los bloques de memoria no son mltiplos enteros de los bloques que se traen desde el disco
Gestin de memoria 22

Paginacin

Es un esquema de gestin de memoria en el que la asignacin de memoria no es contigua El espacio de direcciones virtuales de un proceso est dividido en bloques de tamao fijo llamados pginas La memoria fsica se divide en marcos de pgina La direccin virtual consta de un nmero de pgina virtual y un desplazamiento La traduccin de direcciones se lleva a cabo con la ayuda de la tabla de pginas (TDP) La TDP se construye en tiempo de carga del proceso en memoria
Gestin de memoria 23

Paginacin (esquema lgico)


Espacio de direccionamiento virtual Espacio de direccionamiento real Memoria fsica

Cdigo

Pginas

A B C D E F G

MMU

Marcos

A C

Gestin de memoria 24

Paginacin (HW)
D Memoria

Procesador

Tabla de pginas RPBTP Marco 1 Marco 2 Marco 3 Marco 4 Marco 5 Marco 6 Marco 7 Marco 8 Marco 5

P
RLTP

Gestin de memoria 25

Consideraciones

Si se piden s posiciones de memoria n pginas asignadas=[s/p] p: tamao de la pgina Si el cociente anterior no es entero se produce la llamada fragmentacin de pgina Los marcos libres se suelen mantener en una lista enlazada Si la TDP es muy grande, sta se debe mantener en memoria principal Para acelerar los accesos se emplean memorias asociativas (TLB)

Gestin de memoria 26

Paginacin con TLBs (HW)


D Memoria M
Marco 5

Procesador

Tabla de pginas RPBTP Marco 1 Marco 2 Marco 3 Marco 4 Marco 5 Marco 6 Marco 7 Marco 8

TLB A X V C P T S R

3 24 89 19 5 18 5 10

P
RLTP

Gestin de memoria 27

Proteccin y uso compartido

Proteccin basada en bits de acceso de las entradas de la TDP Compartir pginas es bastante sencillo Basta con que dos o ms procesos tengan en una de sus entradas de la TDP la misma referencia a un marco La paginacin es gestionada por completo por el sistema operativo La paginacin elimina la fragmentacin externa, pero no la interna Con pgina grande aumentamos la fragmentacin interna pero disminuimos el tamao de la TDP
Gestin de memoria 28

Problemas de la paginacin

Fragmentacin interna (ya comentado) Si el nmero de pginas es grande, la zona de memoria ocupada por la TDP puede ser excesiva Ejemplo: Tamao de cada entrada de la TDP: 4 bytes Espacio de direccionamiento: 32 bits Pginas de 4 Kbytes Tamao de la TDP: 4 Mbytes Solucin Tabla de pginas paginada Se emplea un directorio de pginas
Gestin de memoria 29

Paginacin de la TDP
Direccin virtual

D Dir P D

Memoria

Directorio de pginas RPBTP Tabla 1 Tabla 2 Tabla 3 Tabla 4 Tabla 5 Tabla 6 Tabla 7 Tabla 8

Tabla de pginas Marco 1 Marco 2 Marco 3 Marco 4 Marco 5 Marco 6 Marco 7 Marco 8

Dir
RLTP

Gestin de memoria 30

Segmentacin paginada

Es posible combinar los esquemas de paginacin y segmentacin De este modo podemos obtener las ventajas de ambos a costa de complicar el HW Combinaciones: Segmentacin paginada Paginacin segmentada (no se emplea en la prctica) En la segmentacin paginada, cada segmento se divide en pginas En la paginacin segmentada, cada pgina se divide en segmentos
Gestin de memoria 31

Segmentacin paginada (HW)


Direccin virtual

Memoria S P D

Tabla de segmentos RPBTS

+
S

Tabla de pginas

RLTS

Base de la tabla de pginas

Gestin de memoria 32

Memoria cach

Intenta reducir el desajuste entre las velocidades del procesador y de las memorias Su empleo se justifica por la localidad de los programas Es una solucin de compromiso entre mejora de rendimiento y precio La idea de emplear memorias cach consiste en mantener en ellas los datos o instrucciones que el procesador necesita en cada momento Si los datos o instrucciones se encuentran en la cach el acceso en muy rpido, si no es as, los datos se traen desde memoria principal en bloques
Gestin de memoria 33

Diseo de la cach

A los bloques de transferencia entre memoria principal y memoria cach se les denomina lneas o vas de cach Decisiones de diseo: Qu tamao deben tener las lneas de cach? Cmo se sabe si un bloque est en la cach? Cmo se establece la correspondencia entre lneas de cach y bloques de MP? Qu hacer cuando una lnea de cach es modificada? Qu estrategia se debe emplear cuando es necesario reemplazar una lnea de cach?
Gestin de memoria 34

Memoria cache
Parmetros de un sistema con memoria cache: Poltica de ubicacin Las polticas de ubicacin establecen la correspondencia entre los bloques de la MP y de la MCa Poltica de extraccin Determinan cundo y qu informacin se enva de MP a MCa Poltica de reemplazo Determinan cundo y qu bloque se sustituye de las MCa con poltica de ubicacin asociativa Poltica de actualizacin Determinan el instante en que se actualiza la informacin en MP cuando se produce una escritura en MCa Problema de coherencia de la MCa
Gestin de memoria 35

Polticas de ubicacin
Las

polticas de ubicacin establecen la correspondencia entre los bloques de la MP y de la MCa Las polticas de ubicacin ms importantes son: Directa Asociativa Asociativa por conjuntos Ejemplo de aplicacin: Establecer la correspondencia entre MP y MCa en un sistema con:
Direccin fsica: 20 bits Tamao de bloque: 8 bytes = 23 bytes/bloque 210 27 128 Capacidad MCa: 1Kbytes= 210 bytes N bloques MCa = 23

Capacidad MP: 1 Mbyte =

220

bytes N bloques de MP = 23

220

217 131 .072

Gestin de memoria 36

Polticas de ubicacin
Correspondencia directa (I):
Direccin de MP Etiqueta Bloque de MCa
10 bits 7 bits

Palabra
3 bits

Memoria principal
Bloque 0

Memoria cach
Etiqueta (B0) Etiqueta (B1) Etiqueta (B2) Bloque 0 Bloque 1 Bloque 2

Bloque 1

. . .
Bloque 127 Bloque128 Bloque 129

. . .
Etiqueta (B127)

. . .
Bloque 127

. . . Palabra enviada al procesador


Bloque 131.071

Comparador

Acierto Fallo

Gestin de memoria 37

Polticas de ubicacin
Correspondencia directa (II):
Consiste

en hacer corresponder a todo bloque i de MP el bloque i mod k de Ventajas: MCa, donde k es el nmero total de La lectura permite el acceso simultneo: bloques de la MCa al directorio y Una direccin en MCa consta de: a la palabra dentro del Etiqueta bloque de MCa N de bloque de MCa Algoritmo de reemplazo trivial Posicin en el bloque (palabra) Inconveniente: Solucin: Incremento de la tasa de fallos 23 bytes/bloque 3 bits para la posicin de la MCa, si dos bloques de dentro del bloque MP, que corresponden a un mismo bloque de MCa, se 27 bloques de MCa 7 bits para cada utilizan de forma alternativa bloque 217 bloques MP 210 10 bits para 7 2 bloques MCa cada etiqueta Gestin de memoria 38

Memoria cache

Polticas de ubicacin
Correspondencia asociativa (I):
Direccin de MP Etiqueta
17 bits

Palabra
3 bits

Memoria principal
Bloque 0

Memoria cach
Etiqueta (B0) Etiqueta (B1) Etiqueta (B2) = = = Acierto Bloque 0 Bloque 1 Bloque 2

Bloque 1

. . .
Bloque 127 Bloque128 Bloque 129

. . .
Etiqueta (B127)

. . .
=

. . .
Bloque 127

. . . Palabra enviada al procesador


Bloque 131.071

Fallo

Gestin de memoria 39

Memoria cache

Polticas de ubicacin
Correspondencia asociativa (II):
Cualquier bloque de MP puede ubicarse en cualquiera de los bloques de la cache Una direccin en MCa consta de:

Etiqueta Posicin en el bloque (palabra)

Ventaja: Flexibilidad (permite la implantacin de gran variedad de algoritmos de reemplazo) Inconveniente: Coste de las comparaciones

Solucin: 23 bytes/bloque 3 bits para la posicin dentro del bloque 217 bloques de MP 17 bits para cada etiqueta

Gestin de memoria 40

Memoria cache

Polticas de ubicacin
Correspondencia asociativa por conjuntos (I):
Direccin de MP Etiqueta Conjunto de MCa Palabra
11 bits 6 bits 3 bits

Memoria principal
Bloque 0

Memoria cach
Etiqueta (B0) Etiqueta (B1) Etiqueta (B2) Etiqueta (B3)

Bloque 1

C0 C1

Bloque 0 Bloque 1 Bloque 2

... C0 C1
Bloque 63 Bloque 64 Bloque 65

Bloque 3

. . .
Etiqueta (B127) Etiqueta (B126)
Etiqueta (B127)

. . .
Bloque 126 Bloque 127

...
Bloque 127

C63

C63

Bloque128 Bloque 129

...

Comparador 0
Comparador 1

Fallo
Acierto

Palabra enviada al procesador

Bloque 131.071

Gestin de memoria 41

Polticas de ubicacin
Correspondencia asociativa por conjuntos (II):

Consiste en dividir la MCa en C conjuntos de B bloques cada uno Se aplica:


Correspondencia directa a nivel de conjunto Correspondencia asociativa a nivel de bloque

Un bloque i de MP puede ubicarse en cualquier bloque del conjunto i mod C de MCa Una direccin en MCa consta de:

Etiqueta, Conjunto y Posicin en el bloque

Solucin (asignando 2 bloqs./cjto.): 23 bytes/bloque 3 bits para la posicin dentro del bloque 26 conjuntos en MCa 6 bits para cada conjunto 11 bits para cada etiqueta El coste de la bsqueda depende del nmero y longitud de las etiquetas que se tienen que comparar simultneamente Ventaja: Reduce el coste de la totalmente asociativa proporcionando un rendimiento cercano a esta ltima

Gestin de memoria 42

Memoria cach

Coherencia: qu ocurre si un dato de la cach se modifica? En tal caso se produce una inconsistencia entre los contenidos memoria cach y memoria principal Problema grave en sistemas multiprocesador Estrategias de actualizacin: Write back Write through Tambin cabe considerar las estrategias de sustitucin de lneas de cach cuando existen varias vas por conjunto Normalmente se emplean cachs separadas para instrucciones y para datos

Gestin de memoria 43

Ejercicio

Sea una computadora que dispone de una memoria principal entrelazada y memorias cach separadas con las siguientes caractersticas: El tamao de un bloque de memoria es de 32 bytes Memoria principal: Capacidad: 256 Mbytes Memoria cach: Asociativa por conjuntos, estructurada segn: Memoria cach de instrucciones: 8 Kbytes con 4 bloques por conjunto. Memoria cach de datos: 8 Kbytes con 2 bloques por conjunto.

Gestin de memoria 44

You might also like