Heeb, Dominic and Keller, Fabian (2015) Dynamic Parallel Checker. Student Research Project thesis, HSR Hochschule für Technik Rapperswil.
SA_TechnischerBericht_f3keller_d1heeb.pdf - Supplemental Material
Download (871kB) | Preview
Abstract
Die Arbeit "Dynamic Parallel Checker" behandelt die Entwicklung und Implementation eines Algorithmus zur Erkennung von Nebenläufigkeitsfehlern (Race Conditions) während der Laufzeit (dynamisch).
Der entwickelte Algorithmus basiert auf dem Vector Clock Algorithmus von Colin J. Fidge und Friedmann Mattern [ACSC, 1988]. Mit dem Vector Clock Algortihmus ist es möglich, nebenläufige Schreib- und Lesezugriffe in eine partielle Ordnung zu bringen, die sog. HappendBefore Beziehung. Locks und Unlocks sowie Thread oder Task Starts und Joins implizieren dabei eine Synchronisation der Vector Clocks zwischen den involvierten Threads bzw. Tasks, also eine Happend-Before Beziehung. Pro Thread oder Task werden alle nötigen Ereignisse, Zugriffe sowie Synchronisationen, in einer History protokolliert. Dies erlaubt es, anschliessend Data Races zu identifizieren: Ein Data Race liegt vor, wenn Zugriffe ohne HappenedBefore Beziehung mit mindestens einer Schreiboperation auf dieselben Ressourcen stattgefunden haben.
Die Implementation des Algorithmus instrumentiert Microsoft Intermediate Language Code (MSIL) mit Hilfe der Mono Cecil Bibliothek. Daher ist es möglich, mit dem Dynamic Parallel Checker alle für das .NET-Framework entwickelten Applikationen zu überwachen. Der bestehende MSIL Code wird um Codestellen erweitert, welche die Dynamic Parallel Checker Library aufrufen und mit Informationen beliefern. Diese Informationen werden schliesslich von Algorithmus verwertet, um Data Races zu detektieren.
Item Type: | Thesis (Student Research Project) |
---|---|
Subjects: | Topics > Software > Optimization Topics > Software > Testing and Simulation > Unit-Testing Area of Application > Development Tools Technologies > Programming Languages > C# Technologies > Frameworks and Libraries > .NET Metatags > IFS (Institute for Software) |
Divisions: | Bachelor of Science FHO in Informatik > Student Research Project |
Depositing User: | OST Deposit User |
Contributors: | Contribution Name Email Thesis advisor Bläser, Luc UNSPECIFIED |
Date Deposited: | 17 Mar 2016 08:51 |
Last Modified: | 17 Mar 2016 08:51 |
URI: | https://eprints.ost.ch/id/eprint/490 |