TU BRAUNSCHWEIG
| Carl-Friedrich-Gauß-Fakultät | Informatik
Informatikzentrum

Teamprojekt verteilte Systeme: Synchrolyzer ein Werkzeug zur Synchronisationsanalyse in mehrfädigen Programmen

SemesterSommersemester 2015 [ Andere Semester: Winter 16/17 · Sommer 16 ]
IBR Gruppe(n)DS (Prof. Kapitza)
ArtTeamprojekt
Dozent
PhotoProf. Dr. Rüdiger Kapitza
Abteilungsleiter
kapitza[[at]]ibr.cs.tu-bs.de
+49 531 3913294
Raum 135
Assistent
PhotoArthur Martens
Wissenschaftlicher Mitarbeiter
martens[[at]]ibr.cs.tu-bs.de
+49 531 3913245
Raum 133
Hiwi
PhotoMarc Kastner
Hiwi
Projekt DanceOS
LP5
Hörerkreis Studierende der Informatik, Wirtschaftsinformatik und Informations-Systemtechnik im vierten Semester
Voraussetzungen

Gute kenntnisse in Objekt Orientierter Programmierung sowie Solide Programmierkentnisse in C oder C++ werden vorausgesetzt.

Jeder Teilnehmer benötigt einen gültigen y-Account beim GITZ

Anmeldung
Inhalt

Motivation

Will man die Moderne CPUs mit mehreren Prozessorkernen ausnutzen so kommt man um ein mehrfädiges Design der Software nicht herum. Mehrfädige Programme korrekt zu implementieren ist jedoch Aufwendig da kritische Bereiche wie z.B. der konkurierende Zugriff auf gemeinsam genutzte Daten synchronisiert werden muss. Dies erfolgt klassischerweise über Synchronisationsobjekte wie Mutexe oder Semaphoren.

Eine häufige Ursache, warum mehrfädige Programme nicht die erwartete Leistung zeigen, ist eine schlecht realisierte Synchronisation. Die Suche nach der Ursache ist jedoch sehr schwierig da kaum Werkzeugunterstützung hierfür vorhanden ist.

Aufgabenstellung

Ziel dieses Teamprojekts ist es Synchrolyzer, ein Analysewerkzeug für synchronisierte Bereiche in mehrfädigen Programmen zu entwickeln. Synchrolyzer soll aus zwei Komponenten bestehen: Das Synchrolizer Backend soll eine Bibliothek sein, welche alle Zugriffe auf Synchronisationsobjekte abfängt. Dabei sollen wichtige Informationen wie z.B. Zugriffszeitpunkt, Wartezeit und Name der Synchronisationsobjekte in einer Trace-Datei gespeichert werden. Die Implementierung einer solchen Bibliothek kann auf verschiedene Weise erfolgen, wobei jede ihre Vor- und Nachteile hat. Synchrolizer soll generisch implementiert werden, sodass verschiedene Backends implementiert und verwendet werden können.

Konzept

Während der Ausführung eines Programms kann es zu zehntausend oder mehr Zugriffen auf Synchronisationsobjekte kommen. Eine manuelle Analyse der Trace-Daten ist daher wenig sinnvoll. Hier kommt die zweite Komponente ins Spiel: Das Synchrolyzer Frontend, ein grafisches Werkzeug. Dieses soll Trace-Dateien einlesen, sie nach verschiedenen Kriterien filtern und die Daten grafisch in Form eines Sequenzdiagramms anzeigen. Mögliche Filter Optionen wären Wartezeiten oder der Zeitraum des Zugriffszeitpunktes. Da selbst nach dem Filtern der Daten zu viele Information vorhanden sein können muss die GUI in der Lage sein, Information Zusammen zu fassen. Weiterhin soll eine Zoom-Funktion eine intuitive Möglichkeit bieten sich im gewählten Bereich mehr Details anzeigen zu lassen.

GUI

Organisation

Teilnehmer: Eine Gruppe aus 3 bis 6 Studenten.

Technisches Umfeld:

  • Analyse mehrfädiger Programme und der Synchronisation kritischer Abschnitte
  • GUI Entwicklung mit C++ und QT-Framework

QT-Logo

Material

Kapitel

Qt LinksAllgemeine Links


aktualisiert am 01.05.2015, 00:52 (dynamischer Inhalt) von Arthur Martens
printemailtop