Diferença entre fragmentação interna e externa | Interno vs Fragmentação Externa
Fragmentação interna vs externa
A diferença entre a fragmentação interna e externa é um tema de interesse para muitos que gostam de melhorar o conhecimento do computador. Antes de conhecer essa diferença, temos que ver qual é a 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, o que provoca desperdício e uso ineficiente do espaço livre. Embora o uso eficiente do espaço disponível seja dificultado, 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 uma aplicação de tamanho pequeno ser atribuída a um slot, o espaço livre restante desse slot é desperdiçado. A fragmentação externa ocorre quando a memória é alocada dinamicamente onde, depois de carregar e descarregar vários slots aqui e ali, o espaço livre está sendo distribuído ao invés de ser contíguo.
O que é a 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. Então, mais tarde, três programas denominados A, B, C foram carregados nas três primeiras partições, enquanto a quarta 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 do que o tamanho da partição. Assim, na parte ition 2 e na partição 3, há espaço livre restante. No entanto, este espaço livre é inutilizável, já que o alocador de memória atribui apenas partições completas aos programas, mas não há 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é ocorrer em uma situação em que as partições de vários tamanhos fixos estão disponíveis. Normalmente, a memória ou o espaço mais difícil é dividido em blocos que geralmente são o tamanho de potências de 2 como 2, 4, 8, 16 bytes. Então, um programa ou um 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 de memória dinâmica, o alocador aloca apenas o tamanho necessário para esse programa.A primeira memória é completamente gratuita. Em seguida, os Programas A, B, C, D e E de tamanhos diferentes são carregados um após o outro e eles são colocados na memória contiguamente nessa ordem. Depois, 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 à falta de adjacência que 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?
• 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 de memória dinâmica é usada.
• A fragmentação interna ocorre quando uma partição de tamanho fixo é atribuída a um programa / arquivo com menos tamanho do que a partição que torna o resto do espaço nessa partição inutilizável. A fragmentação externa é devido à falta de espaço adjacente suficiente após o carregamento e a descarga de programas ou arquivos há algum tempo porque, em seguida, 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 adquirido. No entanto, esta operação leva tempo e também determinadas áreas críticas atribuídas, por exemplo, os serviços do sistema não podem ser movidos com segurança. Podemos observar este passo de compactação feito em discos rígidos ao executar o desfragmentador de disco no Windows.
• A fragmentação externa pode ser prevenida por mecanismos como segmentação e paginação. Aqui, um espaço lógico de memória virtual contígua é dado enquanto, na realidade, os arquivos / programas são divididos em partes e colocados aqui e aí.
• A fragmentação interna pode ser mutilada por ter partições de vários tamanhos e atribuir um programa com base no melhor ajuste. No entanto, ainda a fragmentação interna não é totalmente eliminada.
Resumo:
Fragmentação interna vs externa
Tanto a fragmentação interna quanto 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 que é menor do 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.