Particiones fijas de diferentes tamaños


Particiones de diferente tamaño

En este método se pueden observar dos procedimientos para realizar la asignación de procesos a cada partición. Por un lado, se tiene un procedimiento en el que con una sola cola se reserve el orden en el que cada proceso podrá llegar al uso de cada una de las particiones en que se ha dividido la memoria, o se puede tener una cola para cada partición.

Sistema operativo Tamaño de la partición (hex) 0

3E800
partición 1 1157 3E801

3F958
Partición 2 AB99 3F959

4A4F2
Partición 3 1A85 4A4F3

4BF78
Partición 4 101E0 4BF79

45C159
Partición 5 23103 5C15A

7F25C
Partición 6 52 7F25D

7F2AF

De esta forma, al admitir cada proceso este se inscribe en la cola de la partición correspondiente y que tiene el tamaño más cercano al tamaño de la partición en donde se va a ubicar el proceso.

Un algoritmo alternativo consiste en que cada vez que se libera una partición, se selecciona de la cola de procesos aquel de tamaño inferior más cercano al tamaño de la partición, ya que no debería desperdiciarse espacio en memoria asignando una partición grande a un proceso pequeño.

Figura 1. Particiones fijas de tamaño variable. Colas independientes para cada partición o una sola cola para todas las particiones.

(Para ampliar la imagen haga clic sobre ella)

Cuando un nuevo proceso es admitido y no existen particiones disponibles se debe recurrir a la función de intercambio que permita determinar cuál de los procesos que se encuentran actualmente en uso de las particiones, sea por tamaño, jerarquía, preferencia o prioridad, debe abandonar la memoria y darle paso al proceso que la está requiriendo.

Esto podría llegar a discriminar a los procesos cortos pues las particiones regularmente son de un tamaño muy superior de los procesos, presentándose exactamente lo contrario de lo deseado, que sean los procesos cortos los que tengan las mejores condiciones y garantías para su ejecución, dado que regularmente son procesos de sistema operativo.

Por esto, una solución alternativa es tener particiones de múltiples tamaños, incluyendo particiones muy pequeñas, que permitan la ejecución de los procesos del sistema operativo sin necesidad de desperdiciar espacio en memoria, con asignación a estos procesos de particiones grandes. Esto puede traer otro inconveniente de desperdicio de memoria denominado fragmentación externa.

La fragmentación externa consiste en pequeñas particiones de memoria que se encuentran en medio de las particiones más grandes pero que por su tamaño tan pequeño no pueden admitir procesos completos y en consecuencia nunca se utilizan.

La fragmentación externa a diferencia de la interna tiene un procedimiento de solución que, pese a ser demandante en recursos y tiempo de procesador, permite solucionar el problema.

Dicho procedimiento se denomina compactación y consiste en reunir en un solo bloque todos los fragmentos no asignados por su reducido tamaño.