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.

sábado, 20 de noviembre de 2010

4.1 Administración básica de memoria

Los sistemas que administran la memoria se pueden dividir de 2 clases:

Los procesos que se intercambian entre la memoria y el disco durante su ejecución

Y los que no realizan ese traslado entre el disco y la memoria

Monoprogramación sin intercambio ni paginación

Un esquema para administrar la memoria de manera más sencilla es ejecutar un programa a la vez, compartiendo memoria entre el programa y el SO.

Tres formas sencillas de organizar la memoria con un SO y un proceso de usuario.

· El SO puede estar en la base de la memoria en RAM.

· El SO puede estar en ROM en la parte superior de la memoria.

· Los controladores de dispositivo pueden estar en la parte superior de la memoria en una ROM con el resto del sistema en RAM hasta abajo.

Si se organiza el sistema de esta manera, solo se puede ejecutar un proceso a la vez.

Multiprogramación con particiones fijas

En los sistemas que tienen tiempo compartido, tienen varios procesos a la vez en la memoria esta va a implicar que cuando un proceso se encuentre bloqueado esperando a que termine una E/S, otro proceso pueda usar la CPU.

Una forma fácil de lograr la multiprogramación simplemente consiste en dividir a la memoria en n particiones. Esta división puede realizarse cuando se inicia el sistema.

Una salida puede consistir en tener una partición pequeña disponible por lo menos.

Este sistema, con particiones fijas establecidas por el operador, fue utilizado por OS/360 en macrocomputadoras por IBM. Se le llama MFT (multiprogramación con un número fijo de tareas, OS/MFT).

Relocalización y protección