jueves, 23 de septiembre de 2010

GESTIÓN DE MEMORIA

1.      INTRODUCCIÓN:
La memoria es uno de los principales recursos de la computadora la cual debe administrarse con mucho cuidado. Actualmente, los sistemas de cómputo cuentan con gran capacidad de memoria,  de igual manera,  las aplicaciones también tienen alto requerimiento de memoria, lo que sigue generando escasez de memoria en los sistemas multitarea y multiusuario. El propósito principal de una computadora es el de ejecutar programas, estos programas deben estar en la memoria principal durante la ejecución.

2.      GESTIÓN  DE MEMORIA:
La gestión de memoria representa un vínculo delicado entre el rendimiento  y la cantidad.
Siempre se busca mantener el mayor espacio posible en la memoria.
Ésta se divide en memoria  principal y secundaria,  la principal es la memoria  RAM que es la que se ejecuta los procesos de un programa.
La secundaria es el disco duro, que es la encargada a su vez de cargar la información a la RAM  y  la que tiene la información  de todos los programas.


2.1  QUÉ ES EL MMU (Unidad  de almacenamiento de memoria )
Es un dispositivo de hardware formado por un grupo de circuitos integrados, responsable del manejo de los accesos a la memoria  por parte del procesador y cumple  tres funciones  específicas.

2.1.1  RECUPERACIÓN:
Es la encargada de  recuperar la información de un proceso que fue dejado de usar y se usó en espacio para otro proceso. Al estar ocupado el espacio de este se reubica  en otra posición.

2.1.2  PROTECCIÓN
Evita que los programas  accedan  a porciones  de memoria  prohibidos, por ejemplo se puede evitar que un programa  acceda o modifique sectores de memoria de otro programa.

                                                                                                                                                                        
2.1.3 COMPARTIR:
Es un proceso que está siendo  usado y  está cargado en la memoria  RAM. Este proceso  sirve para que otros que se estén usando o necesiten este proceso para funcionar, eviten  cargar otro proceso que haga lo mismo que el que ya está en uso.

3.  MONOPROGRAMACIÓN:
El esquema de administración  de memoria es el más sencillo que hay, solo se tiene un proceso  que ocupe la memoria a la vez. Sin embargo, este método es obsoleto en la actualidad ya que era visto en computadoras de un solo usuario y una sola tarea a la vez.
El  modo de uso era el siguiente: el usuario introducía su disco a la computadora (por lo general los computadores de la época no tenían disco duro) y se ejecutaba la aplicación la cual ocupaba por completo la memoria del equipo.



4.      MULTIPROGRAMACION:
Es un término  que significa que muchos programas que no están relacionados unos con otros pueden residir en la memoria de una  computadora y tomar turno usando la unidad central de procesamiento, cualquiera que haya usado Windows, Unix o Linux ha experimentado multiprogramación.

4.1 ASIGNACIÓN CONTÍNUA:
Cada programa ocupa un bloque continuo y sencillo de localizaciones de almacenamiento que se divide en partición estática y partición dinámica o variable.

4.1.1 PARTICIÓN ESTÁTICA:
En el caso de particiones fijas.
La memoria se puede organizar dividiéndose en diversas partes, las cuales pueden variar en tamaño. Esta partición la puede hacer el usuario al iniciar una sesión con la  máquina.
4.1.1.1  DE UNA COLA DE ENTRADA.

4.1.1.2  DE VARIAS COLAS DE ENTRADA.


4.1.2 PARTICIÓN DINÁMICA O VARIABLE:



Cuando llega un proceso que necesita memoria, buscamos un hueco  lo suficientemente  grande para el proceso. Si encontramos uno, se asigna únicamente el espacio requerido, manteniendo  el resto disponible para futuros procesos  que  requieran. 


4.1.2.1 FRAGMENTACIÓN
Es la memoria que queda desperdiciada  al usar los métodos de gestión de memoria. La fragmentación es generada cuando durante el remplazo de procesos  quedan huecos entre dos o más procesos  de manera no continua  la fragmentación puede ser

4.1.2.1.1  FRAGMENTACIÓN EXTERNA:
Existe el espacio total de la memoria para satisfacer un requerimiento pero no es contigua
4.1.2.1.2  FRAGMENTACIÓN  INTERNA:
La memoria asignada puede ser  ligeramente mayor que la requerida; esta referencia es interna a la partición, pero no se utiliza.



4.1.2.2 COMPACTACION:

Técnica que consiste en trasladar todas las áreas ocupadas del almacenamiento hacia algún extremo de la memoria.
Es una solución de la fragmentación externa el objetivo consiste en desplazar el contenido de la memoria libre en un solo bloque de gran tamaño.
La compactación no siempre es posible, solo es posible si la relocalización es dinámica.
  

 4.1.2.3 ALGORITMOS PARA LA ASIGNACIÓN:
EL proceso de compactación son unas instancias particulares del problema de asignación de memoria dinámica, y esta se  refiere a  satisfacer  una necesidad de tamaño (N) en una lista de huecos libres. Entre tantas posibilidades existe una que determina el hueco más  indicado en el momento de asignar. A continuación estrategias  comunes para la asignación de algún hueco en la tabla.
 4.1.2.3.1 PRIMER  AJUSTE: Consiste en  asignar el proceso en el primer  hueco que se  halle y se ajuste sin importar  que el hueco  sea más  grande  que el  tamaño del proceso  a insertar.
 4.1.2.3.2 MEJOR  AJUSTE: Consiste en ubicar  el proceso según su tamaño en el hueco  más apropiado, esto con el fin de evitar desperdicio de memoria.
4.1.2.3.3 PEOR AJUSTE: En este algoritmo se busca que el tamaño del hueco concuerde con el tamaño del proceso. Es decir que sea el tamaño del hueco sea igual o mayor que el del proceso, sin importar que se pueda perder gran cantidad de espacio en la memoria.

4.1.2.4 MÉTODOS:
4.1.2.4.1 MAPA DE BiTS: Este tipo de administración  divide la memoria en unidades de asignación, las cuales pueden ser tan pequeñas  como una letra o tan grandes  como varios Kb. Cada unidad  pertenece a un bits, la cual toma valor de 0 si está vacío y 1 si está  ocupado ó viceversa.


4.1.2.4.2 LISTAS  LIGADAS: Otra forma de mantener un registro en la  memoria  es mediante  una lista ligada, en donde un Segmento puede ser un proceso o un hueco  entre dos. En la lista ligada se especifica la (H) como hueco, la (P) como un proceso, el numero es la dirección donde comienza y su tamaño y un puntador a la siguiente entrada.


4.1.2.4.3 SISTEMAS DE ASOCIADOS: Este sistema es basado en dividir la memoria en potencias de byts, esto quiere decir que si el primer espacio es 2° el tamaño es de 1 byts,  si es de 2^1 el tamaño es de 2, y así sucesivamente.



5. ASIGNACION  NO  CONTINUA.

5.1 PAGINACION: Los métodos que hasta el  momento hemos visto de administración de memoria nos ha dejado un problema que es la fragmentación “huecos dentro de la memoria que por su tamaño no se pueden usar” lo cual provoca un desperdicio de memoria principal-
Las unidades  correspondientes en la memoria se llaman marcos o frames las páginas y los frames tiene siempre el mismo tamaño, cada página tiene un número  que se utiliza como  índice en la tabla lo que da resultado al número del marco.  El número del marco se determina a partir del número de páginas  formando una dirección para enviar a la memoria.


 
5.2  SEGMENTACION: Esta es diferente de la paginación en un sentido esencial, las paginas tienen un tamaño fijo igual al dé el frame y los segmentos no. Estos tamaños varían de acuerdo al tamaño de los procesos. 

6. CONCLUSIONES:
-El administrador de memoria siempre va a estar trabajando para que el sistema operativo cuente con un buen funcionamiento.
-Para el usuario no es  permitido administrar la memoria principal ya que esa función corresponde al        procesador.
-Podemos observar que con el trascurrir de los años las técnicas de asignación de memoria han evolucionado para poder disminuir el desperdicio de tiempo y espacio en la memoria principal.