Différence entre la fragmentation interne et externe

Différence entre la fragmentation interne et externe

Fragmentation interne vs externe
 

La différence entre la fragmentation interne et externe est un sujet d'intérêt pour beaucoup de ceux qui aiment améliorer leurs connaissances informatiques. 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 tel que la mémoire d'accès aléatoire (RAM) ou les disques durs, ce qui provoque un gaspillage et une utilisation inefficace de l'espace libre. Bien que l'utilisation efficace de l'espace disponible soit entravée, cela provoque également des problèmes de performance. La fragmentation interne se produit lorsque l'attribution de la mémoire est basée sur des partitions de taille fixe où une fois une application de petite taille est affectée à une fente, l'espace libre restant de cette fente est gaspillé. La fragmentation externe se produit lorsque la mémoire est allouée dynamiquement là où après le chargement et le déchargement de plusieurs emplacements ici et là, l'espace libre est distribué plutôt que d'être contigu.

Qu'est-ce que la fragmentation interne?

Considérez 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. Puis plus tard, trois programmes nommés A, B, C ont été chargés aux trois premières partitions tandis que la 4ème partition est toujours gratuite. Programme A correspond à la taille de la partition, il n'y a donc pas de gaspillage dans cette partition, mais le programme B et le programme C sont plus petits que la taille de partition. Donc, en partie ition 2 et partition 3, il reste de l'espace libre. Cependant, cet espace libre est inutilisable car l'allocateur de mémoire n'attribue que des partitions complètes aux programmes, mais aucune partie de celui-ci. 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 une situation où des partitions de différentes tailles fixes sont disponibles. Habituellement, la mémoire ou l'espace le plus dur est divisé en blocs qui ont généralement la taille des pouvoirs de 2 tels que 2, 4, 8, 16 octets. Ainsi, un programme ou un fichier de 3 octets sera affecté à 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érez la figure ci-dessus où l'allocation de mémoire est effectuée dynamiquement. Dans l'allocation de mémoire dynamique, l'allocateur n'alloque que la taille exacte nécessaire pour ce programme. La première mémoire est complètement gratuite. Ensuite, les programmes A, B, C, D et E de différentes tailles sont chargés l'un après l'autre et ils sont placés en mémoire contiguë dans cet ordre. Puis plus tard, le programme A et le programme C se ferme et ils sont déchargés de 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é Program F va être chargé, mais aucun des blocs d'espace libre n'est pas suffisant pour le programme F. L'ajout de tous les espaces libres est certainement suffisant pour le programme F, mais en raison du manque d'adjacence, 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 de taille fixe est utilisée. Une 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 attribuée à un programme / fichier avec moins de taille que la partition, ce qui rend le reste de l'espace dans cette partition inutilisable. La fragmentation externe est due à l'absence d'espace adjacent suffisant après le chargement et le déchargement de programmes ou de fichiers pendant un certain temps, car alors tout l'espace libre est distribué ici et là.

• La fragmentation externe peut être extraite par compactage où les blocs attribué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 attribuées critiques, par exemple, les services système ne peuvent pas être déplacés en toute sécurité. Nous pouvons observer cette étape de compactage effectuée sur des disques durs lors de l'exécution du défragmentateur de disque sous Windows.

• La fragmentation externe peut être évitée par des mécanismes tels que la segmentation et la pagination. Ici, un espace de mémoire virtuel continu 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 mutilée en ayant des partitions de plusieurs tailles et en attribuant un programme basé sur le meilleur ajustement. Cependant, la fragmentation interne n'est pas entièrement éliminée.

Résumé:

Fragmentation interne vs 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 une allocation de mémoire de taille fixe tandis que la fragmentation externe se produit dans une allocation de mémoire dynamique. Lorsqu'une partition allouée est occupée par un programme moins que la partition, l'espace restant va gaspillé provoquant une fragmentation interne. Lorsque suffisamment d'espace adjacent ne peut être trouvé après le chargement et le déchargement des programmes, en raison 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 disques flash.