Con asignación particionada , a cada bloque se le asigna una dirección de memoria específica y los programas se cargan en la memoria en estas direcciones específicas. Esto significa que los programas deben diseñarse para ejecutarse en una dirección de memoria específica y, si es necesario mover un programa a una ubicación de memoria diferente, se debe volver a compilar.
Con asignación reubicable , a los programas no se les asignan direcciones de memoria específicas cuando se cargan en la memoria. En cambio, el sistema operativo asigna dinámicamente direcciones de memoria a los programas según sea necesario. Esto significa que los programas se pueden mover a diferentes ubicaciones de memoria sin tener que volver a compilarse.
La asignación particionada es más sencilla de implementar, pero es menos eficiente que la asignación reubicable. Con la asignación particionada, se puede desperdiciar mucha memoria si los programas no encajan uniformemente en los bloques disponibles. Con la asignación reubicable, no se desperdicia memoria, pero el sistema operativo debe trabajar más para administrar la memoria.