No contexto de um sistema de arquivos, a fragmentação é um uso ineficiente do espaço de armazenamento para armazenar o conteúdo de um único arquivo em locais diferentes em um disco, e não em uma única sequência contígua de bits em um único local. A fragmentação é um fenômeno natural que ocorre fisicamente em um disco rígido ou, às vezes, em um módulo de memória quando os dados não são gravados suficientemente perto na unidade.
Às vezes, os dados são gravados fora de ordem, o que significa que os dados não são colocados um ao lado do outro na unidade devido ao uso frequente de arquivos. Esses dados são referidos como fragmentos. Em algum momento, o sistema operacional precisaria acessar o sistema de arquivos para descobrir onde os diferentes fragmentos estão localizados na unidade.
Por exemplo, quando você cria um novo documento, digamos um arquivo do Word; o arquivo parece estar em um só lugar. Você pode abrir o arquivo, editá-lo ou excluí-lo - o que quiser. Todas as atividades parecem estar acontecendo fisicamente na unidade, pelo menos é o que você pensa.
O disco rígido pode estar salvando pedaços de arquivos em uma área do dispositivo, mas o restante existe literalmente em outro lugar do dispositivo de armazenamento. Em termos simples, fragmentação refere-se ao espaço de armazenamento desperdiçado no sistema de arquivos, permitindo que seja desenvolvido um espaço entre as diferentes partes de um arquivo.
A fragmentação ocorre basicamente no sistema de alocação de memória dinâmica, porque reservou muito espaço para o arquivo, resultando em áreas abertas ao seu redor.
De alguma forma, está relacionado ao particionamento de tamanho fixo. O sistema aloca memória para vários programas e processos, dividindo-os em pequenos blocos, conforme exigido pelo programa. No entanto, às vezes é alocado mais memória do que o necessário pelo processo, o que acaba resultando em excesso de memória sendo desperdiçado ou deixado sem uso.
Por exemplo, a memória só pode ser alocada para programas em blocos divisíveis por 4, 8 ou 16. Quando um processo solicita 24 bytes, geralmente obtém um bloco de 32 bytes, os 8 bytes em excesso são deixados sem uso. Assim, a memória não utilizada reside em um local alocado específico e é tão pequena que um novo processo não pode ser alocado a ela, resultando em desperdício. Este desperdício é denominado como fragmentação interna. Provavelmente, a única maneira de remover esse tipo de fragmentação é pela alocação dinâmica de memória.
A memória principal forma orifícios entre partes da memória alocada que são muito pequenas para conter qualquer processo. É a desvantagem dos algoritmos de alocação de armazenamento, quando blocos contíguos de espaços não utilizados não podem atender a uma nova solicitação, porque os espaços são pequenos demais para as necessidades de aplicativos de memória grande. Em termos simples, os blocos não contíguos criam buracos na memória, resultando em armazenamento não utilizado que está fora das regiões alocadas, o que significa que ele não pode ser usado junto com a memória principal para tarefas de memória maiores. Eles acabam sendo isolados e não podem ser totalmente eliminados do espaço da memória. Isso é chamado de fragmentação externa. Ele pode ser removido por compactação que embaralha o conteúdo da memória para reunir toda a memória livre.
Fragmentação interna:
A fragmentação interna refere-se a espaços extras que são desperdiçados quando mais memória é alocada para um processo do que o necessário. Geralmente ocorre quando blocos de memória de tamanho fixo são alocados aos programas ou processos.
Fragmentação externa:
A fragmentação externa, pelo contrário, refere-se aos espaços não utilizados que são formados entre os blocos contíguos de memória que não são adjacentes um ao outro.
Fragmentação interna:
O espaço livre que se forma dentro do bloco de memória alocado quando a memória alocada para o processo é maior que a memória solicitada pelo processo é chamada de fragmentação interna. O "interno" refere-se aos bytes não utilizados que residem nos blocos de memória maiores.
Fragmentação externa:
Quando a memória principal forma orifícios muito pequenos para atender a qualquer solicitação, é chamada fragmentação externa.
Fragmentação interna:
A principal razão pela qual a fragmentação interna ocorre é quando a memória é particionada em blocos de tamanho fixo .
Fragmentação externa:
A fragmentação externa é um fenômeno que ocorre quando a memória é dividida em blocos de tamanho variável com base no tamanho de diferentes processos.
Fragmentação interna:
A fragmentação interna é um fenômeno natural que pode ser eliminado pela alocação dinâmica de memória, que é alocar dinamicamente partes de blocos de memória para processos a pedido deles e liberá-lo quando não forem mais necessários durante a execução de um programa.
Fragmentação externa:
A fragmentação externa, por outro lado, pode ser eliminada por compactação, paginação e segmentação, para que a memória possa ser alocada para um processo de maneira não contígua..
A fragmentação interna e externa são fenômenos naturais relacionados ao espaço não utilizado da memória ou à perda de memória. A fragmentação interna sofre com a alocação ineficiente de memória, que ocorre quando a memória alocada para um processo é mais do que o solicitado, deixando espaço não utilizado no bloco de memória, eventualmente causando fragmentação interna. Depois que o processo é removido da memória física, o espaço livre é distribuído aqui e ali e nenhum bloco adjacente de memória pode ser encontrado, causando fragmentação externa. No entanto, ambos os fenômenos podem ser evitados. A fragmentação interna pode ser reduzida alocando memória aos processos dinamicamente, enquanto a fragmentação externa pode ser melhor evitada pela compactação, paginação e segmentação.