Différence entre la fragmentation interne et externe
Chaque fois qu’un processus est chargé ou supprimé du bloc de mémoire physique, il crée un petit trou dans l’espace mémoire appelé fragment. En raison de la fragmentation, le système ne parvient pas à allouer l’espace mémoire contigu à un processus même s’il a la quantité de mémoire demandée mais, de manière non contiguë. La fragmentation est classée en deux catégories: la fragmentation interne et externe.
La classification interne et externe affecte la vitesse d’accès aux données du système. La différence clé entre la fragmentation interne et externe est que la fragmentation interne se produit lorsque les blocs de mémoire de taille fixe sont alloués au processus sans se soucier de la taille du processus, et une fragmentation externe se produit lorsque les processus sont alloués dynamiquement. Nous allons discuter les différences, les raisons et les solutions derrière la fragmentation interne et externe à l’aide du tableau de comparaison ci-dessous.
Table de comparaison
Fragmentation interne | Fragmentation externe | |
---|---|---|
Définition | Cela se produit lorsque les blocs de mémoire de taille fixe sont alloués aux processus. | Cela se produit lorsque l’espace mémoire de taille variable est alloué dynamiquement aux processus. |
Occurrence | Lorsque la mémoire affectée au processus est légèrement plus grande que la mémoire demandée par le processus, cela crée de l’espace libre dans le bloc alloué, provoquant une fragmentation interne. | Lorsque le processus est supprimé de la mémoire, il crée l’espace libre dans la mémoire provoquant la fragmentation externe. |
Solution | La mémoire doit être partitionnée en blocs de taille variable et affecter le meilleur bloc au processus. | Compaction, pagination et segmentation. |
Différences clés entre la fragmentation interne et externe
- La raison derrière les occurrences de fragmentation interne et externe est que la fragmentation interne se produit lorsque la mémoire est partitionnée en blocs de taille fixe alors que la fragmentation externe se produit lorsque la mémoire est partitionnée en blocs de taille variable.
- Lorsque le bloc de mémoire attribué au processus apparaît légèrement plus grand que la mémoire demandée, l’espace libre restant dans le bloc de mémoire alloué provoque une fragmentation interne. D’autre part, lorsque le processus est retiré de la mémoire, il crée de l’espace libre(un trou) dans la mémoire qui provoque une fragmentation externe.
- Le problème de la fragmentation interne peut être résolu en partitionnant la mémoire en blocs de taille variable et en affectant le meilleur bloc au processus demandeur. Cependant, la solution pour la fragmentation externe est le compactage, mais il est coûteux à implémenter, donc les processus doivent être autorisés à acquérir de la mémoire physique de manière non contiguë, pour cela la technique de pagination et de segmentation est introduite.
Conclusion :
La fragmentation interne et externe sont liés à l’espace mémoire inutilisé ou à la perte de mémoire. La fragmentation interne souffre d’une allocation de mémoire inefficace qui se produit lorsque la mémoire allouée à un processus est supérieure à ce qui est demandé, laissant l’espace inutilisé dans le bloc de mémoire causant la fragmentation interne. Une fois le processus retiré de la mémoire physique, l’espace libre est distribué ici et là et aucun bloc de mémoire adjacent ne peut être trouvé, provoquant une fragmentation externe. Cependant, les deux fragmentations peuvent être évités. La fragmentation interne peut être réduite en allouant dynamiquement la mémoire aux processus, tandis que la fragmentation externe peut être évitée par le compactage, la pagination et la segmentation.