Busca monografías, tesis y trabajos de investigación

Buscar en Internet 

       Revistas   Cursos   Biografías

rss feeds RSS / /

Gestion de Memoria

Resumen: Este documento describe la gestión de memoria por parte del sistema operativo dado que de él depende el mapa de memoria de un proceso durante la vida del mismo. Como la región de memoria está relacionada con el ejecutable se comenzará analizando la estructura de un archivo ejecutable.

Publicación enviada por Perses Crio




 


Tabla de contenidos

 

Generación de un ejecutable...... 3

Formato de un ejecutable...... 3

Mapa de memoria de un proceso 3

Memoria virtual. 4

Operaciones sobre las regiones de un proceso. 5

Creacion de una region.... 5


Introducción.

Este documento describe la gestión de memoria por parte del sistema operativo dado que de él depende el mapa de memoria de un proceso durante la vida del mismo. Como la región de memoria está relacionada con el ejecutable se comenzará analizando la estructura de un archivo ejecutable.

Generación de un ejecutable.

Usualmente la generación de un archivo ejecutable se da a partir de uno o más archivos de código fuente y está dividida en 2 fases, la primera de compilación, en donde se genera el código máquina u objeto y luego la etapa de montaje o linkedition en donde se agrupan los archivos objeto y se resuelven las referencias entre módulos formando el ejecutable.

Además de las referencias entre módulos pueden existir referencias a otros módulos denominados bibliotecas. Una biblioteca es un conjunto de módulos referenciados entre sí. Existen dos formas de referenciar a una biblioteca, una denominada estática, en donde al hacer la linkedition o montaje el código de la biblioteca pasa a formar parte del archivo ejecutable y una denominada dinámica en donde el montaje de la biblioteca se realiza en tiempo de ejecución. En éste último caso, durante el montaje no se incluye el código de la biblioteca en el ejecutable sino que se referencia al nombre de la misma. De ésta forma se reduce el tamaño final del archivo ejecutable y también se hace mucho más simple su mantenimiento.

Formato de un ejecutable.

Un archivo ejecutable está estructurado como una cabecera y un conjunto de sectores. La cabecera tiene información de control y en general un ejecutable tiene las siguientes secciones:

Código.

Datos con valor inicial.

Datos sin valor inicial.

Mapa de memoria de un proceso

El mapa de memoria no es algo homogéneo, sino que está formado por distintas regiones y segmentos. Las regiones iniciales se van a formar de acuerdo al formato del ejecutable.

Cada región es una zona contigua que tiene una dirección de comienzo y un tamaño, además tiene las siguientes características:

Soporte de la región, contenido inicial de la región.

Soporte en archivo

Sin soporte

Tipo de uso.

Privada, el contenido es solo accesible por el proceso que la contiene

Compartida, el contenido puede ser compartido por varios procesos

Protección.

Lectura.

Escritura.

Ejecución.

Tamaño fijo o variable.

 

Las regiones que presenta el mapa de memoria son:

Código. Región compartida de tamaño fijo de lectura/escritura.

Datos con valor inicial. Región privada de tamaño fijo de lectura/escritura.

Datos sin valor inicial. Región privada de tamaño fijo de lectura/escritura.

Pila. Región privada de lectura/escritura. Se usa para almacenar los registros de activación de las llamadas a funciones, por lo tanto el tamaño de la misma es variable, y crecerá cuando se llame a una función y decrecera cuando se regrese de la misma.

Heap. Este espacio es el que da soporte al espacio que se puede reservar en tiempo de ejecución. Por ejemplo en C se puede reservar espacio en tiempo de ejecución usando la funcion malloc.

Archivos proyectados.

Memoria compartida,

Pilas de threads.

Memoria virtual.

Los sistemas operativos modernos organizan la memoria de una forma jerarquica, entonces la técnica de memoria virtual es la que realiza la transferencia de información entre la zona principal y la secundaria.  La memoria secundaria está generalmente en un soporte de disco, dado que se implementa mediante un esquema de paginación o swap.

 

En este tipo de esquema el mapa de memoria de un proceso se considera dividido en páginas como también se considera que la memoria principal del sistema está dividida en zonas del mismo tamaño que se denominan marcos de página. La estructura que vincula la página con el marco es la tabla de páginas. Ésta tabla de páginas contiene la siguiente información:

Información de protección

Información de página válida

Indicación de página accedida

Indicación de página modificada

 

Además de la tabla de páginas el sistema operativo debe llevar una tabla de marcos de página que le permite conocer que marcos están libres y cuales no.

Cuando un proceso requiere una página que no esta en memoria, se produce un fallo de página y el sistema operativo recupera ésta de la memoria secundaria. Si en la memoria principal no hay marcos disponibles se utiliza un algoritmo denominado algoritmo de reemplazo el cual selecciona que página de la memoria principal se va a eliminar para dar lugar a la página nueva.

El algoritmo de reemplazo se puede implementar mediante FIFO o bien por el algoritmo de segunda oportunidad. En el caso del primer algoritmo se selecciona la página que lleva más tiempo en memoria principal, si bien es simple no tiene un buen rendimiento. El segundo en cambio, agrega una modificación en el algoritmo FIFO para asegurarse de no sacar de memoria principal una página que se usa mucho. Para ello verifica el bit de referencia a la página más antigua y si no esta activo reemplaza ésta página y en el otro caso pone a la página al final de la lista y desactiva el bit de referencia. En el caso que todas las páginas tengan su bit de referencia activo, entonces se comportaria como un FIFO puro.

 

Operaciones sobre las regiones de un proceso.

Creacion de una region.

Cuando se crea una region, no se le asigna memoria principal, puesto que se cargara por demanda. Todas las paginas de la region se marcan como no residentes. De esta forma, el primer acceso causarpa un fallo de pagina.

El sistema operativo actualiza la tabla de regiones para reflejar la existencia de la nueva y guarda la informacion de las caractersiticas de las paginas de la region rellando las entradas de la tabla de paginas de acuerdo a las mismas. Algunas de estas caracteristicas son relavantes a la MMU como por ejemplo la proteccion,



Valora este artículo 5   4   3   2   1

Comparte  Enviar a facebook Facebook   Enviar a menéame Menéame   Digg   Añadir a del.icio.us Delicious   Enviar a Technorati Technorati   Enviar a Twitter Twitter
Artículos Destacados