Fragmentação Interna vs Externa
Diferença entre fragmentação interna e externa é um tema de interesse para muitos que gostam de aprimorar seus conhecimentos de informática. Antes de conhecer essa diferença, temos que ver o que é fragmentação. A fragmentação é um fenômeno que ocorre na memória do computador, como memória de acesso aleatório (RAM) ou discos rígidos, que causa desperdício e uso ineficiente do 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 depois que um aplicativo de tamanho pequeno é 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 está sendo distribuído em vez de ser 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. Depois, três programas chamados A, B, C foram carregados nas três primeiras partições enquanto a 4ª partição 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 apenas atribui partições completas a programas, mas não partes dela. Esse desperdício de espaço livre é chamado de fragmentação interna.
No exemplo acima, são partições fixas de tamanhos iguais, mas isso pode acontecer até mesmo em uma situação em que partições de vários tamanhos fixos estejam disponíveis. Normalmente, a memória ou o espaço mais difícil é dividido em blocos que geralmente são do tamanho de potências de 2, como 2, 4, 8, 16 bytes. Assim, 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 diferentes tamanhos são carregados um após o outro e são colocados na memória de forma contígua nessa ordem. Mais tarde, o Programa A e o Programa C fecham e são descarregados da memória. Agora existem três áreas de espaço livre na memória, mas não são adjacentes. Agora, um grande programa chamado Programa F será carregado, mas nenhum dos blocos 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 à f alta de adjacência, esse 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 tamanho menor que a partição tornando o restante do espaço nessa partição inutilizável. A fragmentação externa é devido à f alta 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 que o espaço contíguo seja ganho. No entanto, essa operação leva tempo e também certas áreas atribuídas críticas, por exemplo, serviços do sistema, não podem ser movidas com segurança. Podemos observar esta etapa de compactação feita 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 é dado um espaço de memória virtual contíguo lógico enquanto na realidade os arquivos/programas são divididos em partes e colocados aqui e ali.
• A fragmentação interna pode ser prejudicada tendo partições de vários tamanhos e atribuindo um programa baseado no melhor ajuste. No entanto, a fragmentação interna ainda não é totalmente eliminada.
Resumo:
Fragmentação Interna vs Externa
Tanto a fragmentação interna quanto a fragmentação externa são fenômenos onde 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 espaço adjacente suficiente não pode ser encontrado 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.