Fragmentation externe se produit lorsqu'il existe plusieurs blocs de mémoire libres qui sont trop petits pour être utilisés par un processus. Cela peut se produire lorsque les processus se voient allouer de la mémoire en morceaux de tailles différentes et que la mémoire libre restante n'est pas contiguë. La fragmentation externe peut être réduite en utilisant un algorithme de gestion de la mémoire qui alloue la mémoire en morceaux contigus, ou en utilisant un algorithme de compactage qui déplace les processus pour libérer de la mémoire contiguë.
Fragmentation interne se produit lorsqu'un bloc de mémoire alloué à un processus n'est pas entièrement utilisé. Cela peut se produire lorsque le processus alloue de la mémoire en morceaux de tailles différentes et que la mémoire libre restante dans le bloc n'est pas contiguë. La fragmentation interne peut être réduite en utilisant un algorithme de gestion de la mémoire qui alloue la mémoire en morceaux contigus, ou en utilisant un algorithme de compactage qui déplace les données dans un bloc pour libérer de la mémoire contiguë.
Voici un tableau résumant les principales différences entre la fragmentation externe et interne :
| Fonctionnalité | Fragmentation externe | Fragmentation interne |
|---|---|---|
| Cause | Plusieurs blocs de mémoire libres trop petits pour être utilisés | Le bloc de mémoire alloué à un processus n'est pas entièrement utilisé |
| Effet | Les processus ne peuvent pas se voir allouer de la mémoire | Le processus ne peut pas utiliser toute la mémoire qui lui a été allouée |
| Solutions | Utilisez un algorithme de gestion de la mémoire qui alloue de la mémoire en morceaux contigus, ou utilisez un algorithme de compactage qui déplace les processus pour libérer de la mémoire contiguë | Utilisez un algorithme de gestion de la mémoire qui alloue de la mémoire en morceaux contigus ou utilisez un algorithme de compactage qui déplace les données dans un bloc pour libérer de la mémoire contiguë |
|