Diferença entre fragmentação interna e externa

Fragmentação Interna vs Externa
 

A diferença entre fragmentação interna e externa é um tópico de interesse para muitos que gostam de melhorar o conhecimento em informática. Antes de conhecer essa diferença, precisamos ver o que é fragmentação. A fragmentação é um fenômeno que ocorre na memória do computador, como RAM (Random Access Memory) ou discos rígidos, que causa desperdício e uso ineficiente de espaço livre. Embora o uso eficiente do espaço disponível seja prejudicado, isso também causa problemas de desempenho. A fragmentação interna ocorre quando a alocação de memória é baseada em partições de tamanho fixo, onde após um aplicativo de tamanho pequeno ser atribuído a um slot, o espaço livre restante desse slot é desperdiçado. A fragmentação externa ocorre quando a memória é alocada dinamicamente, onde após o carregamento e descarregamento de vários slots aqui e ali, o espaço livre é distribuído em vez de contíguo.

O que é fragmentação interna?

Considere a figura acima, onde um mecanismo de alocação de memória de tamanho fixo está sendo seguido. Inicialmente, a memória está vazia e o alocador dividiu a memória em partições de tamanho fixo. Posteriormente, três programas chamados A, B, C foram carregados nas três primeiras partições enquanto a quarta ainda está livre. O Programa A corresponde ao tamanho da partição, portanto, não há desperdício nessa partição, mas o Programa B e o Programa C são menores que o tamanho da partição. Portanto, na parte 2 e na partição 3, há espaço livre restante. No entanto, esse espaço livre é inutilizável, pois o alocador de memória atribui apenas partições completas aos programas, mas não partes dele. Esse desperdício de espaço livre é chamado de fragmentação interna.

No exemplo acima, são partições fixas de tamanho igual, mas isso pode até acontecer em uma situação em que estão disponíveis partições de vários tamanhos fixos. Normalmente, a memória ou o espaço mais difícil é dividido em blocos que geralmente têm o tamanho de potências de 2, como 2, 4, 8, 16 bytes. Portanto, um programa ou arquivo de 3 bytes será atribuído a um bloco de 4 bytes, mas um byte desse bloco se tornará inutilizável, causando fragmentação interna.

O que é fragmentação externa?

Considere a figura acima, onde a alocação de memória é feita dinamicamente. Na alocação dinâmica de memória, o alocador aloca apenas o tamanho exato necessário para esse programa. A primeira memória é totalmente gratuita. Em seguida, os programas A, B, C, D e E de tamanhos diferentes são carregados um após o outro e são colocados na memória de forma contígua nessa ordem. Depois, o Programa A e o Programa C são fechados e eles são descarregados da memória. Agora, existem três áreas de espaço livre na memória, mas elas não são adjacentes. Agora, um programa grande chamado Programa F será carregado, mas nenhum bloco de espaço livre não é suficiente para o Programa F. A adição de todos os espaços livres é definitivamente suficiente para o Programa F, mas devido à falta de adjacência, o espaço é inutilizável para o programa F. Isso é chamado de fragmentação externa.

Qual é a diferença entre fragmentação interna e externa?

• A fragmentação interna ocorre quando uma técnica de alocação de memória de tamanho fixo é usada. A fragmentação externa ocorre quando uma técnica de alocação dinâmica de memória é usada.

• A fragmentação interna ocorre quando uma partição de tamanho fixo é atribuída a um programa / arquivo com menos tamanho que a partição, tornando o restante do espaço nessa partição inutilizável. A fragmentação externa ocorre devido à falta de espaço adjacente suficiente após o carregamento e descarregamento de programas ou arquivos por algum tempo, porque todo o espaço livre é distribuído aqui e ali.

• A fragmentação externa pode ser extraída por compactação, onde os blocos atribuídos são movidos para um lado, de modo a ganhar espaço contíguo. No entanto, essa operação leva tempo e também determinadas áreas críticas atribuídas, por exemplo, serviços do sistema não podem ser movidas com segurança. Podemos observar esta etapa de compactação realizada em discos rígidos ao executar o desfragmentador de disco no Windows.

• A fragmentação externa pode ser evitada por mecanismos como segmentação e paginação. Aqui é fornecido um espaço de memória virtual lógica contígua, enquanto na realidade os arquivos / programas são divididos em partes e colocados aqui e ali.

• A fragmentação interna pode ser mutilada com partições de vários tamanhos e atribuindo um programa com base no melhor ajuste. No entanto, a fragmentação interna ainda não é totalmente eliminada.

Resumo:

Fragmentação Interna vs Externa

A fragmentação interna e a fragmentação externa são fenômenos em que a memória é desperdiçada. A fragmentação interna ocorre na alocação de memória de tamanho fixo, enquanto a fragmentação externa ocorre na alocação de memória dinâmica. Quando uma partição alocada é ocupada por um programa menor que a partição, o espaço restante é desperdiçado, causando fragmentação interna. Quando não é possível encontrar espaço adjacente suficiente após o carregamento e descarregamento de programas, devido ao fato de que o espaço livre é distribuído aqui e ali, isso causa fragmentação externa. A fragmentação pode ocorrer em qualquer dispositivo de memória, como RAM, disco rígido e unidades Flash.