Estaba leyendo otra pregunta sobre Memtest y comencé a preguntarme: ¿Cómo funciona Memtest86 con RAM defectuosa?
Piénselo: Memtest86 necesita almacenar información sobre qué tan grande es la RAM, qué puso en la RAM para comparar más adelante, dónde actualizar la pantalla y mucha más información. El acto de usar una variable requiere que la RAM funcione correctamente. Pero, ¿cómo puede obtener resultados confiables cuando ejecuta el programa en una RAM posiblemente defectuosa?
Una analogía a esto es ejecutar un programa de comprobación del disco duro desde el disco duro que está comprobando. Nunca haría eso, un bloqueo incorrecto podría afectar el programa de muchas maneras inesperadas
¿Cómo funciona Memtest86 con RAM defectuosa?
memtest86+
memtest
TheLQ
fuente
fuente
Respuestas:
Principalmente porque la cantidad de ram que se necesita para cargar memtest es extremadamente pequeña. Si el programa se ejecuta, es probable que la memoria en esta área esté bien.
La posibilidad de que ...
Es altamente improbable.
fuente
Memtest es bastante duradero, ya que realmente no depende de la RAM que está probando.
Por ejemplo, la prueba 0 usa un algoritmo de caminar , y todo lo que requiere para esa prueba es un solo puntero (probablemente en caché), porque solo compara dos direcciones de memoria consecutivas.
Entonces, si tenemos una memoria RAM de 3 bits, memtest lo carga con esto:
Y si la primera dirección está dañada, comparará dos ubicaciones aleatorias:
Y seguirá fallando, incluso si las variables de memtest están dañadas.
fuente
Memtest absolutamente tiene que hacer al menos una suposición, que al menos la memoria en la que está cargada es buena. Después de eso, puede escanear y probar el resto de la memoria en su totalidad.
Es posible que todavía pueda leer y detectar errores en su propia memoria, ya que, al ser el único programa cargado, debería tener acceso a prácticamente toda la memoria del sistema y así poder leer y comparar esa memoria con un muestra "bien conocido".
fuente
Por ser pequeño. Si algo de RAM es malo, cuanto más pequeño es el programa, menos probable es que alguna parte del programa se encuentre en uno de los puntos negativos. Teniendo en cuenta que arrancar lo suficiente como para cargar la prueba de memoria implicará algún código de firmware usando RAM, lo más probable es que si puede llegar tan lejos, las áreas bajas de RAM funcionan lo suficientemente bien como para que memtest pueda ejecutarlas.
fuente
Bueno, esto es lo que hace Memtest: escribe varios patrones (conocidos) en su RAM, lo lee y compara. Si hay una falta de coincidencia, su RAM debe estar dañada.
Si bien esto es cierto, hay algunos casos en los que no tiene otra opción. Siempre que pueda cargar el programa con éxito, debería poder realizar sus tareas de diagnóstico (incluso si se está ejecutando en un medio defectuoso de algún tipo).
Bueno, primero tiene que cargarse en la memoria. En la mayoría de los casos, esta memoria seguirá siendo buena. En el caso de que sea no , lo más probable es Memtest determinar que el programa en sí está dañado mediante la comparación de algunas variables en lugar de una suma de comprobación. En el caso de que no coincidan, sabrás instantáneamente que tu RAM es mala o que la copia que descargaste está dañada (y sería una tarea trivial determinar si esta es la causa o no).
TL, DR: Memtest86 + solo funciona asumiendo que el primer megabyte de su RAM todavía está bien (la ubicación donde probablemente se cargará). Suponiendo que esta área está dañada, Memtest86 + simplemente no funcionaría (lo cual es un indicador bastante rápido de que su RAM es mala sin siquiera haber ejecutado las pruebas).
fuente
Si la memoria RAM en la que la aplicación está guardando las variables es incorrecta, la mayoría de las pruebas fallarán.
El algoritmo escribe todo tipo de patrones diferentes y luego comprueba si están bien escritos al leerlos nuevamente, si una escritura o una lectura no fueron correctas, la prueba en cuestión fallará. Al ejecutar la mayoría de las pruebas y dejar que se ejecute durante varias horas, puede ver cuán estable es su RAM ...
fuente