gestión de memoria rina arauz. gestión de memoria 2 definición n la memoria es una amplia tabla...
TRANSCRIPT
Gestión de memoria
Rina Arauz
Gestión de memoria 2
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 3
Localidad
Los procesos tienden a concentrar sus referencias en un intervalo de tiempo en un subconjunto de su espacio de direcciones.
La localidad puede ser de dos tipos: Localidad espacial Localidad temporal
Gestión de memoria 4
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
Las memorias están constituidas por miles de celdas. Cada "celda" de la memoria puede almacenar un bit, Una palabra puede estar constituida por 6, 8, 12, 16, 32, 64 ó incluso más bits. Dirección es la ubicación de una palabra. El conjunto de celdas en las que se almacena una palabra se llama "Posición de
memoria" .
Hay que distinguir entre dirección de una posición de memoria y el dato que puede ser almacenado en esa dirección.
Palabra: número de bits que suele contener cada posición de memoria (8,16, 32 ó 64 bits).
Dirección: posición de memoria en la que se almacena una información (conjunto de bits que identifican a cada palabra de la memoria).
Si tenemos un sistema con una palabra de 4 bits y una dirección de 10 bits, tendremos un sistema con una capacidad de:
210 (palabras)* 4 (bits por palabra) = 4 Kbits
Gestión de memoria 5
Gestión de memoria 6
000 001
1 0 0 1 1 1 0 0010 011
1 0 1 1 1 0 0 1100 101
1 1 1 1 0 0 1 1110 111
1 1 0 1 1 0 1 1
Dirección
Palabra
Posición de Memoria
Celda
Si tenemos un sistema con una palabra de 4 bits y una dirección de 3 bits, tendremos un sistema con una capacidad de:
23 (palabras)* 4 (bits por palabra) = 32bits
Memoria
La memoria esta caracterizada por tres propiedades fundamentales;
* Capacidad * Tiempo de acceso * Coste por bit
CAPACIDAD: cantidad de información que puede almacenar.
TIEMPO DE ACCESO: tiempo que se necesita para localizar y leer una información almacenada, es el tiempo transcurrido desde que se suministra la dirección hasta que se accede a la posición de memoria que se desea.
COSTE POR BIT: El coste por bit será el precio que cuesta almacenar un bit de información. O lo que es lo mismo, será el precio de una memoria dividido por la capacidad total de almacenamiento.
Cuando más grande se elija la capacidad de la memoria, mayor será el tiempo de acceso.
Gestión de memoria 7
Gestión de memoria 8
Jerarquía de memoria
Para ello se aprovechan los avances tecnológicos en el diseño de memorias y la localidad de los programas
CD-ROM - Cintas
Discos magnéticos
Memoria principal
Caché externa L2
Caché on-chip L1
Registros internosdel procesador
Mayor rapidezmenor tamaño ymayor precio
Menor rapidez
mayor tamaño ymenor precio
A medida que el tiempo de acceso aumenta, el coste por bit disminuye y la capacidad de almacenamiento aumenta.
Gestión de memoria 9
Tiempo de acceso Capacidad
Gestión de memoria 10
Fragmentación
Fragmentación = memoria desaprovechada Puede ser de dos tipos, interna y externa
Fragmentación interna Se debe a la diferencia de tamaño entre la partición de
memoria y el objeto residente dentro de ella Se produce siempre que se trabaje con bloques de
memoria de tamaño fijo Si el tamaño del objeto no coincide con el de la partición,
queda una zona que no se puede aprovechar Fragmentación externa
Se debe al desaprovechamiento de memoria entre particiones
Gestión de memoria 11
Dirección virtual/Físicas
Programa
fuente
Compilador oEnsamblador
Programa
objeto
EnlazadorPrograma
ejecutable
Otrosobjetos
Bibliotecas
Memoria
Cargador
Bibliotecasdinámicas
El problema de traducir las direcciones lógicas a direcciones físicas se llama reubicación.
Gestión de memoria 12
Reubicación
La reubicación hace referencia al hecho de ubicar los programas en memoria para su ejecución.
Reubicación estática Se realiza antes o durante la carga del programa en
memoria Los programas no pueden ser movidos una vez iniciados
Reubicación dinámica Los programas pueden moverse en tiempo de ejecución El paso de dirección virtual a dirección real, se realiza en
tiempo de ejecución Necesita hardware adicional (MMU)
MMU: Es un dispositivo Hardware que realiza la traducción
de direcciones lógicas (o virtuales) a direcciones físicas (o reales) y la protección de la memoria.
Gestión de memoria 13
Gestión de memoria 14
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 15
Máquina desnuda
Es la manera más sencilla de gestionar la memoria: no existe ningún gestor
El usuario controla toda la memoria El sistema no porporciona ningún servicio
Usuario
Memoria
Gestión de memoria 16
No
Monitor monolítico o residente
Protección:
CPU Dirección>Límite
Dirección límite
Error de direccionamiento
Sí
MEMORIA
MONITOR
Gestión de memoria 17
Memoria particionada contigua
Memoria particionada no contigua
Memoria particionada contigua
Se asigna una partición de memoria a cada proceso
MFT (Sistema multiprogramado con tamaño y numero de particiones fijo).
MVT (Sistema multiprogramado con tamaño y numero de particiones variable).
Gestión de memoria 18
MFT
La memoria se divide en particiones de distinto tamaño que se van asignando a los procesos.
Su mayor problema es la fragmentación interna.
En el ejemplo el P3 tiene asignados 600K y solo usa 100K y el P4 no puede ubicarse en memoria pese a ocupar 500k.
Gestión de memoria 19
MVT
Se asigna a cada proceso un bloque contiguo de memoria. Su mayor problema es la fragmentación externa, que puede solucionarse con compactación.
Se pueden utilizar varios algoritmos de asignación: Primer ajuste, Mejor ajuste, Peor ajuste.
Gestión de memoria 20
Protección:
Un proceso no puede acceder a la zona de memoria asignada a otros procesos. Registros Límites (Lim inferior y lim superior). Registros Base y Limite.
Gestión de memoria 21
Gestión de memoria 22
Sí
Registros límite
No soporta reubicación dinámica
CPU
No
<=
Límitesuperior
Error de direccionamiento
MEMORIA
Programa X
Límiteinferior
>=
No
Sí
Gestión de memoria 23
Sí
No
Registros base-límite
Soporta reubicación dinámica
CPU <
Límite
Error de direccionamiento
MEMORIA
Programa X
Base
+
Límite
Gestión de memoria 24
Tabla de descripción de particiones
Sistema operativo
Pi
Pj
Pk
0K 100K ASIGNADA
100K 300K LIBRE
400K 100K ASIGNADA
500K 250K ASIGNADA
700K 150K ASIGNADA
900K 100K LIBRE
0K
100K
400K
500K
750K
900K
1000K
Número Base Tamaño Estadode la de la de la de lapartición partición partición partición
0
1
2
3
4
5
Gestión de memoria 25
Memoria particionada no contigua
Esquemas: Segmentación Paginación Segmentación paginada Paginación segmentada
Gestión de memoria 26
Segmentación Permite que los segmentos de un proceso (código, datos,
pila, etc.) puedan estar situados en áreas de memoria no contiguas.
Las direcciones en estos sistemas tienen dos componentes: número de segmento y desplazamiento.
La traducción de direcciones se lleva a cabo con la ayuda de la tabla de segmentos (TDS).
Los segmentos pueden tener tamaños diferentes. La Protección se basa en registros base y límite. Si la tabla de segmentos es muy grande, 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 posición referenciada: Solución: utilizar registros internos dentro de la CPU (Intel)
Gestión de memoria 27
Segmentación (esquema lógico)
Memoriafísica
Código
Espacio de direccionamiento virtualEspacio de direccionamiento real
Dátos
Datos
compartidos
PilaCódigo
Dátos
Datos
compartidos
Pila
MMU
Gestión de memoria 28
Segmentación (HW)
Procesador S D
Base 1Base 2Base 3Base 4Base 5Base 6Base 7Base 8
S
Memoria
Límite 1Límite 2Límite 3Límite 4Límite 5Límite 6Límite 7Límite 8
<
Tabla de segmentos
+¡¡¡ Error !!!
Base 5
D
RPBTS
RLTS
Gestión de memoria 29
Paginación
Es un esquema de gestión de memoria en el que la asignación de memoria no es contigua.
El espacio de direcciones virtuales de un proceso está dividido en bloques de tamaño fijo llamados páginas.
Se produce fragmentación interna. La memoria física se divide en marcos de página. La dirección virtual consta de un número de página
virtual y un desplazamiento.
La traducción de direcciones se lleva a cabo con la ayuda de la tabla de páginas (TDP)
Si se piden “s” posiciones de memoria nº páginas asignadas=[s/p] p: tamaño de la página
Si el cociente anterior no es entero se produce la llamada fragmentación de página
Con página grande aumentamos la fragmentación interna pero disminuimos el tamaño de la TDP
Gestión de memoria 30
Gestión de memoria 31
Paginación (esquema lógico)
MemoriafísicaCódigo
Espacio de direccionamiento virtual Espacio de direccionamiento real
MMU
A
Páginas
Marcos
B
C
D
E
F
G A
B
C
D
Gestión de memoria 32
Paginación (HW)
Procesador P D
Marco 1Marco 2Marco 3Marco 4Marco 5Marco 6Marco 7Marco 8
P
Memoria
Tabla de páginas
Marco 5
D
RPBTP
RLTP
M D
Gestión de memoria 33
Si el número de páginas es grande, la zona de memoria ocupada por la TDP puede ser excesiva
Ejemplo: Tamaño de cada entrada de la TDP: 4 bytes Espacio de direccionamiento: 32 bits Páginas de 4 Kbytes Tamaño de la TDP: 4 Mbytes
Solución Tabla de páginas paginada Se emplea un directorio de páginas
Gestión de memoria 34
Paginación de la TDP
P D
Tabla 1Tabla 2Tabla 3Tabla 4Tabla 5Tabla 6Tabla 7Tabla 8
Dir
Memoria
Directorio de páginas
D
RPBTP
RLTP
M D
Dir
Tabla de páginas
Dirección virtual
Marco 1Marco 2Marco 3Marco 4Marco 5Marco 6Marco 7Marco 8
P
Gestión de memoria 35
Es posible combinar los esquemas de paginación y segmentación
De este modo podemos obtener las ventajas de ambos a costa de complicar el HW
Combinaciones: Segmentación paginada Paginación segmentada (no se emplea en la
práctica) En la segmentación paginada, cada segmento se
divide en páginas En la paginación segmentada, cada página se
divide en segmentos
Gestión de memoria 36
Segmentación paginada (HW)
S
Memoria
Tabla de segmentos
RPBTS
RLTS
P D
Dirección virtual
S
Tabla de páginas+
M D
Base de la tablade páginas
Gestión de memoria 37
Memoria caché
Su empleo se justifica por la localidad de los programas. 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 es muy rápido, si no es así, los datos se traen desde memoria principal en bloques.
Memoria cache
- L1 (Se encuentra dentro del núcleo)
- L2 (En el procesador)
- L3 (En placa base) • 1er. Nivel (del orden de 20 Kb). • 2do. Nivel (del orden de 512Kb a 2Mb).
• 3er. Nivel (del orden de 8Mb).
Gestión de memoria 38
Memoria cache
A los bloques de transferencia entre memoria principal y memoria caché se les denomina líneas o vías de caché.
Parámetros de un sistema con memoria cache: Política de ubicación
Las políticas de ubicación establecen la correspondencia entre los bloques de la MP y de la MCa
Política de extracción Determinan cuándo y qué información se envía de MP a MCa
Política de reemplazo Determinan cuándo y qué bloque se sustituye de las MCa
con política de ubicación asociativa Política de actualización
Determinan el instante en que se actualiza la información en MP cuando se produce una escritura en MCa Problema de coherencia de la MCa
Gestión de memoria 39
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 =
Capacidad MP: 1 Mbyte = 220 bytes Nº bloques de MP = 1282
2
2 73
10
072.13122
2 173
20
Gestión de memoria 40
Políticas de ubicación
Correspondencia directa (I):
Memoria principal
Bloque 0Bloque 0
Bloque 1Bloque 1
.
.
.
.
.
.
Bloque 127Bloque 127
Bloque128Bloque128
Bloque 129Bloque 129
.
.
.
.
.
.
Bloque 131.071Bloque 131.071
Memoria cachéMemoria caché
Etiqueta (B0)Etiqueta (B0)
Etiqueta (B1)Etiqueta (B1)
Etiqueta (B2)Etiqueta (B2)
.
.
.
.
.
.
Etiqueta (B127)Etiqueta (B127)
Bloque 0Bloque 0
Bloque 1Bloque 1
Bloque 2Bloque 2
.
.
.
.
.
.
Bloque 127Bloque 127
Acierto
FalloComparadorComparador Palabra enviada
al procesador
Dirección de MP
EtiquetaEtiqueta Bloque de MCaBloque de MCa PalabraPalabra10 bits 7 bits 3 bits
Gestión de memoria 41
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
Una dirección en MCa consta de: Etiqueta Nº de bloque de MCa Posición en el bloque (palabra)
Solución: 23 bytes/bloque 3 bits para la posición
dentro del bloque 27 bloques de MCa 7 bits para cada
bloque 10 bits para
cada etiqueta
107
17
2MCa bloques 2
MP bloques 2
Políticas de ubicación
Ventajas: La lectura permite el acceso
simultáneo: al directorio y a la palabra dentro del
bloque de MCa Algoritmo de reemplazo trivial
Inconveniente: Incremento de la tasa de fallos
de la MCa, si dos bloques de MP, que corresponden a un mismo bloque de MCa, se utilizan de forma alternativa
Gestión de memoria 42
Memoria cachePolíticas de ubicación
Correspondencia asociativa (I):
Memoria principal
Bloque 0Bloque 0
Bloque 1Bloque 1
.
.
.
.
.
.
Bloque 127Bloque 127
Bloque128Bloque128
Bloque 129Bloque 129
.
.
.
.
.
.
Bloque 131.071Bloque 131.071
Memoria cachéMemoria caché
Bloque 0Bloque 0
Bloque 1Bloque 1
Bloque 2Bloque 2
.
.
.
.
.
.
Bloque 127Bloque 127
Acierto
Etiqueta (B0)Etiqueta (B0)
Etiqueta (B1)Etiqueta (B1)
Etiqueta (B2)Etiqueta (B2)
.
.
.
.
.
.
Etiqueta (B127)Etiqueta (B127)
Fallo
==
==
==
.
.
.
.
.
.
==
Dirección de MP
EtiquetaEtiqueta PalabraPalabra17 bits 3 bits
Palabra enviadaal procesador
Gestión de memoria 43
Memoria cache Políticas de ubicación
Correspondencia asociativa (II):
Cualquier bloque de MP puede ubicarse en cualquiera de los bloques de la cache
Una dirección en MCa consta de: Etiqueta Posición en el bloque (palabra)
Solución: 23 bytes/bloque 3 bits para la
posición dentro del bloque 217 bloques de MP 17 bits
para cada etiqueta
Ventaja: Flexibilidad (permite la
implantación de gran variedad de algoritmos de reemplazo)
Inconveniente: Coste de las
comparaciones
Gestión de memoria 44
Correspondencia asociativa por conjuntos (I):
Memoria cache Políticas de ubicación
Memoria principal
Fallo
AciertoComparador 0Comparador 0
Comparador 1Comparador 1
Memoria cachéMemoria caché
Etiqueta (B127)Etiqueta (B127)
Etiqueta (B0) Etiqueta (B0)
Etiqueta (B1) Etiqueta (B1)
Etiqueta (B2) Etiqueta (B2)
Etiqueta (B3) Etiqueta (B3)
.
.
.
.
.
.
Etiqueta (B126) Etiqueta (B126)
Etiqueta (B127) Etiqueta (B127)
C0
C1
C63
Bloque 0 Bloque 0
Bloque 1 Bloque 1
Bloque 2 Bloque 2
Bloque 3 Bloque 3
.
.
.
.
.
.
Bloque 126 Bloque 126
Bloque 127 Bloque 127
C0
C1
C63
Palabra enviadaal procesador
Bloque 0Bloque 0
Bloque 1Bloque 1
. . .. . .
Bloque 63Bloque 63
Bloque 64Bloque 64
Bloque 65Bloque 65
. . .. . .
Bloque 127Bloque 127
Bloque128Bloque128
Bloque 129Bloque 129
. . .. . .
Bloque 131.071Bloque 131.071
Dirección de MP
EtiquetaEtiqueta Conjunto de MCaConjunto de MCa PalabraPalabra11 bits 6 bits 3 bits
Gestión de memoria 45
Políticas de ubicación
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 dirección en MCa consta de: Etiqueta, Conjunto y Posición en el bloque
Correspondencia asociativa por conjuntos (II):
Solución (asignando 2 bloqs./cjto.): 23 bytes/bloque 3 bits para la
posición dentro del bloque 26 conjuntos en MCa 6 bits para
cada conjunto 11 bits para cada etiqueta El coste de la búsqueda depende
del número y longitud de las etiquetas que se tienen que comparar simultáneamente
Ventaja: Reduce el coste de la totalmente
asociativa proporcionando un rendimiento cercano a esta última
Gestión de memoria 46
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 Estrategias de actualización:
Escritura aplazada Escritura Inmediata
Normalmente se emplean cachés separadas para instrucciones y para datos
Gestión de memoria 47
Ejercicio
Sea una computadora que dispone de una memoria principal entrelazada y memorias caché separadas con las siguientes características:
El tamaño de un bloque de memoria es de 32 bytes Memoria principal: Capacidad: 256 Mbytes Memoria caché: Asociativa por conjuntos, estructurada según: Memoria caché de instrucciones: 8 Kbytes con 4
bloques por conjunto. Memoria caché de datos: 8 Kbytes con 2 bloques por
conjunto.