Tod durch Softwarefehler

28/10/2013 - 16:50 von Frank Buss | Report spam
Durch fehlerhafte Software in der Firmware von Toyota ist mindestens
eine Person gestorben:

http://www.eetimes.com/document.asp?doc_id19903
(Cookies ausschalten, wenn man alle drei Seiten ohne Anmeldung lesen will)

Ich habe zwar nicht den 800-Seiten Bericht gelesen (falls der überhaupt
öffentlich zugànglich ist), aber der Titel des Artikels ist etwas
missverstàndlich, da ich es für unwahrscheinlich halte, daß der Unfall
durch einen Bit-Flip zustande kam, sondern eher weil in der Software
tatsàchlich Stack Overflow und Race-Condition Fehler waren.

Wie kann man Stack Overflow Fehler bei so kritische Software übersehen?
In jeder besseren IDE, z.B. die CodeWarrior Reihe, bekommt man eine
automatisch generierte Analyse des Call-Trees angezeigt, mit Ausnutzung
des Stacks (kann der GCC glaube ich auch mit Zusatzprogrammen, die die
Intermediate-XML-Dateien auswerten). Auch wenn da viele Threads parallel
liefen, war deren Anzahl endlich und wahrscheinlich auch nur einmal beim
Programmstart gestartet, sodaß man jeden Thread einfach addieren könnte.

Race-Conditions sind natürlich schwieriger zu finden, aber durch
sorgfàltige Programmierung und Analyse der Locks auch vermeidbar.

Eine andere Frage: wie kann man ein Programm gegen Bit-Flips absichern?
Man müsste ja alle möglichen Auswirkungen von Bit-Flips (auch im Flash)
untersuchen. Und was macht man, wenn man ein Bit-Flip detektiert? Auf
der Autobahn eine Vollbremsung einleiten wàre wohl nicht so gut.

Frank Buss, http://www.frank-buss.de
electronics and more: http://www.youtube.com/user/frankbuss
 

Lesen sie die antworten

#1 Gerrit Heitsch
28/10/2013 - 16:57 | Warnen spam
On 10/28/2013 04:50 PM, Frank Buss wrote:

Eine andere Frage: wie kann man ein Programm gegen Bit-Flips absichern?



RAM mit ECC verwenden? Die Erkennung passiert in Hardware, ebenso die
Korrektur von Einzelbitfehlern.

Problem ist eher, daß die meisten Controller das nicht können weils eben
billig sein muss.


Man müsste ja alle möglichen Auswirkungen von Bit-Flips (auch im Flash)
untersuchen. Und was macht man, wenn man ein Bit-Flip detektiert? Auf
der Autobahn eine Vollbremsung einleiten wàre wohl nicht so gut.



Single-Bit-Fehler sind bei Verwendung von ECC-RAM problemlos
korrigierbar. Kippen zwei Bits in einem Wort geht das nicht mehr so
einfach, aber wenn es wirklich kritisch ist, dann muss man eben den
Aufwand treiben...

Gerrit

Ähnliche fragen