Eu estava lendo outra pergunta sobre o Memtest e comecei a me perguntar: Como o Memtest86 funciona com RAM ruim?
Pense bem: o Memtest86 precisa armazenar informações sobre o tamanho da RAM, o que é colocado na RAM para comparar posteriormente, onde atualizar a tela e muito mais informações. O ato de usar uma variável requer que a RAM esteja funcionando corretamente. Mas como você pode obter resultados confiáveis ao executar o programa com RAM possivelmente defeituosa?
Uma analogia a isso é executar um programa de verificação de disco rígido a partir do disco rígido que você está verificando. Você nunca faria isso, um bloco defeituoso pode afetar o programa de várias maneiras inesperadas
Como o Memtest86 funciona com RAM ruim?
memtest86+
memtest
TheLQ
fonte
fonte
Respostas:
Principalmente porque a quantidade de memória RAM necessária para carregar o memtest é extremamente pequena. Se o programa for executado, é provável que a memória nessa área esteja correta.
A chance de que-
É altamente improvável.
fonte
O Memtest é bastante durável, pois não depende realmente da RAM que está testando.
Por exemplo, o teste 0 usa um algoritmo de caminhada , e tudo o que é necessário para esse teste é um único ponteiro (provavelmente armazenado em cache), porque ele está apenas comparando dois endereços de memória consecutivos.
Portanto, se tivermos um stick de RAM de 3 bits, o memtest o carrega com isso:
E se o primeiro endereço estiver corrompido, ele comparará dois locais aleatórios:
E ainda falhará, mesmo se as variáveis do memtest estiverem corrompidas.
fonte
O Memtest absolutamente precisa fazer pelo menos uma suposição, de que pelo menos a memória em que ela é carregada é boa. Depois disso, ele pode digitalizar e testar o restante da memória na sua totalidade.
Pode ser que ele ainda consiga ler e detectar erros em sua própria memória, pois, sendo o único programa carregado, deve ter acesso a praticamente toda a memória do sistema e, assim, poder ler e comparar essa memória com um amostra "conhecida como boa".
fonte
Sendo pequeno. Se alguma RAM é ruim, quanto menor o programa, menor a probabilidade de que parte do programa esteja em um dos pontos ruins. Considerando que inicializar o suficiente para carregar o teste de memória envolverá algum código de firmware usando RAM, é provável que, se você puder chegar tão longe, as áreas baixas da RAM estejam funcionando suficientemente bem para que o memtest possa executar a partir delas.
fonte
Bem, é isso que o Memtest faz - ele grava vários padrões (conhecidos) na sua RAM, lê de volta e compara. Se houver uma incompatibilidade, sua RAM deverá estar corrompida.
Embora isso seja verdade, há alguns casos em que você não tem escolha. Contanto que você possa carregar o programa com êxito, ele poderá executar suas tarefas de diagnóstico (mesmo que esteja sendo executado em algum tipo de mídia com defeito).
Bem, ele deve carregar-se primeiro na memória. Na maioria dos casos, essa memória ainda será boa. Caso isso não ocorra, o Memtest provavelmente determinará que o próprio programa está corrompido comparando algumas variáveis locais com uma soma de verificação. No caso de não corresponderem, você saberia instantaneamente que sua RAM está ruim ou a cópia baixada está corrompida (e seria uma tarefa trivial determinar se a última é a causa ou não).
TL, DR: O Memtest86 + funciona apenas assumindo que o primeiro megabyte de sua RAM ainda esteja bom (o local em que ele seria carregado provavelmente). Assumindo que esta área está corrompida, o Memtest86 + simplesmente não funcionaria (o que é um indicador bastante rápido de que sua memória RAM está ruim mesmo sem a execução dos testes).
fonte
Se a RAM na qual o aplicativo está salvando as variáveis estiver ruim, a maioria dos testes falhará.
O algoritmo grava todos os tipos de padrões diferentes e, em seguida, verifica se estão bem escritos, lendo-os novamente; se uma gravação ou uma leitura não correu corretamente, o teste em questão falhará. Ao executar a maioria dos testes e deixá-lo rodar por várias horas, você poderá ver como sua RAM é estável ...
fonte