Estou curioso para saber como os computadores executam "copiar" e "colar" de pastas grandes. Eu li que copiar e colar texto entre processos diferentes ou o mesmo processo é obtido salvando o conteúdo na RAM e copiando-o de lá para o local de destino.
Então, como as instruções do computador fluem ao copiar uma pasta de, digamos, 10 GB em uma máquina que possui 2 GB de RAM e 4 GB de memória virtual máxima. A cópia do arquivo é diferente da cópia do texto.
Acho que é uma pergunta básica, mas quaisquer links ou insights serão apreciados.
Responder1
A área de transferência não precisa conter 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 rastreia o tipo de seu conteúdo, como texto simples, texto formatado, arquivo, imagem, texto do Word etc. É por isso que você não pode, por exemplo, abrir uma imagem no Paint, pressionar Ctrl+ Ce depois cole-o em um diretório - porque você copiou uma imagem, e os diretórios contêm arquivos, não imagens.
Quando você cola um conteúdo compatível (ou seja, arquivo(s) e/ou pasta(s)) em um diretório, algum aplicativo irá realizar a operação de copiar/mover. Por padrão será o explorer
processo (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ês sãomover 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ês sãomover um arquivo para outra partição, ele será dividido em pedaços do mesmo tamanho [3] e estes serão copiados um por um, então o arquivo original será excluído. Pedaços muito pequenos retardarão o processo, pedaços muito grandes consumirão mais memória.
- Exatamente o mesmo acontecerá quando você estivercopiando um arquivo(não importa se é a mesma partição ou não), exceto que o arquivo original não será excluído.
- Gravando em um armazenamento externo(como unidades USB) não funciona exatamente assim [4] e não tenho certeza do que acontece exatamente. Meu palpite é que não é um processo contínuo, pedaço por pedaço, mas algo mais acontece a cada poucos pedaços (relacionado ao buffer?). Se alguém souber algo sobre isso, fique à vontade para editar.
Anotações:
[1]. Por exemploTeraCopy, que é um ótimo substituto para a janela de cópia avançada.
[2]. A estrutura física dos arquivos no disco rígido não se parece com a estrutura de diretórios - é plana e todas as informações de hierarquia são armazenadas em uma parte separada da partição. Como isso é feito exatamente depende do sistema de arquivos (por exemplo, vejaMFT). Esse bloco de informações contém todas as informações sobre a localização dos arquivos, etc. Portanto, quando você move um arquivo dentro de uma partição, não há necessidade de movê-lo fisicamente - apenas as informações do caminho devem ser atualizadas.
[3]. Não literalmente, nada será dividido no disco rígido. O programa que cuida do processo de cópia funcionará como se houvesse vários pedaços separados, mas o arquivo original permanecerá intacto. É puramente virtual.
[4]. Você pode ver isso ao usar o TeraCopy: o "progresso previsto" não funciona como em unidades fixas; em vez disso, o "progresso real" o acompanha, então o "progresso previsto" é expandido e assim por diante. A janela de cópia padrão do Explorer também apresenta problemas de USB.