sábado, 27 de noviembre de 2010

4.2 Intercambio

En el esquema de “intercambio” los programas del usuario no requieren permanecer en la memoria principal hasta su terminación.

Podemos utilizar 2 estrategias de administración de memoria dependiendo del hardware disponible.

La estrategia más sencilla, llamada intercambio, su función principal es traer a la memoria cada proceso en su totalidad, ejecutarlo durante un cierto lapso de tiempo, y después volver a colocarlo en el disco.

La segunda estrategia, llamada memoria virtual, permite a los programas ejecutarse aunque solo estén temporalmente en la memoria principal.

Un punto muy importante que se debe tomar en cuenta es la cantidad de memoria que se debe asignar a un proceso cuando se crea o se trae a la memoria.

Administración de memoria con mapas de bits

Cuando la memoria se asigna dinámicamente, el SO debe de administrarla.

Existen 2 formas contabilizar la utilización de memoria:

· Mapa de bits

· Lista libres

Con mapa de bits, la memoria se divide en unidades de asignación. Cada unidad de asignación corresponde a un bit del mapa de bits, que es 0 si la unidad esta libre y 1 si está ocupada.

Cuanto menor sea la unidad de asignación, mayor será el mapa de bits.

Administración de memoria con listas enlazadas

Una forma de contabilizar la memoria es mantener una lista enlazada de segmentos de memoria libres y asignados, donde un segmento es un proceso o un agujero entre dos procesos.

Si los procesos y agujeros se mantienen en una lista ordenada por dirección, se pueden usar varios algoritmos. El algoritmo más sencillo es el primer ajuste. El algoritmo es rápido porque la búsqueda es la más corta posible.

Una variante menor del primer ajuste es el siguiente ajuste. Este algoritmo funciona igual que el primer ajuste, solo que toma nota de donde está cada vez que encuentra un agujero apropiado. El algoritmo comenzara a buscar en la lista a partir del lugar donde se quedo la última vez, en lugar de comenzar desde el principio como hace el primer ajuste.

Otro algoritmo es el mejor ajuste, este examina toda la lista y toma el agujero más pequeño que es adecuado. El mejor ajuste trata de encontrar un agujero con un tamaño adecuado al que necesita. El mejor ajuste es más lento que el primer ajuste porque debe examinar toda la lista cada vez que se invoque.

A fin de resolver el problema de partir un agujero con un tamaño casi igual al requerido para obtener un espacio al proceso y un agujero diminuto, se puede considerar el algoritmo del peor ajuste, es decir, tomar siempre al agujero más grande disponible, de manera que el agujero que sobre puede tener un tamaño suficiente para ser útil.

Los cuatro algoritmos pueden agilizarse manteniendo las listas separadas de procesos y agujeros.

No hay comentarios:

Publicar un comentario