ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Gestión De La Memoria Virtual


Enviado por   •  22 de Enero de 2012  •  4.753 Palabras (20 Páginas)  •  751 Visitas

Página 1 de 20

Gestión de memoria

El sistema de memoria virtual de los actuales computadores surgió para liberar al programador de una serie de tareas relacionadas con el uso que los programas debían realizar con la memoria. La memoria virtual automatiza la gestión entre los dos niveles principales de la jerarquía de memoria: memoria principal y disco. Antes de entrar en los mecanismos específicos de la memoria virtual revisaremos una serie de funciones que deben incorporarse en la gestión de memoria.

Espacio de Direcciones Lógicas vs. Físicas

• El concepto de espacio de direcciones lógicas que esta ligado a un espacio de direcciones físicas separadas es central para la apropiada administración de la memoria.

– Dirección Lógica – generada por el CPU; también

conocida como dirección virtual.

– Dirección Física – direcciones vistas por la unidad de

memoria.

• Las direcciones Lógicas y Físicas son las mismas en el tiempo de compilación y en el tiempo de carga.

• En los esquemas de vinculación (liga) de direcciones; la dirección Lógica (Virtual) y la dirección Física difieren en el tiempo de ejecución .

1.1. Solapamiento (overlay)

El tamaño de la memoria principal disponible en los computadores ha aumentado de forma sostenida desde sus orígenes. Sin embargo, el tamaño de los programas ha crecido más rápidamente, por lo que la necesidad de ejecutar programas que no cabían en la memoria principal ha sido una constante en la historia de los computadores. Una forma de superar esta limitación es el uso de la técnica de solapamiento (overlay). Esta técnica divide en módulos el programa cuyo tamaño sobrepasa la capacidad de la memoria principal, y que reside por tanto en memoria secundaria (disco). Después se introducen en los lugares adecuados de cada módulo, y al margen de la lógica propia del programa, las instrucciones de E/S necesarias para cargar en memoria principal aquellos módulos cuyas instrucciones deban ejecutarse o cuyos datos vayan a ser referenciados en el inmediato futuro. Es decir, el propio programa se ocupa de cargar por anticipado los módulos que van a ser referenciados.

Con este mecanismo se puede superar la limitación del tamaño de la memoria principal, pero tiene el inconveniente de hacer depender el programa de las dimensiones concretas de la memoria del computador para el que se codifica, obligando a revisar la división modular del programa cuando cambie la configuración de la máquina.

1.2. Reubicación

En sistemas con multiprogramación se necesita que varios programas residan simultáneamente en memoria. El tiempo de CPU se va distribuyendo entre ellos de acuerdo a una política de prioridades determinada. La ubicación en memoria de los programas no se conoce en

tiempo de compilación, por lo que no se pueden generar direcciones absolutas. Para conseguir una asignación dinámica de memoria en tiempo de ejecución se utilizan registros de reubicación. La dirección efectiva se obtiene sumando a la dirección generada por el compilador el contenido del registro de reubicación asignado al programa.

1.3. Paginación

La paginación también surgió de la necesidad de mantener más de un programa residente en memoria cuando la capacidad de ésta es inferior a la suma de los tamaños de los programas. Se trata de un mecanismo automático de solapamiento múltiple que practica el Sistema Operativo

para hacer posible la multiprogramación. El espacio de memoria principal se divide en bloques de tamaño fijo denominados páginas. Los programas se dividen también en páginas y residen en el disco. El Sistema Operativo se encarga de asignar páginas físicas a los programas en ejecución (multiprogramación). De esta forma el tiempo de CPU puede distribuirse entre los programas residentes.

1.4. Protección

Un papel importante de la gestión de memoria es la protección. Si varios programas comparten la memoria principal debe asegurarse que ninguno de ellos pueda modificar el espacio de memoria de los demás. Como casi todos los lenguajes permiten el uso de punteros dinámicos, los test en tiempo de compilación no son suficientes para garantizar la protección. Esta debe mantenerla en tiempo de ejecución el sistema de gestión de memoria (MMU).

1.5. Compartición

Esta función parece estar en contradicción con la anterior. Sin embargo, con frecuencia los programas de un sistema multiprogramado deben poder compartir y actualizar información, por ejemplo, un sistema de bases de datos. Además, no es necesario tener varias copias de una rutina si se permite que todos los programas accedan a una misma copia.

2. Memoria virtual

El sistema de memoria virtual implementa todas las funciones anteriores de forma integrada.

En un computador con memoria virtual (MV) las direcciones de los programas (generadas

por la CPU) hacen referencia a un espacio mayor que el espacio físico realmente disponible en la memoria principal o memoria física (MF).

Los programas operan virtualmente con un tamaño físico de memoria principal mucho mayor que el realmente disponible. En estas máquinas hay que diferenciar, pues, entre el espacio de direcciones virtuales generado por la CPU y el espacio de direcciones físicas o reales existentes en memoria principal y determinado por el número de líneas del bus de direcciones.

El espacio virtual se soporta sobre un disco con la ayuda de un mecanismo de traducción que genera la dirección física de memoria principal a partir de la virtual. En la siguiente figura hemos representado el mecanismo de traducción de direcciones virtuales (DV) a direcciones físicas (DF).

Tanto la memoria principal como la memoria del disco se dividen en páginas de igual tamaño. El número de páginas de la memoria virtual en general es mayor que el número de páginas disponibles de la memoria física. Por este motivo, en cada momento sólo las copias de un conjunto de páginas virtuales del programa residen en la memoria física. Este conjunto recibe el nombre de conjunto de trabajo o conjunto activo, y resulta relativamente estable a lo largo del tiempo, debido a la localidad referencial que manifiestan los programas. Esta es la clave del buen funcionamiento de la memoria virtual, al igual que ocurría con la memoria cache.

Los bits de una DV se consideran divididos en dos campos, el número de página virtual (NPV) los más significativos, y el desplazamiento dentro de la página (DP), los menos significativos. El número de bits del campo DP lo determina el tamaño de página (nº de bits de DP = log2 tamaño de página). El

...

Descargar como (para miembros actualizados)  txt (29 Kb)  
Leer 19 páginas más »
Disponible sólo en Clubensayos.com