Quando salvamos um arquivo no windows - a localização real do arquivo no disco rígido é aleatória ou determinista?

2

Eu quero saber quando tentamos salvar um arquivo no disco rígido como o sistema operacional salva o arquivo no disco rígido. Dois computadores com a mesma configuração e o mesmo status interno salvarão o arquivo no mesmo local em seu disco rígido ou seus endereços serão aleatórios?

    
por Ratna 22.06.2013 / 12:48

2 respostas

4

Os sistemas de arquivos determinísticos são principalmente usados por vários algoritmos para determinar o melhor local para novos dados. Mas não é possível 100% duplicar todo o estado interno, então você deve considerar que:

  • diferentes sistemas de arquivos (ext4, btrfs, NTFS ...) usam diferentes algoritmos de alocação,

  • que também pode ser influenciado pelo programa fazendo a escrita (por exemplo, um arquivo que cresce para 100 MB devagar às vezes será alocado de forma diferente de um arquivo criado por fallocate () '100 MB de uma só vez),

  • bem como outros programas gravando em disco ao mesmo tempo, já que a alocação do arquivo B dependerá se o arquivo A já foi escrito ou não (todo o determinismo aqui desaparece quando você tem um sistema multi-core ou multi-CPU);

  • tamanho e localização dos arquivos existentes;

  • tamanho e localização dos arquivos excluídos (por exemplo, em sistemas de arquivos estruturados em log, os dados somente avançam)

  • diferentes tipos de disco (sistemas de arquivos podem se importar muito menos com a fragmentação ao gravar em discos de estado sólido do que em discos magnéticos);

  • corrupção física (se um setor for corrompido, o sistema de arquivos pode optar por colocar o arquivo inteiro em outro lugar, em vez de simplesmente pular esse setor);

E, finalmente, mesmo que os dois computadores de exemplo tenham cópias 1: 1 do conteúdo bruto do disco,

  • alguns sistemas de arquivos podem fazer escolhas aleatórias se isso for escrito no algoritmo. De um grep rápido, parece que pelo menos o Ext4 usa a escolha aleatória como um fallback quando todas as opções são iguais.
por 22.06.2013 / 13:12
2

Depende do sistema de arquivos, implementação e fatores externos.

  • O estado interno inclui absolutamente tudo sobre o computador, ou seja, o estado do processador, os dados na RAM, os dados atuais no disco e como são definidos, TUDO dentro do computador. Mas também existem fatores externos como, por exemplo, falhas de disco que não dependem do estado do computador - você deve levar isso em consideração.

  • "Layout aleatório" provavelmente seria determinista também. Computadores são deterministas. Os números "aleatórios" usados na ciência da computação são, na maioria dos casos, pseudo-aleatórios (e geralmente isso é totalmente aceitável, com pouquíssimas exceções). Portanto, mesmo que o sistema de arquivos imponha alguma aleatoriedade, é muito provável que ainda seja determinístico.

por 22.06.2013 / 13:20