Automatische Korrektur von Wettlaufbedingungen

  • Date:29.06.2012
  • Supervisor:

    Dipl.-Inform. Jochen Schimmel
    Dipl.-Inform. Korbinian Molitorisz

  • Person in Charge:Atanas Dimitrov
  • Links:Links_bearbeiten
    Präsentation
  • Mit steigendem Einsatz von Multikernprozessoren stoßen Entwickler immer mehr auf ein schwerwiegendes Problem: das Erzeugen von korrektem, parallelem Code. Wettlaufbedingungen sind vom Anwender und der Ablaufsteuerung des Betriebssystems abhängig und bleiben oft während der Qualitätssicherung der Softwareprodukte unentdeckt. Zahlreiche automatische Erkenner setzen sich mit diesem Problem auseinander. Deren Ergebnisse sind aber unzureichend, da sie gefundene Probleme nicht oder nur teilweise korrigieren. Existierende Verfahren zur automatischen Korrektur von Datenwettläufen sind stark eingeschränkt und verwenden unsichere Korrekturmechanismen. In dieser Arbeit wird ein Verfahren zur automatischen Korrektur von Datenwettläufen in parallelem und getestetem Code vorgestellt und implementiert. Fehlerstellen im Programmcode und in externen Bibliotheken werden durch Komponententests erkannt und durch sichere Synchronisationsblöcke und Austausch von parallel unsicheren Datenstrukturen ohne Benutzerbeteiligung im Quelltext korrigiert. Das Verfahren wird von einer statischen Kontroll- und Datenflussanalyse unterstützt. Zur Validierung wird ein Werkzeug zur automatischen Korrektur von .NET-Anwendungen implementiert und anhand von 7 parallelen .NET-Anwendungen evaluiert.