Blerg!
Verdammt, ich habe versucht, das in einen Kommentar zu packen, aber die Formatierung reichte nicht aus, also musste ich auf eine Antwort zurückgreifen.
Statistiken
Der Grund, warum Sie es nicht gesehen haben, ist, dass die Wahrscheinlichkeit, dass Sie es sehen, gering ist und, was noch wichtiger ist, Sie nicht gesucht haben . Die Wahrscheinlichkeit, dass Sie einen Speicherfehler bemerken, wird aus den folgenden Quoten berechnet:
- ein kosmischer Strahl, der die Erde trifft
- der Strahl trifft an Ihrem Standort
- Der Strahl wird nicht durch etwas anderes blockiert oder absorbiert
- der Strahl trifft Ihren Computer
- der Strahl trifft deinen RAM
- der Strahl flippte ein wenig im RAM
- das Bit befindet sich in einem Block des momentan zugewiesenen Speichers
- der verwendete Speicher ist entweder:
- getestet von einem Programm wie memtest86 +
- genau im richtigen Moment getestet, um den Fehler zu erkennen (z. B. zwischen der Mikrosekunde, in der das Programm den Speicher schreibt, dann zurückliest und vergleicht)
- einem Block ausführbaren Codes zugeordnet, in diesem Fall auch:
- Das geänderte Bit ändert den Code erheblich genug, um den Code drastisch zu beeinflussen
- Der drastische Effekt führt zum Absturz
- das abstürzende Programm stürzt tatsächlich sichtbar ab, anstatt einfach zu verschwinden
- Das Programm ist etwas, das Sie bemerken und fürchten
- Sie verwerfen es nicht einfach als fehlerhaftes Programm
- getestet von einem Programm wie memtest86 +
Dies ist natürlich der Fall, wenn wir von vorübergehenden, intermittierenden Fehlern wie von kosmischen Strahlen und Interferenzen von anderen elektronischen Geräten sprechen. Wenn das RAM-Modul tatsächlich defekt ist, werden Sie wahrscheinlich mit Sicherheit irgendwann Probleme sehen (allerdings ist es sogar denkbar, dass Sie niemals den gesamten physischen RAM zu einem bestimmten Zeitpunkt verwenden und der Fehler klein und vollständig lokalisiert ist) In einem Bereich, der niemals von Ihnen verwendet wird, wird möglicherweise kein Fehler angezeigt.
Die Chancen eines transienten Fehler können in der Tat überraschend hoch sein, aber wahrscheinlich hat Speicherfehler im Laufe der Jahre gesehen und einfach hättest sie nicht wegen zwei der oben genannten Listenelemente fest: der ausführbaren Code und der Buggy-ignorierend.
Beispiele
Wenn das geänderte Bit zufällig in ein Datenstück fällt, werden Sie es möglicherweise nicht einmal bemerken, da es leicht ertrinken könnte.
Wenn zum Beispiel ein Bit in einem Block von Textdaten umgedreht wurde, stellen Sie möglicherweise fest, dass es The end.
sich in etwas geändert hat Tje end.
, aber anstatt zu bemerken, dass das Bit h
durch ein ersetzt wurde, j
da ein einzelnes Bit umgedreht wurde (Sie können es gerne bestätigen). Sie würden eher davon ausgehen, dass Ihr Finger die falsche Taste drückt, weil sie sich direkt nebeneinander befinden und den Fehler beheben.
Schlimmer noch, wenn das umgedrehte Bit Teil einer Bild-, Audio- oder Videodatei war, bemerken Sie möglicherweise überhaupt nichts. Wenn es zufällig genau an der richtigen Stelle war, könnte dies zu einer spürbaren Änderung führen, z. B. dass die Breite oder Höhe des Bildes falsch ist, oder ein leichtes Knallgeräusch im Song oder etwas Korruption im Video, was zu einer kurzzeitigen Blockierung führt während der Dekodierung. Angesichts der schiere Größe von Mediendateien sind die Chancen, dass sich ein einzelnes Bit genau am richtigen Ort befindet, jedoch äußerst gering. Es ist viel wahrscheinlicher, dass die Farbe eines einzelnen Pixels geringfügig geändert wird (z. B. dunkelrot zu etwas dunklerem Rot), und Sie würden es wahrscheinlich nie bemerken. Möglicherweise ändert sich ein einzelner Peak der Wellenform des Songs, sodass die Amplitude etwas niedriger ist und Sie dies wahrscheinlich nie bemerken würden.konnte es nicht bemerken
Vorbehalt
Die erschreckende Tatsache ist, dass sich ein solcher unerkannter, vorübergehender Fehler tatsächlich einschleichen und unbemerkt bleiben kann. Aus diesem Grund war ich sehr besorgt über die Verwendung von Flash-Medien für Sicherungen, da diese manchmal beschädigt werden. Wenn Sie dies nicht bemerken, könnte sich die Beschädigung in Ihre Sicherung einschleichen und dauerhaft enden. Darüber hinaus kann das Testen auf Beschädigungen schwierig sein, da Änderungen erwartet werden, sodass Sie jede einzelne Änderung manuell prüfen müssen, was bei Binärdateien ein Alptraum wäre.
Wegbringen
Ich nehme an, die gute Seite, wenn es eine gibt, ist, dass, wie ich in der Liste sagte, die Änderung zufällig in einem Teil der Daten landen muss, der eigentlich wichtig ist. Für die meisten Menschen ist die Wahrscheinlichkeit, dass sie in wichtigen, unersetzlichen Daten, die gespeichert werden sollen, landet, sehr gering.
Sie können ein Programm wie memtest verwenden, um Ihren RAM auf Fehler zu überprüfen. Wenn es vorübergeht, müssen Sie sich nur um die "eine-zu-eine-Milliarden-Chance" kümmern (ich überlasse die exakte Berechnung, falls gewünscht), dass ein paar wichtige Daten beschädigt werden, ansonsten ein bisschen "Bit-rot" hier oder dort wird normalerweise nicht viel anderes tun, als vielleicht ein Programm zum Absturz zu bringen und Sie dazu zu bringen, bei den Entwicklern zu schwören (obwohl selbst dann, wenn es es nicht noch einmal tut ...)