Como copiar e colar arquivos grandes

0

Estou curioso para saber como os computadores executam "copiar" e "colar" pastas grandes. Eu li que copiar e colar de texto entre processos diferentes ou mesmo processo é conseguido, salvando o conteúdo em RAM e, em seguida, copiá-lo de lá para o local destinado.

Então, como as instruções do computador fluem ao copiar uma pasta de 10 GB em uma máquina com 2 GB de RAM e 4 GB de memória virtual máxima? A cópia do arquivo é diferente da cópia de texto.

Eu acho que é uma questão básica, mas qualquer link ou insight é apreciado.

    
por Sundeep 27.02.2013 / 17:12

1 resposta

5

A área de transferência não precisa manter o arquivo inteiro. Quando você copia um arquivo (ou arquivos), apenas seu caminho é colocado na área de transferência. Também é marcado como um arquivo - a área de transferência registra o tipo de conteúdo, como texto simples, texto formatado, arquivo, imagem, texto do Word, etc. Por isso, não é possível abrir uma imagem no Paint, pressione Ctrl + C e, em seguida, cole-o em um diretório - porque você copiou uma imagem e os diretórios guardam os arquivos, não as imagens.

Quando você cola um conteúdo compatível (ou seja, arquivo (s) e / ou pasta (s)) em um diretório, algum aplicativo manipula a operação de cópia / movimentação. Por padrão, será o processo explorer (o mesmo responsável por exibir o menu Iniciar e todas as janelas do explorador de arquivos), mas alguns aplicativos podem substituí-lo. [1]

O que acontece agora depende do que você está fazendo:

  • Se você estiver movendo um arquivo para outro diretório na mesma partição , ele não será movido fisicamente no disco, apenas seu caminho será atualizado [2] .
  • Se você estiver movendo um arquivo para outra partição , ele será dividido em partes do mesmo tamanho [3] e elas serão copiadas uma a uma, então o arquivo original será deletado. Pedaços muito pequenos retardarão o processo, pedaços muito grandes consumirão mais memória.
  • Exatamente o mesmo acontece quando você copia um arquivo (não importa se é a mesma partição ou não), exceto que o arquivo original não será excluído.
  • Escrever em um armazenamento externo (como drives USB) não funciona exatamente assim [4] e não sei exatamente o que acontece então. Meu palpite é que não é um processo contínuo de chunk-by-chunk, mas alguma outra coisa acontece em alguns trechos (relacionados a buffer?). Se alguém souber algo sobre isso, então fique à vontade para editar.

Anotações:

[1] Por exemplo, TeraCopy , que é uma boa substituição avançada de janela de cópia.

[2]. A estrutura do arquivo físico no disco rígido não se parece com a estrutura do diretório - é plana e toda a informação da hierarquia é armazenada em uma parte separada da partição. Como isso é feito exatamente depende do sistema de arquivos (por exemplo, veja MFT ). Esse bloco de informações contém todas as informações sobre locais de arquivos, etc. Assim, quando você move um arquivo dentro de uma partição, não há necessidade de movê-lo fisicamente - apenas as informações de caminho precisam ser atualizadas.

[3] Não literalmente, nada será dividido no disco rígido. O programa que lida com o processo de cópia funcionará como se houvesse vários fragmentos separados, mas o arquivo original não será tocado. É puramente virtual.

[4] Você pode vê-lo ao usar o TeraCopy: o "progresso previsto" não funciona como em unidades fixas; em vez disso, o "progresso real" é alcançado, então o "progresso previsto" é expandido e assim por diante. A janela de cópia padrão do Explorer também tem soluços USB.

    
por 27.02.2013 / 20:33