Gestin de memoria Rina Arauz Definicin n n

  • Slides: 57
Download presentation
Gestión de memoria Rina Arauz

Gestión de memoria Rina Arauz

Definición n n La memoria es una amplia tabla de datos, cada uno de

Definición n 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 n Los procesos tienden a concentrar sus referencias en un intervalo de tiempo

Localidad n Los procesos tienden a concentrar sus referencias en un intervalo de tiempo en un subconjunto de su espacio de direcciones. n La localidad puede ser: l Localidad Secuencial l Conjunto de instrucciones continuas, sin ninguna instrucción de salto. (código secuencial) l l Espacio de direcciones del proceso Localidad Temporal Conjunto de instrucciones con lazos iteractivos (blucles o subrutinas) Localidad Espacial Conjunto de instrucciones que accesan datos presentes en otra Localidad de memoria. . (tablas o matrices) Gestión de memoria 3

Memoria n n n Las memorias están constituidas por miles de celdas. Cada "celda"

Memoria n n n 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". n Hay que distinguir entre dirección de una posición de memoria y el dato que puede ser almacenado en esa dirección. n Palabra: número de bits que suele contener cada posición de memoria (8, 16, 32 ó 64 bits). n 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). n 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 4

Memoria Dirección 000 001 1 0 0 1 1 1 0 0 011 1

Memoria Dirección 000 001 1 0 0 1 1 1 0 0 011 1 0 1 1 1 0 0 1 100 101 110 111 Palabra 1 1 0 0 1 1 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) = 32 bits 1 1 0 1 1 Posición de Memoria Celda Memoria Gestión de memoria 5

Memoria n La memoria esta caracterizada por tres propiedades fundamentales; * Capacidad * Tiempo

Memoria n La memoria esta caracterizada por tres propiedades fundamentales; * Capacidad * Tiempo de acceso * Coste por bit n CAPACIDAD: cantidad de información que puede almacenar. n 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. n 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 6

Jerarquía de memoria n Para ello se aprovechan los avances tecnológicos en el diseño

Jerarquía de memoria n Para ello se aprovechan los avances tecnológicos en el diseño de memorias y la localidad de los programas Registros internos del procesador Mayor rapidez menor tamaño y mayor precio Caché on-chip L 1 Caché externa L 2 Menor rapidez mayor tamaño y menor precio n A medida que el tiem de acceso aumenta, e coste por bit disminu y la capacidad de almacenamiento aumenta. Memoria principal Discos magnéticos CD-ROM - Cintas Gestión de memoria 7

Tiempo de acceso Capacidad Gestión de memoria 8

Tiempo de acceso Capacidad Gestión de memoria 8

Cintas Magnéticas n Aunque las cintas magnéticas hayan desaparecido del consumo habitual, se siguen

Cintas Magnéticas n Aunque las cintas magnéticas hayan desaparecido del consumo habitual, se siguen utilizando en ciertos ámbitos. Por ejemplo, en centros de almacenamiento siguen siendo usadas, pues existe una relación muy buena entre precio y capacidad de almacenamiento. n En IBM se ha planteado la evolución de esta tecnología, han reducido el espacio físico a la vez que han mejorado de una forma increíble la densidad de almacenamiento. Consiguiendo un nuevo récord mundial, científicos del IBM han capturado 330 TB de datos sin comprimir en un cartucho que puede caber en la palma de la mano. n Imagina 330 millones de libros comprimidos en una cinta de cassette. n Conseguir capturar 201 Gb por pulgada cuadrada en un prototipo de cinta magnética. Gestión de memoria 9

Fragmentación n Fragmentación = memoria desaprovechada l Puede ser de dos tipos, interna y

Fragmentación n Fragmentación = memoria desaprovechada l Puede ser de dos tipos, interna y externa Fragmentación interna l Se debe a la diferencia de tamaño entre la partición de memoria y el objeto residente dentro de ella l Se produce siempre que se trabaje con bloques de memoria de tamaño fijo l 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 l Se debe al desaprovechamiento de memoria entre particiones Gestión de memoria 10

La dirección generada por la CPU mientras se está ejecutando un programa se denomina

La dirección generada por la CPU mientras se está ejecutando un programa se denomina Dirección Lógica. La dirección lógica es virtual ya que no existe físicamente. El usuario puede ver la dirección lógica de un programa y nunca puede ver la dirección física. El programa cargador lee un ejecutable y: –Carga en memoria todo su código y sus datos Gestión de memoria 11

Dirección virtual/Físicas Gestión de memoria 12

Dirección virtual/Físicas Gestión de memoria 12

Gestión de memoria 13

Gestión de memoria 13

Reubicación n En un sistema con multiprogramación es necesario realizar un proceso de traducción

Reubicación n En un sistema con multiprogramación es necesario realizar un proceso de traducción (reubicación) de las direcciones de memoria a las que hacen referencia las instrucciones de un programa(direcciones lógicas) para que se correspondan con las direcciones de memoria principal asignadas al mismo (direcciones físicas). n Reubicación: Consiste en traducir las direcciones lógicas de los programas ejecutables a direcciones físicas. n Dirección Lógica es generada por la CPU durante la ejecución de un programa mientras que la dirección física se refiere a una ubicación en la unidad de memoria. Gestión de memoria 14

Reubicación n La reubicación hace referencia al hecho de ubicar los programas en memoria

Reubicación n La reubicación hace referencia al hecho de ubicar los programas en memoria para su ejecución. n Reubicación estática l Se realiza antes o durante la carga del programa en memoria l Los programas no pueden ser movidos una vez iniciados Reubicación dinámica l Los programas pueden moverse en tiempo de ejecución l El paso de dirección virtual a dirección real, se realiza en tiempo de ejecución l Necesita hardware adicional (MMU) n Gestión de memoria 15

n n MMU: Es un dispositivo Hardware que realiza la traducción de direcciones lógicas

n n 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 16

n Esquemas de gestión de memoria l Máquina desnuda l Monitor monolítico o residente

n Esquemas de gestión de memoria l Máquina desnuda l Monitor monolítico o residente l Asignación de memoria particionada contigua l Asignación de memoria particionada no contigua l Memoria cache Gestión de memoria 17

Máquina desnuda n n n Es la manera más sencilla de gestionar la memoria:

Máquina desnuda n n n 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 Memoria Usuario Gestión de memoria 18

Monitor monolítico o residente n MEMORIA Protección: MONITOR Dirección límite CPU Dirección>Límite Sí No

Monitor monolítico o residente n MEMORIA Protección: MONITOR Dirección límite CPU Dirección>Límite Sí No Error de direccionamiento Gestión de memoria 19

Memoria particionada contigua Memoria particionada no contigua Gestión de memoria 20

Memoria particionada contigua Memoria particionada no contigua Gestión de memoria 20

Memoria particionada contigua n Se asigna una partición de memoria a cada proceso l

Memoria particionada contigua n Se asigna una partición de memoria a cada proceso l MFT (Sistema multiprogramado con tamaño y numero de particiones fijo). l MVT (Sistema multiprogramado con tamaño y numero de particiones variable). Gestión de memoria 21

MFT n La memoria se divide en particiones de distinto tamaño que se van

MFT n La memoria se divide en particiones de distinto tamaño que se van asignando a los procesos. n Su mayor problema es la fragmentación interna. n En el ejemplo el P 3 tiene asignados 600 K y solo usa 100 K y el P 4 no puede ubicarse en memoria pese a ocupar 500 k. Gestión de memoria 22

MVT n n Se asigna a cada proceso un bloque contiguo de memoria. Su

MVT n n 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 23

Ejercicio: n Supongamos que tenemos en un instante determinado tres zonas libres de memoria

Ejercicio: n Supongamos que tenemos en un instante determinado tres zonas libres de memoria No contiguas, con tamaños de 3 Kb, 6 Kb y 8 Kb. Si en este instante llega un trabajo cuyo tamaño es de 13 Kb y se utiliza MFT. Podrá ser cargado? ¿Cómo se le denomina a este fenómeno? Gestión de memoria 24

Protección: n Un proceso no puede acceder a la zona de memoria asignada a

Protección: n Un proceso no puede acceder a la zona de memoria asignada a otros procesos. n Técnicas de protección: l Registros Límites (Lim inferior y lim superior). l Registros Base y Limite. Gestión de memoria 25

Registros límite n No soporta reubicación dinámica MEMORIA Límite superior Límite inferior Programa X

Registros límite n No soporta reubicación dinámica MEMORIA Límite superior Límite inferior Programa X CPU <= >= Sí No Error de direccionamiento Gestión de memoria 26

Registros base-límite n Soporta reubicación dinámica MEMORIA Límite Sí < + Programa X Límite

Registros base-límite n Soporta reubicación dinámica MEMORIA Límite Sí < + Programa X Límite CPU Base No Error de direccionamiento Gestión de memoria 27

Tabla de descripción de particiones 0 K Sistema operativo Número Base Tamaño de la

Tabla de descripción de particiones 0 K Sistema operativo Número Base Tamaño de la partición 100 K 400 K 0 K 100 K ASIGNADA 1 100 K 300 K LIBRE 2 400 K 100 K ASIGNADA 3 500 K 250 K ASIGNADA 4 700 K 150 K ASIGNADA 5 900 K 100 K LIBRE 0 Pi 500 K Pj 750 K Pk Estado de la partición 900 K 1000 K Gestión de memoria 28

Memoria particionada no contigua n Esquemas: l Segmentación l Paginación l Segmentación paginada l

Memoria particionada no contigua n Esquemas: l Segmentación l Paginación l Segmentación paginada l Paginación segmentada Gestión de memoria 29

Segmentación Permite que los segmentos de un proceso (código, datos, pila, etc. ) puedan

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. Gestión de memoria 30

Burroughs B 5500, 1966 arquitectura de x 86 ( Intel 8086, 8088 ) (1978

Burroughs B 5500, 1966 arquitectura de x 86 ( Intel 8086, 8088 ) (1978 -1979) El ordenador de Burroughs Corporation B 5000 era uno de los primeros para poner en práctica la segmentación. B 6500, Intel i. APX 432 (1975), Principal, Stratus, Apolo, Sistema/38 de la IBM e IBM YA QUE/400 los ordenadores usan la segmentación de memoria. arquitectura de x 86 ( Intel 8086, Intel 80286). Intel 80286 (1982) Gestión de memoria 31

Ejercicio: 1) Tenemos una CPU que trabaja con segmentación. Las direcciones lógicas son de

Ejercicio: 1) Tenemos una CPU que trabaja con segmentación. Las direcciones lógicas son de 16 bits. Los tres primeros bits se utilizan como selector de segmento. • ¿Cuánta memoria puede direccionar un proceso en este sistema? • ¿Cuántos segmentos puede llegar a tener un proceso? • ¿Cuál es el tamaño máximo de un segmento? ¿Cómo variarían las respuestas si se dedicaran 2 bits para el selector de segmento? 2) Complete la tabla de direcciones físicas, con ayuda de la TDS. Segmento Base Lim 0 1 2 3 219 2300 90 1327 600 14 100 580 Dirección Virtual 0, 430 1, 10 2, 500 3, 347 Dirección Real Gestión de memoria 32

PAGINACION Es un esquema de gestión de memoria no contigua. El espacio de direcciones

PAGINACION Es un esquema de gestión de memoria no 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. Gestión de memoria 33

Gestión de memoria 34

Gestión de memoria 34

Paginación Gestión de memoria 35

Paginación Gestión de memoria 35

n n La traducción de direcciones se lleva a cabo con la ayuda de

n n 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 l nº páginas asignadas=[s/p] l 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 36

Ejercicio: n n n Si el número de páginas es grande, la zona de

Ejercicio: n n n Si el número de páginas es grande, la zona de memoria ocupada por la TDP puede ser excesiva Ejemplo: l Tamaño de cada entrada de la TDP: 4 bytes l Espacio de direccionamiento: 32 bits l Páginas de 4 Kbytes l Tamaño de la TDP: 4 Mbytes Solución l Tabla de páginas paginada l Se emplea un directorio de páginas Gestión de memoria 37

Ejercicios: ¿Cuánta memoria puede direccionar con una palabra de 16 bits. ? n Respuesta:

Ejercicios: ¿Cuánta memoria puede direccionar con una palabra de 16 bits. ? n Respuesta: n Se pueden direccional 216 =64 K (posiciones de memoria). ¿Cuánta memoria puede direccionar con registros de 16 bits si la palabra es de 20 bits? Respuesta: n Se puede direccionar 220= 1 Mb. Gestión de memoria 38

Ejercicio: n Complete la siguiente tabla: 2) Si un proceso ocupa en memoria 285667

Ejercicio: n Complete la siguiente tabla: 2) Si un proceso ocupa en memoria 285667 bytes y se ejecuta en un sistema paginado, con un tamaño de pagina de 256 bytes, la fragmentación interna del mismo es ? Gestión de memoria 39

Ejercicio: Gestión de memoria 40

Ejercicio: Gestión de memoria 40

Ejercicio: Gestión de memoria 41

Ejercicio: Gestión de memoria 41

Ejercicio: Gestión de memoria 42

Ejercicio: Gestión de memoria 42

Ejercicio: Gestión de memoria 43

Ejercicio: Gestión de memoria 43

Ejercicio: Gestión de memoria 44

Ejercicio: Gestión de memoria 44

Ejercicio: En un sistema paginado cuyo tamaño de página es de 256 bytes y

Ejercicio: En un sistema paginado cuyo tamaño de página es de 256 bytes y la dirección tiene una longitud de 12 bits. Determine la dirección virtual en hexadecimal que se localiza en la página 3 con desplazamiento 15 dentro de esa página. Respuesta: Cada Pagina es 256 bytes = 28 Total de paginas = 24 = 16 paginas Pagina 3 = 0011 Desplazamiento 15 = 1111 4 bits para la pagina 0011 8 bits para el desplazamiento 0000 1111 = 3 0 F es la dirección virtual En un sistema paginado cuya memoria es 5(decimal)? Respuesta: de 64 kb con 64 páginas. ¿Qué direcciones se localizan en la página Total de paginas = 26 = 64 paginas Memoria = 64 kb = 26 x 210 = 216 64 paginas - 6 bits para la pagina 10 bits para el desplazamiento Desde la 0101 (pag 5) 00000(10 bits de desplazamiento todos a cero) 16 bits ------ 0001 01 00 0000 -> 1400 h hasta la 0101 (pag 5) 11111(10 bits de desplazamiento todos a uno) 16 bits ------ 0001 01 11 1111 -> 17 FF h De 1400 h hasta 17 FFh Gestión de memoria 45

Ejercicio: En un sistema paginado cuya memoria es de 32 kb con páginas de

Ejercicio: En un sistema paginado cuya memoria es de 32 kb con páginas de 512 bytes. ¿Qué direcciones se localizan en la pagina 24 (decimal)? Respuesta: Tamaño pag = 29 = 512 bytes Memoria = 32 kb = 2 5 x 210 = 215 6 bits para la pagina 9 bits para el desplazamiento Desde la 11000 (pag 24 h) 00000(9 bits de desplazamiento todos a cero) pagina desplazamiento 011 000 0 0000 -> 6000 h hasta la 11000 (pag 24 h) 11111(9 bits de desplazamiento todos a uno) pagina desplazamiento 011 000 1 1111 De 6000 h hasta 61 FFh 1111 -> 61 FFh Gestión de memoria 46

Ejercicio: Gestión de memoria 47

Ejercicio: Gestión de memoria 47

Ejercicio: Sea un sistema basado en memoria paginada en el que existen 1024 marcos

Ejercicio: Sea un sistema basado en memoria paginada en el que existen 1024 marcos de 8 Kbytes cada uno. En el se ejecuta un proceso de 30000 bytes que ocupa las paginas 0, 1, 2, y 3 alojadas en los marcos 20, 25, 40, y 45 respectivamente. A que dirección física corresponde la dirección virtual 17203? En la situación expuesta en la pregunta anterior, cual seria la fragmentación de memoria del proceso? ´ 8 kb = 8 x 1024=8192 17203/8192= 2. 09 (pagina) 2 x 8192= 16384 17203 -16384= 819 Pagina 2 desplazamiento 819 40 x 8192= 327680 + 819 = 328499 (dir física) para Comprobar: 328499/8192= 40. 09 Gestión de memoria 48

Ejercicio: Suponga que un proceso emite una dirección lógica igual a 2453 y que

Ejercicio: Suponga que un proceso emite una dirección lógica igual a 2453 y que se utiliza la técnica de paginación, con páginas de 1024 palabras. a) Indique el par de valores (número de página, desplazamiento) que corresponde a dicha dirección. 2453/1024= 2. 39 (3 páginas) (pag 0, pag 1, pag 2)--- > (pagina 2) 2 x 1024 = 2048 2453 -2048= 405 (desplazamiento) Pagina 2 y desplazamiento 405 b) ¿Es posible que dicha dirección lógica se traduzca en la dirección física 9322? . 9322/1024= 9. 1 (10 paginas) 9 x 1024 = 9216 9322 -9216 = 106 diferente a 405 por ello NO puede ser ésta la dirección física. Gestión de memoria 49

Ejercicios: 1) Supongamos un sistema que utiliza memoria paginada. Las direcciones lógicas son de

Ejercicios: 1) Supongamos un sistema que utiliza memoria paginada. Las direcciones lógicas son de 24 bits. Si se dedican 10 bits para seleccionar la página y los restantes para el desplazamiento dentro de la página: • ¿Cuántas páginas puede llegar a tener un proceso? • ¿Qué tamaño de página utiliza el sistema? • ¿Cuánta memoria puede direccionar un proceso? 2) Pongamos otro caso similar. Esta vez tenemos direcciones lógicas de 24 bits y sabemos que el tamaño de página son 4 KB. Entonces: • ¿Cuántas páginas puede llegar a tener un proceso? • ¿Cuántos bits hay que dedicar a página y a desplazamiento? • ¿Cuánta memoria puede direccionar un proceso? Otra cuestión interesante es estudiar la influencia entre el tamaño de página y el espacio ocupado por la tabla de páginas. ¿Cuál de los dos escenarios genera tablas de páginas más grandes? Gestión de memoria 50

Ejercicio: 3) Supongamos entonces unas direcciones lógicas de 24 bits, direcciones físicas de 32

Ejercicio: 3) Supongamos entonces unas direcciones lógicas de 24 bits, direcciones físicas de 32 bits y un tamaño de página de 4 KB. En este caso: • ¿Cuánta memoria puede direccionar un proceso? • ¿Cuánto espacio físico puede direccionarse? • ¿Cuántos marcos de página pueden llegar a existir en la memoria? • ¿Cuántos bits dedicados a página y desplazamiento habría en una dirección física? • ¿Cuántas entradas puede llegar a tener la tabla de páginas de un proceso? • ¿Cuántos bits son necesarios para almacenar una entrada en la tabla de páginas? Gestión de memoria 51

Ejercicio: 4) En los sistemas comerciales se han manejado tamaños de páginas entre 256

Ejercicio: 4) En los sistemas comerciales se han manejado tamaños de páginas entre 256 bytes y 16 megabytes. Un tamaño típico y clásico son los 4 KB de los procesadores x 86 de Intel, que vamos a tomar como caso para este ejercicio. En los x 86 el tamaño de una entrada en la tabla de páginas es de 32 bits (4 bytes). Bajo estas condiciones, supón que tenemos un proceso que tiene reservados 10 megabytes de memoria y calcula estos datos: • ¿Cuántas páginas necesita este proceso? • ¿Cuánto ocupa la tabla de páginas de este proceso? Gestión de memoria 52

Paginación de la TDP Dirección virtual D Dir P Memoria D M Directorio de

Paginación de la TDP Dirección virtual D Dir P Memoria D M Directorio de páginas RPBTP Dir RLTP Tabla 1 Tabla 2 Tabla 3 Tabla 4 Tabla 5 Tabla 6 Tabla 7 Tabla 8 D Tabla de páginas P Marco 1 Marco 2 Marco 3 Marco 4 Marco 5 Marco 6 Marco 7 Marco 8 Gestión de memoria 53

n n n Es posible combinar los esquemas de paginación y segmentación De este

n n n 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: l Segmentación paginada l 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 54

Memoria caché n Su empleo se justifica por la localidad de los programas. La

Memoria caché n 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 - L 1 (Se encuentra dentro del núcleo) - L 2 (En el procesador) - L 3 (En placa base) • 1 er. Nivel (del orden de 20 Kb). • 2 do. Nivel (del orden de 512 Kb a 2 Mb). n • 3 er. Nivel (del orden de 8 Mb). n n n Gestión de memoria 55

Tarea: Gestión de memoria 56

Tarea: Gestión de memoria 56

10. Gestión de memoria 57

10. Gestión de memoria 57