Recommandé, 2021

Choix De L'Éditeur

Différence entre 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 n'alloue pas l'espace mémoire contigu à un processus même s'il dispose de la quantité de mémoire demandée, mais de manière non contiguë. La fragmentation est en outre classée en deux catégories, à savoir la fragmentation interne et la fragmentation externe.

La classification interne et externe affecte la vitesse d'accès aux données du système. Ils ont une différence fondamentale entre eux: la fragmentation interne se produit lorsque des blocs de mémoire de taille fixe sont alloués au processus sans se soucier de la taille du processus, et la fragmentation externe se produit lorsque les processus sont alloués de manière dynamique à la mémoire. Allons plus loin et discutons des différences, des raisons, des solutions derrière la fragmentation interne et externe à l'aide du tableau de comparaison ci-dessous.

Tableau de comparaison

Base de comparaisonFragmentation interneFragmentation externe
De baseCela se produit lorsque des blocs de mémoire de taille fixe sont alloués aux processus.Cela se produit lorsque de l'espace mémoire de taille variable est alloué dynamiquement aux processus.
OccurrenceLorsque la mémoire affectée au processus est légèrement supérieure à la mémoire demandée par le processus, cela crée un espace libre dans le bloc alloué, ce qui entraîne une fragmentation interne.Lorsque le processus est supprimé de la mémoire, il crée l’espace libre dans la mémoire, ce qui provoque une fragmentation externe.
SolutionLa mémoire doit être partitionnée en blocs de taille variable et affecter le bloc le mieux adapté au processus.Compaction, pagination et segmentation.

Définition de la fragmentation interne

La fragmentation interne se produit lorsque la mémoire est divisée en blocs de taille fixe . À chaque demande de processus pour la mémoire, le bloc de taille fixe est alloué au processus. Si la mémoire attribuée au processus est légèrement supérieure à la mémoire demandée, la différence entre la mémoire attribuée et celle demandée est la fragmentation interne .

Cet espace restant à l'intérieur du bloc de taille fixe ne peut être attribué à aucun processus car il ne serait pas suffisant pour satisfaire la demande de mémoire du processus. Laissez-nous comprendre la fragmentation interne à l'aide d'un exemple. L'espace mémoire est partitionné en blocs de taille fixe de 18 464 octets. Supposons qu'une demande de processus de 18 460 octets et un bloc partitionné de taille fixe partitionné de 18 464 octets soient alloués au processus. Le résultat est que 4 octets de 18 464 octets sont restés vides, ce qui correspond à la fragmentation interne.

Le surcoût lié au fait de garder la trace du trou interne créé en raison de la fragmentation interne est sensiblement supérieur au nombre de trous internes. Le problème de la fragmentation interne peut être résolu en partitionnant la mémoire dans le bloc de taille variable et en affectant le bloc de taille optimale à un processus demandant de la mémoire. Néanmoins, cela n'éliminera pas totalement le problème de la fragmentation interne mais le réduira dans une certaine mesure.

Définition de la fragmentation externe

La fragmentation externe se produit lorsqu'il existe suffisamment d'espace dans la mémoire pour satisfaire la demande de mémoire d'un processus. Mais la demande de mémoire du processus ne peut pas être satisfaite car la mémoire disponible est de manière non contiguë. Que vous appliquiez une stratégie d’allocation de mémoire ajustée en premier ou en ajustement optimal, cela provoquerait une fragmentation externe.

Lorsqu'un processus est chargé et supprimé de la mémoire, l'espace libre crée un trou dans l'espace mémoire et il existe de nombreux trous de ce type dans l'espace mémoire. On parle alors de fragmentation externe. Bien que le premier ajustement et le meilleur ajustement puissent influer sur le degré de fragmentation externe, il ne peut être totalement éliminé. Le compactage peut être la solution pour la fragmentation externe.

L'algorithme de compactage mélange tout le contenu de la mémoire d'un côté et libère un grand bloc de mémoire. Mais l'algorithme de compactage coûte cher. Il existe une solution alternative pour résoudre le problème de fragmentation externe qui permettra à un processus d’acquérir de la mémoire physique de manière non contiguë. Les techniques permettant de réaliser cette solution sont la pagination et la segmentation.

Principales différences entre la fragmentation interne et externe

  1. La fragmentation interne et externe 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 .
  2. Lorsque le bloc de mémoire alloué au processus s'avère être légèrement plus grand que la mémoire demandée, l'espace disponible dans le bloc de mémoire alloué provoque une fragmentation interne. D'autre part, lorsque le processus est supprimé de la mémoire, il crée un espace libre, provoquant un trou dans la mémoire appelé fragmentation externe.
  3. 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 bloc le mieux adapté au processus demandeur. Cependant, la solution pour la fragmentation externe est le compactage, mais sa mise en œuvre est coûteuse. Par conséquent, les processus doivent pouvoir acquérir de la mémoire physique de manière non contiguë. Pour ce faire, la technique de pagination et de segmentation est introduite.

Conclusion:

Le problème de la fragmentation interne peut être réduit, mais il ne peut être totalement éliminé. La pagination et la segmentation aident à utiliser l’espace libéré par la fragmentation externe en permettant à un processus d’occuper la mémoire de manière non contiguë.

Top