Diferença Entre Fragmentação Interna E Externa

Índice:

Diferença Entre Fragmentação Interna E Externa
Diferença Entre Fragmentação Interna E Externa

Vídeo: Diferença Entre Fragmentação Interna E Externa

Vídeo: Diferença Entre Fragmentação Interna E Externa
Vídeo: Fragmentação externa e interna 2024, Abril
Anonim

Fragmentação interna vs externa

A diferença entre fragmentação interna e externa é um tópico de interesse para muitos que gostam de aprimorar seus conhecimentos de informática. Antes de sabermos 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, 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 o 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?

Diferença entre fragmentação interna e externa Fragmentação interna
Diferença entre fragmentação interna e externa 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 partição ainda estava 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, resta espaço livre. No entanto, esse espaço livre é inutilizável, pois o alocador de memória apenas atribui partições completas aos programas, mas não partes deles. 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 até acontecer em uma situação onde partições de vários tamanhos fixos estão disponíveis. Normalmente, a memória ou espaço mais rígido é dividido em blocos que geralmente têm o 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 ficará inutilizável, causando fragmentação interna.

O que é fragmentação externa?

Diferença entre fragmentação interna e externa Fragmentação externa
Diferença entre fragmentação interna e externa 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 exato necessário para aquele 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 nesta 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 elas não são adjacentes. Agora, um grande programa chamado Programa F será carregado, mas nenhum dos blocos de espaço livre é 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 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 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 tamanho menor do que a partição, tornando o restante do espaço dessa partição inutilizável. A fragmentação externa é devido à falta de espaço adjacente suficiente após carregar e descarregar programas ou arquivos por algum tempo, porque então todo o espaço livre é distribuído aqui e ali.

• A fragmentação externa pode ser minerada por compactação, onde os blocos atribuídos são movidos para um lado, para que o espaço contíguo seja obtido. No entanto, esta operação leva tempo e também certas á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 paging. Aqui, um espaço de memória virtual contíguo lógico é fornecido, enquanto na realidade os arquivos / programas são divididos em partes e colocados aqui e ali.

• A fragmentação interna pode ser prejudicada por ter partições de vários tamanhos e atribuir um programa com base no melhor ajuste. No entanto, a fragmentação interna ainda não foi 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 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 drives Flash.

Recomendado: