Titelaufnahme

Titel
Error detection based on execution-time monitoring / von Dieter Steiner
VerfasserSteiner, Dieter
Begutachter / BegutachterinPuschner, Peter
ErschienenWien, 2016
Umfangxiii, 149 Seiten : Illustrationen, Diagramme
HochschulschriftTechnische Universität Wien, Diplomarbeit, 2017
Anmerkung
Zusammenfassung in deutscher Sprache
SpracheEnglisch
DokumenttypDiplomarbeit
Schlagwörter (DE)PMU / monitoring / WCET / BCET / Error detection / Linux / ARM / Raspberry Pi / gem5 / temporal behavior / perf_event
URNurn:nbn:at:at-ubtuw:1-95001 Persistent Identifier (URN)
Zugriffsbeschränkung
 Das Werk ist frei verfügbar
Dateien
Error detection based on execution-time monitoring [2.55 mb]
Links
Nachweis
Klassifikation
Zusammenfassung (Deutsch)

Echtzeitsysteme finden heutzutage Anwendungen in allen erdenklichen Lebensbereichen - von der Steuerung einer Waschmaschine, bis hin zur autonomen Navigation von Marsrobotern. Bei diesen Systemen ist die Korrektheit des Systemverhaltens nicht nur von den logischen Ergebnissen der durchgeführten Berechnungen, sondern auch von dem physikalischem Moment, zu dem die errechneten Resultate vorliegen, abhängig. Die Bestimmung der maximalen Ausführungszeit einer Berechnung ist daher unerlässlich um zu bestimmen, ob diese Systeme die an sie gestellten zeitlichen Vorgaben einhalten können. Doch enthält die Ausführungszeit einer Berechnung noch weitere verwertbare Informationen? Im Rahmen dieser Diplomarbeit wird untersucht ob - und falls ja, wie - sich das Zeitverhalten eines Programms durch Hardwarefehler verändert, und ob es möglich ist die Beobachtung der Laufzeit eines Programms zur Erkennung von Fehlern in der Abarbeitung zu verwenden um frühzeitig ungewolltes Systemverhalten zu erkennen und zu verhindern. Zu diesem Zweck werden repräsentative Microbenchmarks identifiziert und implementiert, ein Fault-Injection-Modell erstellt, und darauf aufbauend bewusst Fehler in den Programmcode eingeschleust. Die so modifizierten Benchmarks werden anschließend vermessen und die Ergebnisse dieser Messungen mittels geeigneter Verfahren ausgewertet. Die daraus gewonnenen Resultate und Schlussfolgerungen werden aufbereitet und sowohl graphisch als auch textuell präsentiert und interpretiert. Im Zuge dieser Arbeit wird die Robustheit der vorgeschlagenen Methode gezeigt, es werden - algorithmenabhängig - bis zu 70% vorher undetektierter Fehler erkannt. Die Methode kann mit vertretbarem Aufwand in vorhandene Systeme integriert werden und bietet eine weitere Absicherung gegen mögliche Fehler.

Zusammenfassung (Englisch)

Nowadays real-time systems can be found in every aspect of modern life - from controlling a washing machine to the autonomous navigation of Mars rovers. In this systems, the correctness of a systems behavior does not only depend on the actual computation results, but also on the physical instant at which these results are produced. Determining the maximal execution time of a calculation is, therefore, essential to ascertain if the system can meet its temporal requirements. But is there more usable information within an algorithms execution time? This thesis investigates if respectively how the temporal behavior of an algorithm changes in the presence of errors that are caused by hardware faults. It examines if the observation of task run times can be used to detect these errors, so that undesired system behavior and failures can be averted early. To reach this goal, a number of microbenchmarks will be identified and implemented; a fault injection model will be defined, and - building onto it - errors will be injected into the benchmarks- program code. Those modified benchmarks will then be measured and the results evaluated with suitable methods. The gathered evaluations and insights will be presented in graphical and textual ways. This work will show a robust method, detecting - depending on the algorithm - up to 70% of previously undetected errors. The method can be implemented into existing systems with reasonable effort and overhead, and provides an additional layer of protection against errors.