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.