Gestión de memoria Rina Arauz.

Slides:



Advertisements
Presentaciones similares
Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Advertisements

Almacenamiento del sistema de archivos La gestión de archivos es uno de los componentes mas visibles de un sistema operativo. Las computadores pueden almacenar.
GESTION DE MEMORIA.
III - Gestión de memoria
Administración de memoria
Sistemas Operativos Gestión de Memoria.
SISTEMAS OPERATIVOS GESTION DE MEMORIA INTEGRANTES Lizeth Chandi
Sistema operativo Componentes de un sistema operativo
Organización y arquitectura de sistemas de memoria
III - Gestión de memoria
3.4.- Administración de Memoria Virtual.
Organización de la Memoria.
EQUIPO ·# 3 SISTEMAS OPERATIVOS
Microprocesadores para comunicaciones Escuela Técnica Superior de Ingenieros de Telecomunicación Organización y estructura de las memorias caché.
Introducción a los Sistemas Operativos Memoria Virtual
Modelo de procesos de dos estados
Sebastián Sánchez Prieto
MEMORIA 1.
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
MEMORIA VIRTUAL PAGINACIÓN
Windows XP sp3.
ADMINISTRACIÓN DE MEMORIA
Algorítmo de Mapeo Directo
Robiro A. Asuaje L.23/08/20141 Organización de la Memoria SISTEMAS OPERATIVOS. Universidad Centro-Occidental “ Lisandro Alvarado ” Decanato de Ciencias.
Sistemas Operativos: El Libro Azul
Direcciones físicas y direcciones virtuales (lógicas)
Arquitectura del Computador
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Administración de memoria
Administración del espacio
UNIDAD IV ADMINISTRACIÓN DE SISTEMAS CONCEPTOS DE GESTIÓN Y ALMACENAMIENTO.
PAGINACIÓN Y SEGMENTACIÓN
Estructura y Tecnología de Ordenadores Noviembre 2004.
Administración de Memoria Memoria Virtual
Administración de la memoria
Las personas se enfrentaron por primera vez con programas que eran demasiados grandes para caber en la memoria disponible. La solucion fue dividir el programa.
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Administración de Memoria
Contenido Estructura del computador Ejecución de instrucciones
Capítulo 7 Gestión de memoria.
Administración de Memoria no contigua
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 21 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
COMPONENTES DEL SISTEMA OPERATIVO.
Memoria virtual.
Memoria Principal Memoria de acceso aleatorio. La unidad de memoria y jerarquías de almacenamiento Unidades de Almacenamiento. La unidad de memoria es.
Gestión de Memoria.
Introducción a los SOs.
Teoría de Sistemas Operativos Administración de Archivos.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Estructura de los Sistemas Operativos
Gestión de Memoria.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Teoría de Sistemas Operativos Memoria Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
3.2.1 Administración de almacenamiento
Elementos y tipos de sistemas operativos
Arquitectura de Computadores I
Memoria Virtual Msc. Rina Arauz.
Gestión de Memoria – Parte 2
Arquitectura y Sistemas Operativos Gestión de Memoria Parte 1 1 Gestión de Memoria – Parte 1 Agenda Parte 1 –RequisitosRequisitos –EvoluciónEvolución –Carga.
Arquitectura de Computadores Clase 18 Memoria Caché: Fundamentos IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
Administración de Memoria Conceptos Swapping Asignación Continua Paginación Segmentación Segmentación con Paginación.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
1 Tema 10: Administración de la Memoria Sistemas Operativos (Tema 13 en apuntes prof. Rovayo)
Sistemas de archivos. Sistemas de archivos 2 Objetivo del SdA  Ocultar al usuario los detalles relativos al almacenamiento de información en dispositivos.
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Transcripción de la presentación:

Gestión de memoria Rina Arauz

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.

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

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

1 Dirección Palabra Posición de Memoria Memoria Celda 000 001 1 010 011 100 101 110 111 Palabra 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 Posición de Memoria Memoria Celda

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.

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 Registros internos del procesador A medida que el tiempo de acceso aumenta, el coste por bit disminuye y la capacidad de almacenamiento aumenta. Menor rapidez mayor tamaño y menor precio Mayor rapidez menor tamaño y mayor precio Caché on-chip L1 Caché externa L2 Memoria principal Discos magnéticos

Tiempo de acceso Capacidad

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

Dirección virtual/Físicas Otros objetos Bibliotecas dinámicas Compilador o Ensamblador Programa fuente Programa objeto Programa ejecutable Enlazador Cargador Bibliotecas Memoria El problema de traducir las direcciones lógicas a direcciones físicas se llama reubicación.

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.

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

Máquina desnuda Memoria Usuario 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

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

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).

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.

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.

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.

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

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

Tabla de descripción de particiones 0K 100K 400K 500K 750K 900K 1000K Sistema operativo Pi Pj Pk 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 100K 300K LIBRE 400K 100K ASIGNADA 500K 250K ASIGNADA 700K 150K ASIGNADA 900K 100K LIBRE 1 2 3 4 5

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

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)

Segmentación (esquema lógico) Espacio de direccionamiento real Espacio de direccionamiento virtual Código Memoria física Dátos Dátos MMU Datos compartidos Datos compartidos Pila Código Pila

Segmentación (HW) < + Procesador D Memoria S D S ¡¡¡ Error !!! Tabla de segmentos RPBTS Base 1 Límite 1 Base 2 Límite 2 S Base 3 Límite 3 Base 4 Límite 4 Base 5 Límite 5 RLTS Base 6 Límite 6 Base 7 Límite 7 Base 8 Límite 8 Base 5

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

Paginación (esquema lógico) Espacio de direccionamiento virtual Espacio de direccionamiento real Memoria física Código A B B MMU C Páginas D D Marcos E F G A C

Paginación (HW) Procesador D Memoria P D M D P 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

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

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

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

Segmentación paginada (HW) Dirección virtual Memoria S P D M D Tabla de segmentos + RPBTS Tabla de páginas S RLTS Base de la tabla de páginas

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).

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

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 =

Políticas de ubicación Correspondencia directa (I): Dirección de MP Etiqueta Bloque de MCa Palabra 10 bits 7 bits 3 bits Memoria principal Bloque 0 Bloque 1 . Bloque 127 Bloque128 Bloque 129 Bloque 131.071 Memoria caché Etiqueta (B0) Etiqueta (B1) Etiqueta (B2) . Etiqueta (B127) Bloque 0 Bloque 1 Bloque 2 Bloque 127 Acierto Fallo Comparador Palabra enviada al procesador

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

Memoria cache Políticas de ubicación Correspondencia asociativa (I): Memoria principal Bloque 0 Bloque 1 . Bloque 127 Bloque128 Bloque 129 Bloque 131.071 Memoria caché Bloque 2 Acierto Etiqueta (B0) Etiqueta (B1) Etiqueta (B2) Etiqueta (B127) Fallo = Dirección de MP Etiqueta Palabra 17 bits 3 bits Palabra enviada al procesador

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

Memoria cache Políticas de ubicación Correspondencia asociativa por conjuntos (I): Memoria principal Fallo Acierto Comparador 0 Comparador 1 Memoria caché Etiqueta (B127) Etiqueta (B0) Etiqueta (B1) Etiqueta (B2) Etiqueta (B3) . Etiqueta (B126) C0 C1 C63 Bloque 0 Bloque 1 Bloque 2 Bloque 3 Bloque 126 Bloque 127 Palabra enviada al procesador . . . Bloque 63 Bloque 64 Bloque 65 Bloque128 Bloque 129 Bloque 131.071 Dirección de MP Etiqueta Conjunto de MCa Palabra 11 bits 6 bits 3 bits

Políticas de ubicación Correspondencia asociativa por conjuntos (II): 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 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

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

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.