Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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: 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
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
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
Proteccin:
MEMORIA
MONITOR Direccin lmite
CPU
Direccin>Lmite No
Error de direccionamiento
Gestin de memoria 11
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
Registros lmite
s
Programa X
CPU
<=
S No
>=
S No
Error de direccionamiento
Gestin de memoria 13
Registros base-lmite
s
CPU
<
No
Lmite
Programa X
Error de direccionamiento
Gestin de memoria 14
Sistema operativo
Nmero Base Tamao de la de la de la particin particin particin Estado de la particin ASIGNADA LIBRE ASIGNADA ASIGNADA ASIGNADA LIBRE
Gestin de memoria 15
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
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 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
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
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
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
Memoria
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
= 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
. . .
Bloque 127 Bloque128 Bloque 129
. . .
Etiqueta (B127)
. . .
Bloque 127
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
. . .
Bloque 127 Bloque128 Bloque 129
. . .
Etiqueta (B127)
. . .
= Fallo
. . .
Bloque 127
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
C0 C1
C0 C1
...
Bloque 63 Bloque 64 Bloque 65
. . .
Etiqueta (B127) Etiqueta (B126) Etiqueta (B127)
. . . C63
Bloque 126 Bloque 127
...
Bloque 127
C63
Bloque 131.071
Gestin de memoria 41
Polticas de ubicacin
Correspondencia asociativa por conjuntos (II):
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
(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