Arthur Martens Ehemaliger Wissenschaftlicher Mitarbeiter
Hiwi
Marc Kastner Hiwi Projekt DanceOS
LP
5
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
Bitte einloggen, um als Mitglied der Gruppe
mitarb
mehr Information zu erhalten.
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.
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.
Organisation
Teilnehmer: Eine Gruppe aus 3 bis 6 Studenten.
Technisches Umfeld:
Analyse mehrfädiger Programme und der Synchronisation kritischer Abschnitte