martes, 28 de noviembre de 2017

Gestión de Memoria

UNIX es un sistema operativo diseñado para ser instalado sobre una gran variedad de máquinas. Ya que la gestión de la memoria es muy dependiente del soporte hardware disponible, nos encontraremos con que existen diferentes formas de gestión de memoria en UNIX.

El proceso de gestión de memoria se basa en el complejo trabajo del intercambio o conocido también como swapping, junto con la memoria virtual, la paginación por demanda, el reemplazo de páginas y la gestión de memoria del kernel.

El swapping es el proceso de intercambiar un proceso que se encuentre en la memoria y otro que está pidiendo ser ejecutado, es decir, si queremos ejecutar algún programa y este no encuentra espacio disponible, se realiza un intercambio en la memoria con algún proceso que no se esté utilizando o ejecutando en ese momento.

Cuando Unix opera en máquinas más grandes, suele disponer de manejo de memoria de paginación por demanda. Un sistema de paginación por demanda ofrece muchas ventajas en cuanto a flexibilidad y agilidad en la atención concurrente de múltiples procesos y proporciona, además, memoria virtual, es decir, la capacidad de trabajar con procesos mayores que el de la memoria central. Estos esquemas son bastante complejos y requieren del apoyo de hardware especializado. También requieren de ciertas estructuras que permiten la gestión de memoria utilizando paginación por demanda, las cuales son; tablas de páginas, que permiten acceder a la memoria virtual de cada proceso, generando así una tabla por cada proceso, en la cual podremos encontrar la dirección lógica de cada proceso y así poder hallar cada página de manera organizada y rápida. Los descriptores de bloques de discos, acá podemos encontrar el proceso de copia de disco de una página virtual, contando también con la facultad de poder enumerar todos los dispositivos lógicos permitiendo así el uso de uno o más dispositivos para el intercambio (swapping). También utilizando la tabla de marcos de páginas que guarda información acerca del estado de la página (asignada), el número de procesos que referencian el marco, y el dispositivo que contiene una copia de la página y el número de bloque. Y la tabla de uso de swap, que permite que cada entrada a la página esté relacionada con cada dispositivo lógico o swap.

Por último encontraremos el gestor de memoria del kernel, el cual implica la asignación de memoria dinámica, la cual es usada cuando dicho kernel ejecuta, crea y destruye pequeñas tablas de páginas y buffers. Pero esto implica dos procesos el de asignación y liberación, los cuales son la base de este gestor y por lo tanto al momento de ser ejecutados tienen que ser de manera sumamente rápida para que así se pueda ver la mejora de la memoria en el sistema operativo UNIX. 

Análisis realizado por: Angely Salazar

2 comentarios:

  1. que es el algoritmo del reloj de dos agujas y para que se utiliza?
    iOS

    ResponderEliminar
    Respuestas
    1. El algoritmo del reloj de las dos agujas utilizará un bit de referencia en la entrada de la tabla de páginas para cada página de la memoria que no esté bloqueada para ser expulsada. Éste bit se pone en 0 cuando la página entra por primera vez y a 1 cuando se refiere a una página para una lectura o una escritura. Una aguja del algoritmo del reloj, la aguja frontal, recorre la lista de páginas elegibles y pone el bit a referencia a 0 en cada página. Algún tiempo más tarde, la aguja trasera recorre la misma lista y comprueba el bit de referencia, si el bit está en 1 indica que la página se ha referenciado desde que la aguja frontal hizo el recorrido y se ignora el marco. Si el bit todavía se encuentra en 0, entonces la página no se ha referenciado en el intervalo de tiempo entre la visita de la aguja frontal y la aguja trasera y se pone a éstas páginas en una lista para ser reemplazadas. En otras palabras, el algoritmo se direcciona a que cuando una página tiene un bit asignado (igual a cero) y pasa por esa página la aguja frontal y a un cierto momento pasa la aguja trasera, y no se han generado cambios en el bit hace referencia que dicha página puede ser sacada y ser reemplazada por otra siempre y cuando el bit no haya sido modificado a 1 lo cual indica que esa página a sido utilizada para una lectura o una escritura.

      Eliminar