ESTADOS EN GESTION DE MEMORIA
ESTADOS EN GESTION DE MEMORIA
Mis enlaces favoritos
Curriculum vitae
Album de fotos
Mis aficiones
ESTADOS EN GESTION DE MEMORIA
Imagen
CONCEPTOS BASICOS

ENCADENAMIENTO
Consiste en juntar en un mismo espacio de direcciones módulos que han sido compilados por aparte y resolver las referencias externas entre ellos.
Tipo de encadenamiento al compilar, por ejemplo al utilizar las directivas de compilación #include en lenguaje C o uses en PASCAL. En este caso el Sistema Operativo no se ve directamente involucrado en el proceso pues este es responsabilidad del compilador.

Algunos de los sistemas operativos sólo permiten el Encadenamiento Estático, donde las bibliotecas del lenguaje del sistema son tratadas como cualquier otro módulo objeto y el cargador las combina con el contenido del programa binario. Con este tipo de encadenamiento, todos los programas del sistema necesitan incluir en su contenido ejecutable una copia de la biblioteca (librería) de su lenguaje (o por lo menos las rutinas a las que hacen referencia). Este requisito desperdicia espacio en disco y en memoria principal, lo que no ocurre con el Encadenamiento Dinámico en donde en el contenido binario se incluye un fragmento (stub) para cada referencia a una rutina de la biblioteca. Este fragmento es un pequeño trozo de código que indica cómo localizar la rutina de biblioteca residente en memoria. Al ejecutar este fragmento se reemplaza a sí mismo con la dirección de la rutina y la ejecuta. De esta manera, la siguiente vez que se llega a ese segmento de código, la rutina de biblioteca se ejecuta directamente, sin que el enlace dinámico suponga costos adicionales. En este esquema, todos los procesos que utilizan una biblioteca de lenguaje ejecutan sólo una copia del código de la biblioteca.

RECUBRIMIENTO
Para lograr ejecutar programas más grandes que la memoria, se hace necesario dividir el programa en módulos e ir haciendo recubrimientos entre ellos. Esto implica realizar operaciones de entrada/salida, lo que conlleva a que el tiempo de ejecución se incremente.
Lo que se sugiere es que el programa se divida en módulos separados (recubrimientos), que se cargan en un área de memoria al efecto, es decir se va pasando a pedazos (módulos) a memoria.

Existen dos tipos de recubrimiento:

El recubrimiento puede ser total (Chaining) o parcial (Overlay). En el primero un programa recubre totalmente a otro, ocupando toda la memoria asignada. En el segundo algunos procedimientos recubren a otros. El principal inconveniente de esta técnica es que no es transparente para el usuario. Éste debe especificar el orden en que se deben cargar los diferentes módulos y en el caso de Overlays, especificar además los módulos a reemplazar. Además se debe contar con un cargador dinámico.


IMPORTANTE

Muchos programas no necesitan todo el código al mismo tiempo, sino que se ejecutan por fases.
El programa se descompone en módulos separados (recubrimientos), que se cargan en un área de memoria al efecto.
Si se carga un recubrimiento, borra al que se encontraba ya cargado.
El programa de usuario es responsable de cargar recubrimientos según se necesiten.
El recubrimiento puede ser total (Chaining) o parcial (Overlay).









INTRODUCCION

En los computadores uno de los recursos más importantes es la memoria, la cual debe administrarse de una manera adecuada para lograr un mejor aprovechamiento de ésta y un mayor rendimiento del sistema. Esta función la lleva a cabo el Administrador de la Memoria, cuya tarea es asignar, liberar y proteger la memoria.

RELOCALIZACION
Consiste en ajustar las direcciones de un programa al sitio donde fue cargado, para que este pueda ser ejecutado.
Este proceso es indispensable para poder tener multiprogramación, puesto que el programa no va a ocupar las mismas posiciones de memoria.
IMPORTANTE:
Relocalizar es indispensable para que haya multitarea.Un proceso de usuario puede residir en cualquier parte de la memoria física. Por esto, aunque el espacio de direcciones del computador comience en 00000, no es necesario que la primera dirección del proceso de usuario sea 00000.

CARGA
La carga consiste en colocar un programa en memoria para que pueda ser ejecutado..

Cargador Compile and go (Compile y ejecute). Son los utilizados por los compiladores tipo Turbo (Pascal, C, Prolog, etc), que realizan todas las etapas enumeradas previamente, cuando la compilación se realiza directamente a la memoria.

Cargadores Absolutos. Existen en sistemas en los que los compiladores generan código absoluto (no relocalizable). De esta forma se obliga a que el programa siempre se deba cargar en las mismas posiciones de memoria, como ocurre en el anterior ejemplo.
Son relativamente simples pero no permiten tener multiprogramación


Los Cargadores Relocalizadores, se encargan de esta tarea, es decir de cargar un programa en cualquier sitio de la memoria. Para que esto sea posible es necesario contar con algún mecanismo de relocalización.

Cargadores Dinámicos. Cargan los procedimientos del programa dinámicamente durante su ejecución. Son necesarios en el caso de presentarse recubrimientos.



Todos los procesos que deseen ejecutarse deben pasar por una serie de estados en los cuales se les van asignando ciertos recursos; dentro de estos recursos se encuentra la memoria en la cual debe residir el proceso antes de que se le entregue el procesador.

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER
Entra a la mejor universidad de Cúcuta



MATERIAS
Aquí podrás encontrar más información:



Escríbeme
Me interesa tu opinión