O que o computador precisa fazer para mover alguns arquivos?

2

Eu estava tentando mover alguns arquivos para uma pasta (E: para E: então tenho certeza de que está se movendo e não copiando), mas está levando alguns minutos para mover alguns arquivos de 60k. Eu estava com a impressão de que a movimentação de arquivos deveria ser muito rápida, então fiquei curioso sobre o que o computador precisa fazer para mover alguns arquivos para uma pasta?

(Estou usando o Windows Vista Home Premium Sp2, mas, na verdade, esperava segmentar a pergunta de maneira mais abrangente)

    
por Pacerier 01.09.2011 / 04:12

2 respostas

3

Mesmo que você esteja apenas movendo os arquivos para uma pasta que esteja no mesmo disco, o sistema de arquivos ainda terá que trabalhar um pouco para mover os arquivos. A tabela de arquivos mestre (MFT) deve ser atualizada para refletir o novo local dos arquivos, e o diário do sistema de arquivos também deve ser atualizado para permitir que as alterações sejam revertidas caso a movimentação seja interrompida por uma queda de energia, etc. / p>

Não sei como calcular exatamente quantas coisas diferentes o sistema de arquivos precisa fazer, mas podemos supor que ele terá que fazer pelo menos 60 mil mudanças na MFT. Essas muitas mudanças envolvem muitas leituras e gravações pequenas, em que os discos rígidos não são muito rápidos.

    
por 01.09.2011 / 04:56
1

Warning: Late Answer Below

  1. O computador cria uma lista de todos os arquivos e pastas (recursivamente) que precisam ser movidos (a menos que sejam armazenados em cache, o que é raro para todos os arquivos devido a diretórios aninhados bastante predominantes).

  2. Para cada arquivo, o computador:

    • R : verifica se há algum identificador aberto de outros programas no arquivo,
    • R : calcula o tamanho do arquivo,
    • R : verifica se o destino existe,
    • R : verifica se há espaço suficiente no destino,
    • R : verifica se existe um arquivo com o mesmo nome no destino,
    • R : verifica permissões de gravação para o destino,
    • R : lê o arquivo da origem,
    • W : grava o arquivo no destino,
    • R : lê a propriedade do arquivo, as permissões e as informações da ACL na origem,
    • W : grava a propriedade do arquivo, as permissões e as informações da ACL no destino,
    • R : lê a tabela de arquivos,
    • W : escreve a tabela de arquivos atualizada,
    • W : apaga (sobrescreve com valores aleatórios ou 0's) o arquivo original (ou parte dele),
    • R : lê a tabela de arquivos novamente (para a exclusão),
    • W : grava a tabela de arquivos atualizada novamente (para a exclusão).

Isto coloca os números em 15 operações por arquivo (10 de leitura, 5 de escrita; na verdade o número de operações são mais), portanto, para arquivos de 60k havia mais de 900k operações, ou seja, 5k operações por segundo. >

Assumindo que tanto a origem quanto o destino estivessem na mesma mídia (quase sempre removendo a possibilidade de operações simultâneas verdadeiras), novamente assumido como sendo um disco rígido (acrescentando muito movimento mecânico acontecendo), operações de 5k (mais operações de arquivo de fundo) é muito bom.

E o acima é para o menor de todos os arquivos.

Considerando o tamanho dos arquivos, a maioria dos sistemas operacionais:

  1. faz operações de arquivo em partes (mais leitura e escrita),
  2. tenta não esgotar seu disco rígido ao não usá-lo em 100%.

Se você chamar seu computador com lentidão depois de esse , tente mover arquivos e documentos físicos (60k deles) UM por UM.

Sorry for the sarcasm in the last line, I was trying to drive home my point.

    
por 30.08.2016 / 14:38