La asignación no contigua es la solución adoptada en la mayoría de los sistemas operativos actuales para lograr un buen aprovechamiento de la memoria, manteniendo las tablas de traducción dentro de valores razonables. Con estas técnicas, el grado de multiprogramación puede aumentar considerablemente, ya que no es necesario que todo el mapa de memoria del proceso resida en la memoria principal para ejecutarse; las partes necesarias se traen de la memoria secundaria bajo demanda.