martes, 17 de marzo de 2009

Gestión de Memoria

La Gestión de Memoria


Es el proceso mas importante de la computadora. La parte de la computadora encargada de tratar con este recurso es el gestor de memoria, este hace puente entre los requisitos de las aplicaciones y los requerimientos de hardware, esta es la parte del sistema operativo mas encargada del hardware.

En la multiprogramacion, el sistema operatico esta encargado de proporsionar los requerimientos que necesita cada proceso de manera que crea que tiene una maquina para el solo.

El gestor de memoria con el apoyo de hardware de gestion de memoria del procesador deberá repartir el almacenamiento existente generando un espacio de memoria independiente para cada porceso de manera tal que no ocurra ina interferencia coluntaria o involuntaria de cualquier proceso,

cabe destacar que a nivel de procesador se hara un reparto en el tiempo y en la memoria se trata de un reparto en el espacio. Estas acciones combinadas ofrecen a los programas una abstraccion de procesador virtual que les independiza del resto de los procesos.

Los objetivos principales para la gestion de memorias son los siguientes:

  1. Ofrecer a cada proceso un espacio logico propio.
  2. Proporcionar proteccion entre procesos.
  3. Permitir a los procesos compartan memoria.
  4. Dar soporte a las distintas regiones del procesos.
  5. Maximizar el rendimiento del sistema.
  6. Proporcionar a los procesos mapas de memorias muy grandes.
  7. Espacios logicos independientes.

Un archivo ejecutable incluye referencias a memorias, estas se encuentran en tre un rango de 0 a un valor maximo N

en este rpceso de traduccion cuando se le asigna un espacio de memoria a cada programa se realiza un proceso de traduccion donde este crea, un espacio logico (o mapa) independiente para cada proceso proyectandolo sobre la parte correspondiente de la memoria proncipal de acuerdo con una fucion de traducion:

traduccion(direccion logica)---> direccion fisica.

Dado que hay q aplicar funciones a cada una de las direcciones que genera el programa, es necesario que sea el procesador el encargado de realizar estas traduccion, la traduccion se lleva a cabo dentro de la unidad de gestion de memoria (MMU).

En algunois softwares antiguos que no disponian de hardware de traduccion, es realizar la reubicacion de las direcciones que contienen el programa en el momento de cargar la memoria. Con esta segunda solucion, no permite al programam o un fragmento del mismo se pueda mover en tiempo de ejecucion, lo cual este es un requisito de algunas de las tecnicas de gestion de memoria con la memoria virtal, ni asegura la proteccion entre procesos.

El sistema operatico al igual que otros procesos necesita del uso de la memoria, sin embargo no seria estricta la traduccion ya que el sistema operativo puede situarse de forma contigua al principio de la memoria eliminando esta necesidad.


Proteccion.

En un sistema de monoprogramamcion es necesario proteger al sistema operativo de los accesos que realiza el programa en ejecucion para evitar que, voluntaria o involuntariamente, pueda interferir en correcto funcionamiento del mismo. Para las personas que han trabajado en sistemas que un cumplan con el requisito de proteccion, como es el ejemplo de MS-DOS saben como un error en la programacion en una aplicación puede causar que todo el sistema colapse durante la ejecucion de misma con una alteracion de los datos o su estructura.

En un sistema con multiprogramacion el prblema se acentua ya que no solo hay que proteger al sistema operativo sino que tambien a los procesos entre si. Para lograr proteger estos tipos de sistema se necesita ayuda del hardware, puesto que es necesario validar cada una de las direcciones que genera el programa en tiempo de ejecucion.

No hay comentarios:

Publicar un comentario en la entrada