In parallelen Programmen gestaltet sich die Suche nach Nebenläufigkeitsfehlern mit klassischen
Entwicklungswerkzeugen sehr schwierig. Mit Wettlauferkennern lassen sich unsynchronisierte
Zugriffe auf gemeinsame Daten aufdecken, welche als Begleiterscheinung
zu Nebenläffigkeitsfehlern auftreten. Ein wichtiger Bestandteil des Wettlauferkenners
ist dabei die akkurate Erkennung der vom Programm durchgeführten Synchronisation,
denn nur dadurch ist es möglich, zwischen synchronisierten und unsynchronisierten
Zugriffen zu unterscheiden.
Diese Studienarbeit beschäftigt sich mit der zuverlässigen Erkennung von einem Synchronisationsschema,
der Bedingungssynchronisation, welche bisher nicht von allen Wettlauferkennern
korrekt behandelt wurde. Dabei wurde ein Verfahren entwickelt, welches nur
auf den Mitteln der dynamischen Programmanalyse beruht und somit nahtlos in einen
dynamischen Wettlauferkenner integriert werden kann. Die vorgestellten Erweiterungen
wurden in Helgrind+ implementiert und mit Programmen des PARSEC-Benchmarks
getestet. |