Mover dados da partição para a partição na mesma unidade

0

Mover dados de uma unidade para outra é lento. Copiar dados em uma unidade para si mesmo é lento. Mover dados de uma unidade para si mesmo é rápido.

Se eu estiver movendo dados na unidade SAME, mas em uma partição diferente, ela não deve ser rápida? Eu assumi que o movimento seria uma alteração de tabela de gordura e não um movimento real (cópia / exclusão) dos dados no disco. Como posso ter certeza de que isso é o que acontece?

FYI Estou no mac osx e estou lidando com duas partições fat32 no mesmo externo.

    
por Jacksonkr 08.05.2014 / 14:59

1 resposta

3

If I'm moving data on the SAME drive but a different partition, shouldn't it be fast? I assumed the move would be a fat table change...

Não, porque um FAT é parte de um sistema de arquivos, e cada partição contém um sistema de arquivos. Portanto, se você mover dados para um sistema de arquivos diferente, o sistema operacional não poderá simplesmente reorganizar as coisas em uma tabela de gordura - há dois a serem considerados e eles não se mapearão arbitrariamente. O destino deve alocar parte do seu próprio espaço, e a fonte (em um movimento) libera alguns.

Se fosse apenas uma questão de reorganizar as tabelas, você encontraria inconsistências como:

  • Eu tenho uma partição de 100 GB e uma partição de 2 GB. Se mover um para o outro apenas envolveria a reorganização de tabelas, eu seria capaz de mover um arquivo de 20 GB do primeiro para o último.

  • Mova os arquivos para uma partição em um pendrive e movo o pendrive: se mover arquivos apenas envolveu reorganizar tabelas, onde estão os arquivos quando coloco em outro computador?

Eu percebo que o segundo caso não faz parte do contexto ao qual você está se referindo, mas a razão pela qual eles equivalem à mesma coisa é porque de outra forma você precisaria de outra camada de abstração armazenada no dispositivo. Não pode ser algo simplesmente inventado e manipulado pelo sistema operacional, porque você pode mover o dispositivo e / ou usá-lo em um sistema operacional diferente: agora onde está a informação?

Dispositivos podem conter metadados indicando o tamanho, o tipo e o deslocamento de suas partições. Felizmente, eles não contêm informações sobre o conteúdo dessas partições. Eu digo, felizmente, porque isso é obrigado a criar mais problemas do que resolve.

Os sistemas de arquivos pretendem ser entidades discretas de nível superior, e não coisas que fazem parte de um sistema maior de armazenamento (embora possam ser isso em alguns contextos).

Alguns dispositivos, como SSDs, podem implementar um recurso de otimização semelhante ao que você sugere em um nível de hardware, no entanto. Em outras palavras, se você mover algo de uma partição para outra em um SSD, ele só poderá reorganizar algumas referências, na medida em que esse hardware esteja fazendo a contabilidade como um todo, independentemente de como ele foi dividido em partições diferentes em uma partição. maior nível de abstração. Isso seria totalmente opaco para o sistema operacional e tudo mais, mas você pode perceber isso como um movimento extremamente rápido. Ele requer que o dispositivo execute algum tipo de firmware que apresente um conjunto de endereços de bloco virtual para o sistema operacional e, em seguida, os mapeie para o físico em si, o que as unidades tradicionais não fazem: endereços para o sistema operacional, de modo que ele possa fazer o melhor uso possível disso. Portanto, as implementações do sistema de arquivos (FAT, etc.) devem assumir que estão organizando uma região física real de um dispositivo e não há camada acima do sistema de arquivos para tentar organizar o conteúdo do dispositivo inteiro (além de dividi-lo em partições).

    
por 08.05.2014 / 15:28