Download Tema 3. Gestión de la memoria Tema 3. Gestión de la memoria
Document related concepts
no text concepts found
Transcript
Tema 3. Gestión de la memoria Competencias: Comprender las funciones que debe desempeñar todo mecanismo que gestiona la memoria, identificando las ventajas e inconvenientes de los distintos esquemas de organización y su ámbito de aplicabilidad. Ser capaz de analizar el rendimiento de un sistema según la organización de memoria que disponga. Ser capaz de llevar a cabo un razonamiento crítico y lógico. Capacidad dialéctica, siendo capaz de argumentar y defender sus decisiones. Conseguir capacidad de abstracción. Ser capaz de enfrentarse a problemas nuevos recurriendo conscientemente a estrategias que han sido útiles en problemas resueltos anteriormente. Área de Lenguajes y Sistemas Informáticos (E.G.R.) Tema 3. Gestión de la memoria 1. Visión general. 1. 2. 2. Organización y gestión en sistemas monoprogramados. 1. 2. 3. 3. Conceptos relacionados con la organización y gestión de la memoria. Estrategias de administración del almacenamiento. Organización y gestión en entornos de monoprogramación. Protección. Overlays. Organización y gestión en sistemas multiprogramados. 1. Introducción. Grado de multiprogramación. 1. 2. 2. 4. Multiprogramación con intercambio a disco (Swapping). Organización de la memoria virtual. 1. 2. 3. 4. 5. Gestión de memoria con particiones fijas. Gestión de memoria con particiones variables. Conceptos básicos sobre memoria virtual. Paginación. (Actividad Segmentación. Paginación/segmentación. 3) Gestión de la memoria virtual: Paginación. 1. 2. 3. Algoritmos de sustitución de página. Estrategias de búsqueda. Evaluación de los sistemas paginados. Área de Lenguajes y Sistemas Informáticos (E.G.R.) 1. 2. 3. Liberación de página. Tamaño de página. Localidad. 1 1. Visión general (I) 1.1. Conceptos relacionados con la organización y gestión de la memoria. Funciones: 1. Reubicación. El espacio de memoria asignado a un proceso puede cambiar durante la vida del mismo, y ello conlleva realizar en cada momento la transformación de las direcciones lógicas indicadas por el programador a direcciones físicas. 2. Protección. Evitar que un proceso altere el contenido de las posiciones asignadas a otros procesos. 3. Utilización compartida. Permitir que varios procesos puedan acceder a la misma zona de memoria de forma controlada. 4. Organización lógica. Reflejar la estructura lógica de los programas mediante una división en bloques del espacio de direcciones. Ventajas: codificar independientemente los diferentes bloques que componen los programas; proporcionar fácilmente distintos grados de protección a los diferentes bloques; introducir mecanismos que permitan que diferentes procesos compartan bloques de memoria. 5. Organización física. Organizar el almacenamiento a dos niveles. Área de Lenguajes y Sistemas Informáticos (E.G.R.) 1. Visión general (II) 1.2. Estrategias de administración del almacenamiento. 1. Estrategias de búsqueda: deciden cuándo obtener el siguiente fragmento de programa, o de datos, para insertarlo en la memoria principal. Estrategias de búsqueda por demanda: el momento viene dado cuando algún programa en ejecución hace referencia al citado fragmento; Estrategias de búsqueda anticipada: predicen por donde irá el control del programa en el paso siguiente para decidir el momento. 2. Estrategias de colocación: deciden donde va a ser colocado un nuevo programa, o un trozo de programa o de datos. 3. Estrategias de reposición: deciden que fragmento de programa, o de datos, se va a desplazar, para dejar sitio a los programas nuevos o a otros fragmentos. Área de Lenguajes y Sistemas Informáticos (E.G.R.) 2 2. Organización y gestión en sistemas monoprogramados (I) 2.1. Organización y gestión en entornos de monoprogramación. Memoria Principal Sistema Operativo Trabajo completo El tamaño del programa está limitado por la cantidad de memoria principal menos el espacio ocupado por el S. O.. Sin usar 2.2. Protección. La protección del S. O. se realiza mediante un registro de límites, perteneciente a la CPU, que contiene la dirección más alta (o más baja) utilizada por el S. O.. Área de Lenguajes y Sistemas Informáticos (E.G.R.) 2. Organización y gestión en sistemas monoprogramados (II) 2.3. Overlays. Si se desea ejecutar un trabajo cuyo tamaño es mayor que el espacio disponible de memoria principal, será necesario usar programación con overlays (recubrimientos), que consiste en dividir el trabajo en capas independientes, de forma que en la memoria principal solo se tenga la capa que se está ejecutando en ese momento. Memoria Principal Sistema Operativo Trozo (código y datos) que deben permanecer en memoria principal durante la ejecución 1 2 3 Área de recubrimiento Fase de Inicialización Fase de Fase de Procesamiento Salida Área de Lenguajes y Sistemas Informáticos (E.G.R.) 3 3. Organización y gestión en sistemas multiprogramados (I) 3.1. Introducción. Grado de multiprogramación. La memoria principal se divide en una serie de particiones, conteniendo cada partición un trabajo completo. Estas particiones se protegen mediante los registros de límites. Memoria Principal 0 a Sistema Operativo Partición 1 b Partición 2 C. P. U. 2 Proceso activo b Límite inferior c Límite superior c Partición 3 d Estos registros también se usan para la relocalización: a=b+d a: dirección absoluta; b: base; d: dirección relativa Área de Lenguajes y Sistemas Informáticos (E.G.R.) 3. Organización y gestión en sistemas multiprogramados (II) 3.1.1. Gestión de memoria con particiones fijas. (I) Las particiones son de tamaño fijo, conteniendo cada partición un sólo trabajo completo. Modos de carga: Carga fija o absoluta. Memoria Principal 0 Cola de trabajos para la partición 1 … Sistema Operativo Partición 1 Cola de trabajos para la partición 2 … b Partición 2 Cola de trabajos para la partición 3 … a c Partición 3 d Área de Lenguajes y Sistemas Informáticos (E.G.R.) 4 3. Organización y gestión en sistemas multiprogramados (III) 3.1.1. Gestión de memoria con particiones fijas. (II) Carga relocalizable. Memoria Principal Sistema Operativo Partición 1 a b Cola de trabajos … 0 Partición 2 Partición 3 c d Problema: desperdicio de memoria debido a que el tamaño de las particiones esta establecido a priori (fragmentación interna). Área de Lenguajes y Sistemas Informáticos (E.G.R.) 3. Organización y gestión en sistemas multiprogramados (IV) 3.1.2. Gestión de memoria con particiones variables. (I) Cada trabajo ocupa sólo el espacio que necesita. Trabajo D (15 K) Trabajo C (12 K) Trabajo B (20 K) Trabajo A (10 K) Memoria Principal Memoria Principal Memoria Principal Memoria Principal Sistema Operativo Sistema Operativo Sistema Operativo Sistema Operativo Trabajo A (10K) Trabajo A (10K) Trabajo A (10K) Trabajo B (20K) Trabajo B (20K) Libre Libre Trabajo C (12K) Libre Libre Área de Lenguajes y Sistemas Informáticos (E.G.R.) 5 3. Organización y gestión en sistemas multiprogramados (V) 3.1.2. Gestión de memoria con particiones variables. (II) Técnicas: Combinación de huecos: Memoria Principal Sistema Operativo Trabajo A (10K) Memoria Principal Termina el Trabajo A Sistema Operativo Libre 1 (30K) Libre 1 (20K) Trabajo C (12K) Trabajo C (12K) Libre 2 (25K) Libre 2 (25K) Área de Lenguajes y Sistemas Informáticos (E.G.R.) 3. Organización y gestión en sistemas multiprogramados (VI) 3.1.2. Gestión de memoria con particiones variables. (III) Compactación de memoria: Memoria Principal Sistema Operativo Llega el Trabajo D (12 K) Memoria Principal Sistema Operativo Libre 1 (5 K) Trabajo A (10 K) Trabajo A (10 K) Trabajo B (12 K) Libre 2 (6 K) Trabajo C (9 K) Trabajo B (12 K) Libre 3 (8 K) Libre (22 K) Trabajo C (9 K) Libre 4 (3 K) Área de Lenguajes y Sistemas Informáticos (E.G.R.) 6 3. Organización y gestión en sistemas multiprogramados (VII) 3.1.2. Gestión de memoria con particiones variables. (IV) Estrategias de colocación: Memoria Principal Sistema Operativo Última partición creada Trabajo A Hueco 1 (20K) Trabajo D Hueco 2 (25K) Trabajo C Hueco 3 (18K) Trabajo B 1. Estrategia de primer ajuste: Lista de Hueco 1 Hueco 2 huecos Hueco 3 2. Estrategia de siguiente ajuste: Lista de Hueco 2 Hueco 3 huecos Hueco 1 3. Estrategia de mejor ajuste: Lista de Hueco 3 Hueco 1 huecos Hueco 2 4. Estrategia de peor ajuste: Lista de huecos Hueco 2 Hueco 1 Hueco 3 Área de Lenguajes y Sistemas Informáticos (E.G.R.) 3. Organización y gestión en sistemas multiprogramados (VIII) 3.2. Multiprogramación con intercambio a disco (Swapping). Se trabaja con los dos niveles de almacenamiento para no limitar el número de procesos, manteniendo los programas de los procesos que no están activos en memoria secundaria. Para conseguir esto, se catalogan los procesos entre los que deben ser residentes en memoria principal y los que pueden pasar a disco. Entre estos últimos se puede usar prioridades; de forma que un proceso no pasará a disco si existe otro cuya prioridad le obliga a que pase antes. Área de Lenguajes y Sistemas Informáticos (E.G.R.) 7 4. Organización de la memoria virtual (I) 4.1. Conceptos básicos sobre memoria virtual (I). Definición: memoria virtual (Fotheringham, 1961) es un método que permite direccional un espacio de almacenamiento mucho mayor que el disponible en la memoria principal. Para ello, el S. O. usa memoria a dos niveles y particiona los trabajos en bloques, manteniendo en memoria principal aquellos bloques que se están usando. Memoria secundaria Memoria principal Área de Lenguajes y Sistemas Informáticos (E.G.R.) 4. Organización de la memoria virtual (II) 4.1. Conceptos básicos sobre memoria virtual (II). Tamaño de los bloques: con el mismo tamaño: páginas. Paginación. con diferentes tamaños: segmentos. Segmentación. Segmentos de tamaño variable de páginas de tamaño fijo. Paginación/Segmentación. Definiciones: 1. Direcciones virtuales: las direcciones a las que se refiere un proceso durante su ejecución. Espacio de direcciones virtuales. 2. Direcciones reales: las direcciones que tiene la memoria principal. Espacio de direcciones reales. Los mecanismos de traducción dinámica de direcciones (DAT) se encargan de transformar las direcciones virtuales a direcciones reales, basándose en que direcciones contiguas dentro del espacio de direcciones virtuales, no tienen por qué ser contiguas dentro del almacenamiento real. Para realizar esta transformación, los DAT mantienen por cada proceso un mapa que indica qué direcciones virtuales se encuentran en memoria principal y dónde. Para que este mapa no sea muy grande las transformaciones se realizan a nivel de bloque. Área de Lenguajes y Sistemas Informáticos (E.G.R.) 8 4. Organización de la memoria virtual (III) 4.1. Conceptos básicos sobre memoria virtual (III). Traducción de una dirección virtual a una dirección real: Num. bloque Desplazamiento Registro a Dirección virtual b d origen v = (b, d) a+b + a b b’ + Tabla de mapa de bloques b’ + d r Dirección real r = b’ + d Área de Lenguajes y Sistemas Informáticos (E.G.R.) 4. Organización de la memoria virtual (IV) 4.1. Conceptos básicos sobre memoria virtual (IV). Protección: Memoria Principal Sistema Operativo Claves de protección 1 Trabajo A. Bloque 2. 2 Trabajo B. Bloque 3. 1 Trabajo A. Bloque 1. C. P. U. Clave de protección 2 0 3 Trabajo C. Bloque 2. 2 Trabajo B. Bloque 2. Área de Lenguajes y Sistemas Informáticos (E.G.R.) 9 5. Gestión de la memoria virtual: Paginación (I) 5.1. Algoritmos de sustitución de página (I). Principio de optimización: para obtener un rendimiento óptimo se debe desplazar aquella página que no se va a usar en el futuro durante el período de tiempo más largo. Estrategias: A. Reposición de página al azar. Se elige al azar la página a desplazar, por lo tanto supone poca sobrecarga y no es discriminatoria. B. Reposición por el sistema de primero en entrar – primero en salir (FIFO). Se desplaza la página que lleva más tiempo almacenada en memoria principal. Se basa en que la página que lleva menos tiempo es porque se ha referenciado hace poco, y por tanto la que lleva más tiempo es porque ya no se usa. C. Reposición de página menos – recientemente – usada (LRU). Se desplaza la página que no ha sido usada durante el mayor período de tiempo. Para ello, es necesario ponerle un sello de tiempo a la página cada vez que sea referenciada, suponiendo una sobrecarga adicional importante. Área de Lenguajes y Sistemas Informáticos (E.G.R.) 5. Gestión de la memoria virtual: Paginación (II) 5.1. Algoritmos de sustitución de página (II). D. Reposición de página menos – frecuentemente – usada (LFU). Se desplaza la página que se ha usado con menos frecuencia, por lo tanto cada página posee un contador de utilización. E. Reposición de página no usada – recientemente (NUR). Se basa en que: la página que no ha tenido un uso reciente tiene poca probabilidad de ser usada en el futuro y puede por tanto ser reemplazada; la sobrecarga es menor si se reemplaza una página que no ha cambiado desde que se cargo en memoria principal, ya que no es necesario llevarla al almacenamiento secundario. Para llevar a cabo esta estrategia cada página va a tener dos bits hardware: bit referenciado y bit modificado o bit sucio. La estrategia NUR elige la página a desplazar siguiendo el orden de los siguientes grupos: 1º no referenciado no modificado Cada cierto tiempo se ajusta todos los bits 2º referenciado no modificado de referencia a 0, apareciendo un nuevo grupo no referenciado modificado. 3º referenciado modificado Área de Lenguajes y Sistemas Informáticos (E.G.R.) 10 5. Gestión de la memoria virtual: Paginación (III) 5.2. Estrategias de búsqueda (I). 1. Paginación por demanda. Ninguna página debe ser traída del almacenamiento secundario al principal hasta que no sea referenciada de forma explícita por el proceso en ejecución. Razones: el camino que tomará la ejecución de un programa no se puede predecir con exactitud, se garantiza que las páginas que se llevan a la memoria principal son realmente las únicas que los procesos necesitan; la sobrecarga es inexistente. Inconveniente: el proceso debe esperar a que se transfiera a la memoria principal una a una cada página nueva que referencia. Área de Lenguajes y Sistemas Informáticos (E.G.R.) 5. Gestión de la memoria virtual: Paginación (IV) 5.2. Estrategias de búsqueda (II). 2.Paginación anticipada. El S. O. intenta predecir las páginas que un proceso va a necesitar y precargar estas páginas cuando hay espacio disponible, de forma que mientras que el proceso ejecuta sus páginas actuales, el sistema carga nuevas páginas que estarán disponibles cuando el proceso las pida. Se intenta reducir el tipo de espera de los procesos. 5.3. Evaluación de los sistemas paginados (I). 5.3.1. Liberación de página. Cuando se hace evidente que una página ya no se necesita se debe liberar el marco de página donde esta contenida. Formas: 1. de forma voluntaria: la liberación es realizada por el usuario mediante mandatos; 2. de forma automática: la responsabilidad recae en los compiladores y sistemas operativos. Área de Lenguajes y Sistemas Informáticos (E.G.R.) 11 5. Gestión de la memoria virtual: Paginación (V) 5.3. Evaluación de los sistemas paginados (II). 5.3.2. Tamaño de página. Fragmentación Fragmentación de tablas interna Número de transferencias Desperdicio (información no usada) Páginas pequeñas Páginas grandes Área de Lenguajes y Sistemas Informáticos (E.G.R.) 5. Gestión de la memoria virtual: Paginación (VI) 5.3. Evaluación de los sistemas paginados (III). 5.3.3. Localidad. Definición: la localidad se refiere al hecho de que los procesos tienden a hacer referencias en patrones no uniformes pero si muy localizados. Tipos: 1. localidad temporal: la zona de memoria referenciada recientemente tiene una alta probabilidad de ser referenciada en un futuro próximo; 2. localidad en el espacio: una vez hecha una referencia a una zona determinada, es probable que las zonas cercanas también sean referenciadas. Consecuencia:un programa puede ser ejecutado eficientemente, si se tiene en memoria principal un subconjunto de páginas de dicho programa que son las preferidas. Teoría del conjunto de trabajo del comportamiento de un programa (Denning): es el conjunto de páginas a las cuales el proceso hace referencia activamente. Este conjunto de trabajo cambia durante la ejecución del proceso, por lo tanto cualquier suposición sobre el tamaño y el contenido del conjunto de trabajo inicial de un proceso no se puede aplicar a los sucesivos conjuntos de trabajo de dicho proceso. Área de Lenguajes y Sistemas Informáticos (E.G.R.) 12