Existe alguma proteção contra RAM corrompida nas rotinas de cópia de arquivos (no Windows)?

0

Recentemente eu encontrei um dos meu memory stick tem bytes ruins. Antes disso, suspeitava de hardware diferente, reinstalava o Windows e copiava meus arquivos de um disco para outro.

Existe uma chance, que muitos dos meus arquivos foram corrompidos se o buffer de cópia foi ocasionalmente sobrepondo com área de memória ruim?

Ou há algum protecton disso no Windows?

UPDATE

Eu tive falhas no sistema, reportando memória corrompida. Eu tive o teste de memória do Windows vendo nenhum erro (ou pode ser erro não era permanente), mas a versão gratuita do MemTest86 mostrou erros de memória no teste simples # 3.

    
por Dims 07.12.2016 / 05:43

1 resposta

3

Em sistemas de desktop de consumidor, não. Não há detecção de dados de memória corrompidos, desde que os dados incorretos sejam recuperados com sucesso. Eu sei que isso parece contraditório, mas é inteiramente possível. O controlador de memória trata os dados como uma caixa preta - ele não sabe ou não se importa com os dados, simplesmente obedece ao protocolo para concluir as transferências para dentro e para fora da DRAM. Se o protocolo for obedecido e os dados forem armazenados com sucesso na DRAM e não houver violações de protocolo quando os dados forem recuperados, o controlador de memória não tem idéia de que algo deu errado na DRAM. Não verifica o conteúdo para garantir que é o mesmo de quando foi armazenado. O sistema operacional também não faz isso. A tela azul da morte só é lançada no usuário se houver uma violação do protocolo durante uma transferência de memória, ou se você tiver o azar de ter o código / dados do sistema operacional corrompidos pela DRAM incorreta. É importante lembrar, no entanto, que mesmo no segundo caso, o BSOD não foi causado por nenhum mecanismo detectando intencionalmente erros. Seu sistema operacional é um grande programa como qualquer outro, portanto, se seu código ou dados executados estiverem corrompidos, ele pode tentar executar instruções inválidas, acessar dados que não possui ou qualquer outra ação ilegal que o sistema operacional faça detecte e trave como resultado.

Uma exceção é a memória que suporta Error Correcting Codes . Estas são pequenas somas de verificação que são armazenadas junto com os dados em uma DRAM (ou outro dispositivo de memória). Eles são usados pelo controlador de memória para garantir a integridade dos dados em si. Essa memória é mais cara e geralmente só é encontrada em servidores. O Windows tem um sistema bastante sofisticado para o tratamento de erros de ECC (uma vez que não são necessariamente fatais), mas sem a memória ECC, não há como detectar a corrupção de dados, desde que o é obedecida.

No entanto, isso não significa que tudo está perdido. Não há verificação ao vivo de memória corrompida, mas se você receber o BSOD devido a um problema de memória, o Windows pode detectar isso e ele irá agendar uma execução automática do Windows Memory Diagnostic Utility , que pode ajudar a identificar erros de memória. Você também pode executá-lo manualmente quando suspeitar que tem memória ruim que está corrompendo seus dados.

    
por 07.12.2016 / 20:25