Recomendado, 2024

Escolha Do Editor

Diferença entre fragmentação interna e externa

Sempre que um processo é carregado ou removido do bloco de memória física, ele cria um pequeno buraco no espaço de memória que é chamado de fragmento. Devido à fragmentação, o sistema falha ao alocar o espaço de memória contíguo a um processo, mesmo que tenha a quantidade solicitada de memória, mas de maneira não contígua. A fragmentação é ainda classificada em duas categorias: Fragmentação Interna e Externa.

Tanto a classificação interna quanto a externa afetam a velocidade de acesso aos dados do sistema. Eles têm uma diferença básica entre eles, ou seja, a fragmentação interna ocorre quando blocos de memória de tamanho fixo são alocados para o processo sem se preocupar com o tamanho do processo, e a fragmentação externa ocorre quando os processos são alocados dinamicamente. Vamos avançar e discutir as diferenças, razões, soluções por trás da fragmentação interna e externa com a ajuda do gráfico de comparação mostrado abaixo.

Gráfico de comparação

Base para ComparaçãoFragmentação InternaFragmentação Externa
BasicOcorre quando blocos de memória de tamanho fixo são alocados para os processos.Ocorre quando o espaço de memória de tamanho variável é alocado aos processos dinamicamente.
OcorrênciaQuando a memória atribuída ao processo é um pouco maior que a memória solicitada pelo processo, isso cria espaço livre no bloco alocado causando fragmentação interna.Quando o processo é removido da memória, ele cria o espaço livre na memória causando fragmentação externa.
SoluçãoA memória deve ser particionada em blocos de tamanho variável e atribuir o melhor bloco de ajuste ao processo.Compactação, paginação e segmentação.

Definição de Fragmentação Interna

A fragmentação interna ocorre quando a memória é dividida em blocos de tamanho fixo . Sempre que uma solicitação de processo para a memória, o bloco de tamanho fixo é alocado para o processo. Caso a memória atribuída ao processo seja um pouco maior que a memória solicitada, a diferença entre a memória atribuída e a solicitada é a fragmentação interna .

Este espaço restante dentro do bloco de tamanho fixo não pode ser alocado para nenhum processo, pois não seria suficiente para satisfazer a solicitação de memória pelo processo. Vamos entender a fragmentação interna com a ajuda de um exemplo. O espaço de memória é particionado em blocos de tamanho fixo de 18.464 bytes. Vamos dizer que uma requisição de processo para 18.460 bytes e um bloco de tamanho fixo particionado de 18.464 bytes é alocada para o processo. O resultado é que 4 bytes de 18.464 bytes ficaram vazios, o que é a fragmentação interna.

A sobrecarga de manter o controle do furo interno criado devido à fragmentação interna é substancialmente maior que o número de furos internos. O problema da fragmentação interna pode ser resolvido particionando a memória no bloco de tamanho variável e atribuindo o bloco de melhor tamanho a um processo que solicite a memória. Ainda assim, não eliminará totalmente o problema da fragmentação interna, mas reduzirá em certa medida.

Definição de Fragmentação Externa

Fragmentação externa ocorre quando há uma quantidade suficiente de espaço na memória para satisfazer a solicitação de memória de um processo. Mas a solicitação de memória do processo não pode ser satisfeita, pois a memória disponível não está contígua. Se você aplicar a estratégia de alocação de memória de ajuste inicial ou melhor ajuste, isso causará fragmentação externa.

Quando um processo é carregado e removido da memória, o espaço livre cria o buraco no espaço da memória, e existem muitos buracos no espaço da memória, isso é chamado de fragmentação externa. Embora o primeiro ajuste e o melhor ajuste possam afetar a quantidade de fragmentação externa, ele não pode ser totalmente eliminado. A compactação pode ser a solução para fragmentação externa.

O algoritmo de compactação embaralha todo o conteúdo da memória em um lado e libera um grande bloco de memória. Mas o algoritmo de compactação é caro. Há uma solução alternativa para resolver o problema de fragmentação externa que permitirá que um processo adquira memória física de maneira não contígua. As técnicas para alcançar essa solução são paginação e segmentação.

Principais diferenças entre fragmentação interna e externa

  1. A razão básica por trás das ocorrências de fragmentação interna e externa é que a fragmentação interna ocorre quando a memória é particionada em blocos de tamanho fixo, enquanto a fragmentação externa ocorre quando a memória é particionada em blocos de tamanho variável .
  2. Quando o bloco de memória alocado para o processo sai um pouco maior que a memória requisitada, então o espaço livre deixado no bloco de memória alocado causa fragmentação interna. Por outro lado, quando o processo é removido da memória, ele cria espaço livre causando um buraco na memória, que é chamado de fragmentação externa.
  3. O problema da fragmentação interna pode ser resolvido particionando a memória em blocos de tamanho variável e atribuindo o melhor bloco de ajuste ao processo de solicitação. No entanto, a solução para fragmentação externa é a compactação, mas é dispendiosa de implementar, portanto, é necessário permitir que os processos adquiram memória física de maneira não contígua, para isso é introduzida a técnica de paginação e segmentação.

Conclusão:

O problema da fragmentação interna pode ser reduzido, mas não pode ser totalmente eliminado. A paginação e a segmentação ajudam a utilizar o espaço liberado devido à fragmentação externa, permitindo que um processo ocupe a memória de maneira não contígua.

Top