Con tecnología de Blogger.
RSS

GESTION DE MEMORIA PRINCIPAL




      Todo ordenador tiene una memoria principal que utiliza para albergar los programas en ejecución. En los sistemas operativos más sencillos, sólo hay un programa a la vez en la memoria. Para ejecutar un segundo programa, es preciso desalojar el primero y colocar el segundo en la memoria.

             Los sistemas operativos algo más sofisticados permiten que haya varios programas en la memoria al mismo tiempo. Para evitar que se interfieran (y que interfieran con el sistema operativo), es necesario algún tipo de mecanismo de protección. Aunque este mecanismo tiene que estar en el hardware, es controlado por el sistema operativo. El punto de vista anterior tiene que ver con la gestión y la protección de la memoria principal del ordenador. Un aspecto distinto, pero igualmente importante, relacionado con la memoria es la gestión del espacio de direcciones de los procesos. Normalmente, cada proceso tiene algún conjunto de direcciones que puede usar y que normalmente va desde 0 hasta algún máximo. En el caso más sencillo, la cantidad máxima de espacio de direcciones que tiene un proceso es menor que la memoria principal. De esa manera, un proceso puede llenar su espacio de direcciones habiendo suficiente espacio en la memoria principal para contenerlo. Sin embargo, en muchos ordenadores las direcciones son de 32 o 64 bits, lo que significa espacios de direcciones de 232 o 264 bytes, respectivamente


ORGANIZACION DE ALMACINAMIENTO

 

El almacenamiento principal, es un recurso relativamente caro, por lo que los diseñadores de sistemas operativos intentan optimizar su uso.  En los últimos años ha disminuido su costo, pero sigue siendo más caro en relación con el almacenamiento secundario, y las aplicaciones actuales requieren cantidades mayores de almacenamiento principal.

La organización del almacenamiento es la forma de considerar el almacenamiento principal, bajo los siguientes esquemas de organización:

-    sistemas de usuario único

-    multiprogramación con particiones fijas, con traducción y carga con reubicación

-    multiprogramación con particiones fijas, con traducción y carga absoluta

-    multiprogramación con particiones variables

-    sistemas de intercambio de almacenamiento

Sea cual sea el esquema de organización de la memoria que se adopte, hay que decidir qué estrategias de deben utilizar para obtener un rendimiento óptimo de la misma

ADMINISTRACION


           Es una tarea realizada por el sistema operativo que consiste en gestionar la jerarquía de memoria, en cargar y descargar procesos en memoria principal para que sean ejecutados. Para ello el sistema operativo gestiona lo que se conoce como MMU o Unidad de Administración de Memoria, el cual es un dispositivo hardware que transforma las direcciones lógicas en físicas.
            Su trabajo es seguir la pista de qué partes de la memoria están en uso y cuales no lo están, con el fin de poder asignar memoria a los procesos cuando la necesiten, y recuperar esa memoria cuando dejen de necesitarla, así como gestionar el intercambio entre memoria principal y el disco cuando la memoria principal resulte demasiado pequeña para contener a todos los procesos
 
  • En un sistema monoprogramado, la memoria principal se divide en dos partes: una parte para el sistema operativo (monitor residente, núcleo) y otra parte para el programa que se ejecuta en ese instante. En un sistema multiprogramado, la parte de "usuario" de la memoria debe subdividirse aún más para hacer sitio a varios procesos. La tarea de subdivisión la lleva a cabo dinámicamente el sistema operativo y se conoce como gestión de memoria. 

  • En un sistema multiprogramado resulta vital una gestión efectiva de la memoria. Si sólo hay unos pocos procesos en memoria, entonces la mayor parte del tiempo estarán esperando a la E/S y el procesador estará desocupado. Por ello, hace falta repartir eficientemente la memoria para meter tantos procesos como sea posible.

 

JERARQUIA


Se refiere a los diferentes medios de almacenamiento. Pueden ser sólo dos: disco duro y disco óptico, o bien disco duro y cinta. Más usual son tres: disco duro, disco óptico y cinta. En todos los casos, los medios removibles se manejan en forma automática por los dispositivos robóticos correspondientes: un jukebox para discos ópticos, o bien una biblioteca automatizada o autocargardor para cinta.

Los programas y datos tienen que estar en la memoria principal para poder ejecutarse o ser referenciados. Los programas y datos que no son necesarios de inmediato pueden mantenerse en el almacenamiento secundario. El almacenamiento principal es más costoso y menor que el secundario pero de acceso más rápido.

Los sistemas con varios niveles de almacenamiento requieren destinar recursos para administrar el movimiento de programas y datos entre niveles (ver Figura). 

PARTICIONES

Es el nombre que recibe cada una de las divisiones en una sola unidad física de almacenamiento de datos dándole a cada partición un propio sistema de archivo llamado formato, la gran mayoría de los sistemas operativos reconocen, utilizan y manipulan a una partición como un disco físico independiente sabiendo que están en un solo disco físico. 

  • Particiones Estáticas: Esta forma de gestión consiste en dividir la memoria en varias zonas, pudiendo ser cada zona de un tamaño diferente. Esto se ilustra en la figura 6.3. El tamaño de las zonas podrá ser modificado eventualmente por algún usuario responsable de la administración del ordenador.

Los trabajos se traducían mediante compiladores y ensambladores absolutos, para ejecutarse en una partición específica. Una vez introducido un proceso en una partición, permanece en ella hasta su finalización. Si un trabajo se iniciaba, y la partición para la que estaba compilado estaba ocupada, tenía que esperar, aunque estuvieran libres otras particiones. Esto provoca una pérdida de eficiencia.

  • Particiones inámica :El esquema de los registro base y límite sigue siendo válido para la reasignación y la protección. Otro tema a tener en cuenta es la cantidad de memoria por asignar a un proceso recién creado. Si los procesos se crean con un tamaño fijo invariante, la asignación es muy sencilla, se asigna exactamente lo que se necesite.



FRAGMENTACION


              Es cuando en la memoria principal quedan espacios sin utilizar para algún proceso o dato, es el mismo concepto para la memoria secundaria. Ocurre comúnmente cuando se realiza un intercambio entre el área swap y la memoria principal para utilizar distintos procesos. También puede ocurre al utilizar distintos métodos de administración de memoria, como por ejemplo la paginación y segmentación.
La paginación consiste en poder utilizar distintas direcciones de memoria para los procesos o datos utilizando páginas y marcos haciendo que la fragmentación interna sea mínima por que se da en la última página del proceso o dato y la externa nula.
En la segmentación, la cual es la división lógica de los procesos o datos a través de bloques de tamaño variable llamados segmentos, conformados por direcciones virtuales con sus respectivos segmentos y desplazamientos. El tipo de fragmentación que ocurre en este método de administración de memoria es la externa, dado que los bloques de este método son de tamaño variable.

  • Fragmentación Interna: Es la asignación de espacios de memoria de inferior tamaño al espacio que requiere el proceso o dato, esto es producido por la propia asignación de un espacio de mayor tamaño, o el almacenamiento de un proceso o dato bastante pequeño. Esta fragmentación puede corregirse utilizando el mejor método para la administración de memoria, aun así siempre representara problemas debido a diversos factores, entre estos la aleatoriedad del tamaño de los procesos y datos y la relación que surge entre la memoria que se está desperdiciando y la velocidad de la memoria, esto porque ante una gran cantidad de bloques para los procesos es mayor el tiempo de procesamiento para los procesos o datos que están dispersos por la memoria principal.
  • Fragmentación Externa: Son los espacios de memoria que no están asignados a ningún proceso o programa debido a que son de tamaño pequeño para la información que debe de almacenar o porque están dispersos en posiciones de memoria que no será utilizada por el método de administración de memoria.



Estrategias para corregir la fragmentación

Condensación: Consiste en unir los espacios libres de memoria para atender una petición de almacenamiento dando solución a la fragmentación externa.

Compactación: Da solución a la fragmentación externa y consiste en desplazar los espacios utilizados en la memoria para tener el espacio sin asignar agrupado en una sola dirección de memoria.

Estrategia de colocación: Determina en qué posición se colocaran los espacios por asignar, estas son:

  • Primer ajuste: En esta estrategia se utiliza el primer espacio en memoria que se encuentra en libre en el que el proceso o dato pueda ser almacenado.
  • Peor ajuste: En esta se almacena en el espacio de la memoria que sea de mayor tamaño.
  • Mejor ajuste: Consiste en recorrer la memoria para encontrar el espacio de menor tamaño en la cual el proceso o dato puede ser almacenado.

CONDENSACION


Esta técnica consiste en fusionar dos huecos de memoria libre adyacentes en uno sólo que tendrá como capacidad la suma de los dos originales. Cuando un trabajo termina, el sistema operativo trata de unir todos los espacios libres en uno solo, para tener un espacio suficiente para que pueda entrar otro programa en memoria. Mediante la condensación de huecos se pueden recuperar los bloques contiguos de almacenamiento más grande que sea posible. Gracias a esto, la velocidad de acceso es mayor.
Por ejemplo, necesitamos 4K de nuestra memoria, pero tenemos dos huecos, cada uno de 2K. Unimos los dos huecos y tenemos uno de 4K que nos sirve para almacenar este proceso.



COMPACTACION

Una forma de solucionar la fragmentación externa es usando compactación. Consiste en desplazar todas las localizaciones de memoria ocupada a un extremo de la misma, así quedan dos partes bien diferenciadas, la memoria ocupada y la memoria libre.
La compactación no siempre es posible, ya que es necesario que la relocalización sea dinámica y se efectúa en el momento de la ejecución. Además, otro inconveniente que presenta es que es una técnica costosa, ya que requiere recursos del sistema y puede provocar que el tiempo de respuesta aumente. El sistema debe detener todo mientras efectúa la compresión, lo que puede afectar los tiempos de respuesta.

 

ESTRATEGIAS DE COLOCACION


Permiten determinar en qué lugar de la memoria  principal se deben colocar  los programas y datos entrantes.

Tipos: 

  •   Mejor Ajuste: Colocar el trabajo en el menor bloque en el que quepa.
  •   Primer Ajuste. Colocar el trabajo en el primer hueco de la lista de almacenamiento libre en el que quepa.
  • Peor Ajuste: Colocar el trabajo en el menor bloque en el que quepa.

 




  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS