Está en la página 1de 44

Gestin de memoria

Rina Arauz

Definicin
s s

s s

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
s

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

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

s s

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

Gestin de memoria 3

Localidad espacial y temporal


s

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:
q q q

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:
q q q

Formacin de ciclos Subrutinas Pilas


Gestin de memoria 4

Jerarqua de memoria
s s s s

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
s

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

Gestin de memoria 6

Direcciones Simblicas/Fsicas
Otros objetos Enlazador Programa Bibliotecas dinmicas

Compilador o Ensamblador Programa

Programa Cargador

Bibliotecas

Memoria
Gestin de memoria 7

Reubicacin
s

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

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

Gestin de memoria 9

Mquina desnuda
s

s s

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


s

Proteccin:

MEMORIA
MONITOR Direccin lmite

CPU

Direccin>Lmite No

Error de direccionamiento
Gestin de memoria 11

Memoria particionada contigua


s

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
s s

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


Gestin de memoria 12

Registros lmite
s

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
s

Soporta reubicacin dinmica MEMORIA


Lmite Base

CPU

<
No

Lmite

Programa X

Error de direccionamiento
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 ASIGNADA ASIGNADA ASIGNADA LIBRE

0 400K 500K Pj 750K Pk 900K 1000K Pi 1 2 3 4 5

0K 100K 400K 500K 700K 900K

100K 300K 100K 250K 150K 100K

Gestin de memoria 15

Memoria particionada no contigua


s

Esquemas: q Segmentacin q Paginacin q Segmentacin paginada q Paginacin segmentada

Gestin de memoria 16

Segmentacin
s

s s

s s

Es un esquema de gestin de memoria con varias ventajas: q Permite que los bloques de un proceso (cdigo, datos, pila, DLLs, etc.) puedan estar situados en reas de memoria no contiguas q Suministra reubicacin dinmica q 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 Pila Cdigo Datos compartidos

Pila
Gestin de memoria 18

Segmentacin (HW)
D Procesador S D 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
s

Qu ocurre si la tabla de segmentos es muy grande? q 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 q Solucin: utilizar registros internos dentro de la CPU (Intel) q En estos registros se almacenan las ltimas entradas utilizadas de la tabla de segmentos q Mientras el segmento no se cambie, la entrada se mantiene en estos registros

Gestin de memoria 20

Proteccin y uso compartido


s s s s s

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? q 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
s

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

Paginacin
s s

s s s s

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 Cdigo Espacio de direccionamiento real Memoria fsica

Pginas

A B C D E F G

MMU

Marcos

A C

Gestin de memoria 24

Paginacin (HW)
D Procesador P D Memoria

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
s

s s s s

Si se piden s posiciones de memoria q n pginas asignadas=[s/p] q 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 Procesador P D
Marco 5

Memoria M D

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

P
RLTP

TLB A X V C P T S R

3 24 89 19 5 18 5 10

Gestin de memoria 27

Proteccin y uso compartido


s s

s s s

Proteccin basada en bits de acceso de las entradas de la TDP Compartir pginas es bastante sencillo q 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
s s s

Fragmentacin interna (ya comentado) Si el nmero de pginas es grande, la zona de memoria ocupada por la TDP puede ser excesiva Ejemplo: q Tamao de cada entrada de la TDP: 4 bytes q Espacio de direccionamiento: 32 bits q Pginas de 4 Kbytes q Tamao de la TDP: 4 Mbytes Solucin q Tabla de pginas paginada q 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
s s s

s s

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: q Segmentacin paginada q 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

Tabla de segmentos RPBTS

Tabla de pginas

S
RLTS Base de la tabla de pginas

Gestin de memoria 32

Memoria cach
s s s s

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
s

A los bloques de transferencia entre memoria principal y memoria cach se les denomina lneas o vas de cach Decisiones de diseo: q Qu tamao deben tener las lneas de cach? q Cmo se sabe si un bloque est en la cach? q Cmo se establece la correspondencia entre lneas de cach y bloques de MP? q Qu hacer cuando una lnea de cach es modificada? q 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: s Poltica de ubicacin s Las polticas de ubicacin establecen la correspondencia entre los bloques de la MP y de la MCa Poltica de extraccin s Determinan cundo y qu informacin se enva de MP a MCa s Poltica de reemplazo s Determinan cundo y qu bloque se sustituye de las MCa con poltica de ubicacin asociativa s Poltica de actualizacin s 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
s Las

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

210 23
2 20 23

Capacidad MP: 1 Mbyte = 220 bytes N bloques de MP =

= 27 = 128
= 217 = 131.072

Gestin de memoria 36

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

Memoria principal
Bloque 0 Bloque 1

Memoria cach Memoria cach


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

. . .
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):
s Consiste

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

Memoria cache

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

Palabra
3 bits

Memoria principal
Bloque 0 Bloque 1

Memoria cach Memoria cach


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

. . .
Bloque 127 Bloque128 Bloque 129

. . .
Etiqueta (B127)

. . .
= Fallo

. . .
Bloque 127

. . . Palabra enviada al procesador


Bloque 131.071

Gestin de memoria 39

Memoria cache

Polticas de ubicacin
Correspondencia asociativa (II):
s Cualquier

bloque de MP puede ubicarse en cualquiera de los bloques de la cache s Una direccin en MCa consta de:
Etiqueta q Posicin en el bloque (palabra)
q

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

Solucin: s 23 bytes/bloque 3 bits para la posicin dentro del bloque s 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 Bloque 1

Memoria cach Memoria cach


Etiqueta (B0) Etiqueta (B1) Etiqueta (B2) Etiqueta (B3)

C0 C1

Bloque 0 Bloque 1 Bloque 2 Bloque 3

C0 C1

...
Bloque 63 Bloque 64 Bloque 65

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

. . . C63
Bloque 126 Bloque 127

...
Bloque 127

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 s Se aplica:


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

s Solucin

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

Etiqueta, q Conjunto y q Posicin en el bloque


q

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

Memoria cach
s s

s s

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: q Write back q 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
s

s s s s s s

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

También podría gustarte