Quais são as passagens em uma desfragmentação de disco?

Quando você apaga um arquivo, seu espaço é marcado como livre. Quando você salva um, ele é colocado no primeiro espaço livre disponível. Mas se o arquivo for maior que o espaço, uma parte dele será colocada lá e o restante (ou a próxima parte) no próximo espaço livre disponível. Alguns sistemas operacionais não fazem isso no início - se houver espaço no disco que nunca foi usado, ele salva os arquivos preferencialmente lá, mas isso significa que a área do arquivo fica cheia de espaços vazios à medida que os arquivos são excluídos e, no final, eles têm ser usado.

Desculpe a introdução para iniciantes, foi para pessoas que não sabem o que é desfragmentar ou por que é necessário. A desfragmentação é o processo de eliminar todos os espaços livres aleatórios e, em seguida, coletar todos os pedaços de arquivos quebrados e salvá-los novamente como blocos contíguos, o que torna a recuperação de arquivos muito mais rápida. Antes que isso possa acontecer, o programa de desfragmentação precisa fazer um mapa de todo o disco, para descobrir os espaços vazios e os tamanhos dos arquivos. Então ele começa a mover arquivos. Ele escolhe um arquivo acima do primeiro espaço livre a ser movido. Se o espaço livre for grande o suficiente, ele apenas o move para lá. Caso contrário, ele encontra o arquivo a seguir ao espaço livre e o move temporariamente para outro lugar, aumentando o espaço livre, até que haja espaço para mover o primeiro arquivo em uma peça contígua. Ele continua fazendo isso com arquivo após arquivo até que não haja mais espaço livre; nesse ponto, o disco é completamente desfragmentado.

Não sei qual dessas operações, se houver alguma, você chamaria de "passe", além de talvez o mapeamento seja uma passagem e a desfragmentação outra. Mas esse processo pode demorar bastante, 24 horas ou mais, para uma unidade grande e bem cheia, e o usuário pode ficar impaciente e interromper o processo (ou tropeçar no cabo de alimentação) a qualquer momento. Portanto, o programa pode dividir o processo em segmentos, fazendo as movimentações fáceis primeiro que não exigem muita movimentação de arquivos. Pode ser difícil, ordenando os arquivos sem remover o espaço vazio e depois voltar pela segunda vez para compactar os resultados. Ele também pode executar diferentes classes de arquivos de uma só vez - primeiro os arquivos do sistema operacional, depois os executáveis ​​e os arquivos de dados - e isso pode ser considerado um passe. Tenho certeza que todo programa de desfragmentação tem sua própria maneira de fazer as coisas. O que todos eles têm em comum é que toda vez que move um arquivo (ou parte dele), ele precisa atualizar o diretório, para que, se for interrompido, nenhum dado seja perdido. Isso leva tempo e muita debulha de disco; portanto, muito pensamento é possível para reduzi-lo o máximo possível. É uma tarefa bastante complicada, fácil com um disco rígido de 100 MB, mas um pesadelo com um drive de 2 TB que está quase cheio.