Différence entre la fragmentation interne et externe | Fragmentation interne vs externe
Fragmentation interne ou externe
La différence entre la fragmentation interne et externe est un sujet d'intérêt pour beaucoup qui aiment améliorer leurs connaissances en informatique. Avant de connaître cette différence, nous devons voir ce qu'est la fragmentation. La fragmentation est un phénomène qui se produit dans la mémoire de l'ordinateur, comme la mémoire RAM (Random Access Memory) ou les disques durs, ce qui entraîne un gaspillage et une utilisation inefficace de l'espace libre. Bien que l'utilisation efficace de l'espace disponible soit entravée, cela entraîne également des problèmes de performance. La fragmentation interne se produit lorsque l'allocation de mémoire est basée sur des partitions de taille fixe où, après qu'une application de petite taille est affectée à un emplacement, l'espace libre restant de cet emplacement est gaspillé. La fragmentation externe se produit lorsque la mémoire est dynamiquement allouée, où après le chargement et le déchargement de plusieurs créneaux, l'espace libre est ici distribué plutôt que contigu.
Qu'est-ce que la fragmentation interne?
Considérons la figure ci-dessus où un mécanisme d'allocation de mémoire de taille fixe est suivi. Initialement, la mémoire est vide et l'allocateur a divisé la mémoire en partitions de taille fixe. Ensuite, trois programmes nommés A, B et C ont été chargés sur les trois premières partitions alors que la 4ème partition est encore libre. Le programme A correspond à la taille de la partition, il n'y a donc aucun gaspillage dans cette partition, mais les programmes B et C sont plus petits que la taille de la partition. Donc, dans la partie 2 et la partition 3, il reste de l'espace libre. Cependant, cet espace libre est inutilisable car l'allocateur de mémoire attribue uniquement des partitions complètes aux programmes, mais pas à certaines parties. Ce gaspillage d'espace libre est appelé fragmentation interne.
->Dans l'exemple ci-dessus, il s'agit de partitions fixes de taille égale mais cela peut même se produire dans des situations où des partitions de différentes tailles fixes sont disponibles. Habituellement, la mémoire ou l'espace le plus difficile est divisé en blocs qui ont généralement la taille de 2, tels que 2, 4, 8, 16 octets. Ainsi, un programme ou un fichier de 3 octets sera assigné à un bloc de 4 octets mais un octet de ce bloc deviendra inutilisable provoquant une fragmentation interne.
Qu'est-ce que la fragmentation externe?
Considérons la figure ci-dessus où l'allocation de mémoire est effectuée dynamiquement. Dans l'allocation de mémoire dynamique, l'allocateur n'attribue que la taille requise pour ce programme.La première mémoire est complètement libre. Ensuite, les programmes A, B, C, D et E de tailles différentes sont chargés l'un après l'autre et placés en mémoire de façon contiguë dans cet ordre. Puis plus tard, les programmes A et C se ferment et ils sont déchargés de la mémoire. Maintenant, il y a trois zones d'espace libre dans la mémoire, mais elles ne sont pas adjacentes. Maintenant, un grand programme appelé Programme F va être chargé mais aucun des blocs d'espace libre ne suffit pas pour le programme F. L'ajout de tous les espaces libres est certainement suffisant pour le programme F, mais en raison du manque de contiguïté, l'espace est inutilisable pour le programme F. C'est ce qu'on appelle la fragmentation externe.
Quelle est la différence entre la fragmentation interne et externe?
• La fragmentation interne se produit lorsqu'une technique d'allocation de mémoire à taille fixe est utilisée. La fragmentation externe se produit lorsqu'une technique d'allocation de mémoire dynamique est utilisée.
• La fragmentation interne se produit lorsqu'une partition de taille fixe est affectée à un programme / fichier de taille inférieure à la partition rendant le reste de l'espace inutilisable. La fragmentation externe est due au manque d'espace adjacent suffisant après le chargement et le déchargement des programmes ou des fichiers pendant un certain temps car tout l'espace libre est alors distribué ici et là.
• La fragmentation externe peut être extraite par compactage où les blocs assignés sont déplacés d'un côté, de sorte que l'espace contigu est gagné. Cependant, cette opération prend du temps et certaines zones affectées critiques, par exemple les services système, ne peuvent pas être déplacées en toute sécurité. Nous pouvons observer cette étape de compactage effectuée sur les disques durs lors de l'exécution du défragmenteur de disque sous Windows.
• La fragmentation externe peut être empêchée par des mécanismes tels que la segmentation et la pagination. Ici, un espace de mémoire virtuelle contiguë logique est donné alors qu'en réalité les fichiers / programmes sont divisés en parties et placés ici et là.
• La fragmentation interne peut être altérée en ayant des partitions de plusieurs tailles et en assignant un programme basé sur le meilleur ajustement. Cependant, la fragmentation interne n'est pas complètement éliminée.
Résumé:
Fragmentation interne et externe
La fragmentation interne et la fragmentation externe sont des phénomènes où la mémoire est gaspillée. La fragmentation interne se produit dans l'allocation de mémoire à taille fixe alors que la fragmentation externe se produit dans l'allocation de mémoire dynamique. Lorsqu'une partition allouée est occupée par un programme inférieur à la partition, l'espace restant est gaspillé, ce qui provoque une fragmentation interne. Lorsqu'il n'y a pas assez d'espace adjacent après le chargement et le déchargement des programmes, du fait que l'espace libre est distribué ici et là, cela provoque une fragmentation externe. La fragmentation peut se produire dans n'importe quel périphérique de mémoire tel que la RAM, le disque dur et les lecteurs Flash.