Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gestión de memoria 1
Definición
• La memoria es una amplia tabla de datos, cada uno de los cuales
con su propia dirección
• Tanto el tamaño 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
estén cargados en memoria principal
• La información que es necesario almacenar de modo permanente
se guarda en dispositivos de almacenamiento secundarios también
conocidos como memoria secundaria
Gestión de memoria 2
Localidad
Gestión de memoria 3
Localidad espacial y temporal
• Localidad espacial: una vez hecha una referencia a una posición de memoria,
es muy probable que las localidades cercanas sean también referenciadas.
• En apoyo a esta observación encontramos:
• Ejecución secuencial del código
• Tendencia de los programadores a colocar próximas entre sí las
variables relacionadas
• Acceso a estructuras de datos de tipo matriz o pila
• Localidad temporal: una vez hecha una referencia a una posición de
memoria en un determinado instante t, es muy probable que esa misma
posición sea accedida en un instante t + t
• Justificada por:
• Formación de ciclos
• Subrutinas
• Pilas
Gestión de memoria 4
Jerarquía de memoria
• La jerarquización de la memoria es un intento de aumentar el
rendimiento de los computadores
• Para ello se aprovechan los avances tecnológicos en el diseño de
memorias y la localidad de los programas
• Memorias rápidas: tienen un coste elevado y una capacidad pequeña
• Memorias lentas: son baratas y tienen una capacidad alta
Registros internos
del procesador
Memoria principal
Discos magnéticos
CD-ROM - Cintas
Gestión de memoria 5
Fragmentación
Gestión de memoria 6
Direcciones Simbólicas/Físicas
Otros Bibliotecas
objetos dinámicas
Compilador o
Ensamblador
Enlazador
Programa Programa Programa
Cargador
Bibliotecas
Memoria
Gestión de memoria 7
Reubicación
Gestión de memoria 8
• Esquemas de gestión de memoria
• Máquina desnuda
• Monitor monolítico o residente
• Asignación de memoria particionada contigua
• Asignación de memoria particionada no contigua
• Memoria virtual
Gestión de memoria 9
Máquina desnuda
Memoria
Usuario
Gestión de memoria 10
Monitor monolítico o residente
MEMORIA
• Protección:
MONITOR
Dirección límite
Sí
CPU Dirección>Límite
No
Error de direccionamiento
Gestión de memoria 11
Memoria particionada contigua
Gestión de memoria 12
Registros límite
Programa X
No No
Error de direccionamiento
Gestión de memoria 13
Registros base-límite
Límite Base
Sí
Límite
CPU < + Programa X
No
Error de direccionamiento
Gestión de memoria 14
Tabla de descripción de particiones
0K Sistema operativo
100K Número Base Tamaño Estado
de la de la de la de la
partición partición partición partición
0K 100K ASIGNADA
0
400K 100K 300K LIBRE
Pi 1
500K 2 400K 100K ASIGNADA
Pj 3 500K 250K ASIGNADA
Gestión de memoria 15
Memoria particionada no contigua
• Esquemas:
• Segmentación
• Paginación
• Segmentación paginada
• Paginación segmentada
Gestión de memoria 16
Segmentación
Gestión de memoria 17
Segmentación (esquema lógico)
Espacio de direccionamiento real
Espacio de direccionamiento virtual
Código Memoria
física
Dátos
Dátos
MMU
Datos Datos
compartidos compartidos
Pila
Código
Pila
Gestión de memoria 18
Segmentación (HW)
D Memoria
Procesador S D
Tabla de segmentos
Gestión de memoria 19
Cuestiones
Gestión de memoria 20
Protección y uso compartido
Gestión de memoria 21
Ventajas e inconvenientes
• Ventajas:
• Elimina de fragmentación interna
• Permite el crecimiento dinámico de los segmentos
• Aporta protección y uso compartido
• Permite un enlace y carga dinámicos
• Inconvenientes:
• Necesita compactación de memoria
• En sistemas antiguos se fijaba un tamaño máximo fijo para cada
segmento
• Necesita hardware adicional
• Los bloques de memoria no son múltiplos enteros de los bloques que
se traen desde el disco
Gestión de memoria 22
Paginación
Gestión de memoria 23
Paginación (esquema lógico)
Espacio de direccionamiento virtual Espacio de direccionamiento real
Memoria
Código física
A
B
B
Páginas C
D MMU D Marcos
E
F
G A
C
Gestión de memoria 24
Paginación (HW)
D Memoria
Procesador P D
M D
Tabla de páginas
RPBTP Marco 1
Marco 2
P Marco 3
Marco 4
Marco 5
RLTP
Marco 6
Marco 7
Marco 8
Marco 5
Gestión de memoria 25
Consideraciones
Gestión de memoria 26
Paginación con TLBs (HW)
D Memoria
Procesador P D M D
Marco 5
TLB
A 3
X 24
V 89
C 19
P 5
Tabla de páginas T 18
RPBTP Marco 1 S 5
Marco 2 R 10
P Marco 3
Marco 4
Marco 5
RLTP
Marco 6
Marco 7
Marco 8
Gestión de memoria 27
Protección y uso compartido
Gestión de memoria 28
Problemas de la paginación
Gestión de memoria 29
Paginación de la TDP
Dirección virtual
D Memoria
Dir P D
M D
Gestión de memoria 30
Segmentación paginada
Gestión de memoria 31
Segmentación paginada (HW)
Dirección virtual
Memoria
S P D
M D
Tabla de segmentos
Gestión de memoria 32
Memoria caché
Gestión de memoria 33
Diseño de la caché
Gestión de memoria 34
Memoria cache
Gestión de memoria 35
Políticas de ubicación
• Las políticas de ubicación establecen la correspondencia entre los
bloques de la MP y de la MCa
• Las políticas de ubicación más importantes son:
• Directa
• Asociativa
• Asociativa por conjuntos
Ejemplo de aplicación:
• Establecer la correspondencia entre MP y MCa en un sistema con:
• Dirección física: 20 bits
• Tamaño de bloque: 8 bytes = 23 bytes/bloque
• Capacidad MCa: 1Kbytes= 210 bytes Nº bloques MCa = 210
27 128
23
• Capacidad MP: 1 Mbyte = 220 bytes Nº bloques de MP = 2 20
217 131.072
23
Gestión de memoria 36
Políticas de ubicación
Correspondencia
Dirección directa
de MP (I):
Etiqueta Bloque de MCa Palabra Memoria principal
10 bits 7 bits 3 bits
Bloque 0
Bloque 1
Memoria caché
.
Etiqueta (B0) Bloque 0 .
Etiqueta (B1) Bloque 1 .
Etiqueta (B2) Bloque 2
. . Bloque 127
. . Bloque128
. . Bloque 129
.
Etiqueta (B127) Bloque 127 .
.
Acierto
Comparador Palabra enviada
al procesador Bloque 131.071
Fallo
Gestión de memoria 37
Políticas de ubicación
Correspondencia directa (II):
• Consiste en hacer corresponder a todo bloque
i de MP el bloque i mod k de MCa, donde k es
el número total de bloques de la MCa Ventajas:
• Una dirección en MCa consta de: • La lectura permite el acceso
simultáneo:
• Etiqueta • al directorio y
• Nº de bloque de MCa • a la palabra dentro del
• Posición en el bloque (palabra) bloque de MCa
Solución: • Algoritmo de reemplazo trivial
• 23 bytes/bloque 3 bits para la posición
dentro del bloque Inconveniente:
• 27 bloques de MCa 7 bits para cada bloque • Incremento de la tasa de fallos
• de la MCa, si dos bloques de MP,
10 bits para que corresponden a un mismo
cada etiqueta bloque de MCa, se utilizan de
forma alternativa
217 bloques MP
7
210
2 bloques MCa
Gestión de memoria 38
Memoria cache
Políticas de ubicación
Correspondencia
Dirección asociativa
de MP (I):
Etiqueta Palabra Memoria principal
17 bits 3 bits
Bloque 0
Bloque 1
Memoria caché
.
Etiqueta (B0) = Bloque 0 .
Etiqueta (B1) = Bloque 1 .
Etiqueta (B2) = Bloque 2
Acierto
. . . Bloque 127
. . . Bloque128
. . . Bloque 129
.
Etiqueta (B127) = Bloque 127 .
.
Fallo
Palabra enviada Bloque 131.071
al procesador
Gestión de memoria 39
Memoria cache
Políticas de ubicación
Correspondencia asociativa (II):
Ventaja:
• Cualquier bloque de MP puede ubicarse • Flexibilidad (permite la
en cualquiera de los bloques de la cache implantación de gran variedad
• Una dirección en MCa consta de: de algoritmos de reemplazo)
• Etiqueta
• Posición en el bloque (palabra)
Inconveniente:
Solución: • Coste de las comparaciones
• 23 bytes/bloque 3 bits para la posición
dentro del bloque
• 217 bloques de MP 17 bits para cada
etiqueta
Gestión de memoria 40
Memoria cache
Políticas de ubicación
Correspondencia
Dirección deasociativa
MP por conjuntos (I): Memoria principal
Etiqueta Conjunto de MCa Palabra
11 bits 6 bits 3 bits Bloque 0
Bloque 1
Memoria caché
Etiqueta (B0) Bloque 0
...
C0 C0
Etiqueta (B1) Bloque 1 Bloque 63
Etiqueta (B2) Bloque 2 Bloque 64
C1 C1
Etiqueta (B3) Bloque 3 Bloque 65
. .
. . ...
. .
Bloque 127
Etiqueta
Etiqueta(B127)
(B126) Bloque 126
C63 C63 Bloque128
Etiqueta (B127) Bloque 127
Bloque 129
...
Fallo
Comparador 0 Bloque 131.071
Acierto Palabra enviada
Comparador 1 al procesador
Gestión de memoria 41
Políticas de ubicación
Correspondencia asociativa por conjuntos (II):
Consiste en dividir la MCa en C conjuntos • Solución (asignando 2 bloqs./cjto.):
de B bloques cada uno • 23 bytes/bloque 3 bits para la
• Se aplica: posición dentro del bloque
• Correspondencia directa a nivel de • 26 conjuntos en MCa 6 bits para cada
conjunto conjunto
• Correspondencia asociativa a nivel de
• 11 bits para cada etiqueta
bloque
• Un bloque i de MP puede ubicarse en • El coste de la búsqueda depende del
cualquier bloque del conjunto i mod C de número y longitud de las etiquetas que
MCa se tienen que comparar
simultáneamente
• Una dirección en MCa consta de:
Ventaja:
• Etiqueta,
• Conjunto y • Reduce el coste de la totalmente
• Posición en el bloque asociativa proporcionando un
rendimiento cercano a esta última
Gestión de memoria 42
Memoria caché
Gestión de memoria 43
Ejercicio
Gestión de memoria 44