FRAGMENTACIÓN INTERNA
Esta se deriva del hecho de que mientras la memoria está denominada en bytes, la unidad más pequeña disponible generalmente es mayor que eso debido a las reglas de memoria de direccionamiento. Por ejemplo, si el sistema carga un programa que requiere de 50 MB y 19 bytes de memoria, puede que no sea capaz de iniciar el próximo programa a ese 20° byte, en lugar de iniciarlo al byte 24 o 28. Estas brechas resultan en pequeñas áreas de memoria inutilizable, simplemente porque el sistema no puede abordar todos y cada byte de memoria disponible para él. Si bien pérdida de memoria por la fragmentación interna generalmente es mucho menor que la pérdida por la fragmentación externa, estas pequeñas cantidades todavía pueden sumarse con el tiempo.
FRAGMENTACIÓN EXTERNA
Esto ocurre cuando el primer bloque libre de memoria no es suficiente para que el siguiente programa lo use. Por ejemplo, digamos que un sistema carga tres programas en la memoria, cada uno ocupando 50 megabytes o MB. El segundo programa termina, dejando ese bloque de 50 MB libres. Si el siguiente programa a iniciar requiere de 100 MB, no sería capaz de utilizar ese bloque de 50 MB de espacio libre, y el sistema le asigna el siguiente intervalo de 100 MB libres. Esa brecha en la memoria utilizada se mantendría sin uso hasta que algún programa requiera menos de 50 MB de memoria. Con el tiempo, estos pequeños espacios pueden sumarse, y un sistema se puede ejecutarse con memoria baja a pesar de las muchas pequeñas áreas de memoria libre.