@phdthesis{Danner, type = {Bachelor Thesis}, author = {Simon Danner}, title = {Persistente Datenstrukturen f{\"u}r asynchrone Umgebungen am Beispiel autonomes Fahren}, address = {Offenburg}, url = {https://nbn-resolving.org/urn:nbn:de:bsz:ofb1-opus4-9826}, pages = {V, 81}, abstract = {In der vorliegenden Bachelorarbeit wird die Verwendung von persistenten Datenstrukturen in Anwendungen untersucht. Daf{\"u}r werden zun{\"a}chst verschiedene Eigenschaften von bestehenden Implementierungen persistenter Datenstrukturen im Vergleich zu ephemeralen Implementierungen der Datenstrukturen untersucht. Hierbei werden Laufzeiten und Speicherverbrauch analysiert. Dabei wird gezeigt, in welchen F{\"a}llen die Verwendung von persistenten Datenstrukturen Vorteile gegen{\"u}ber der Verwendung ephemeralen Datenstrukturen bringt. Im zweiten Teil wird die Verwendung von persistenten Datenstrukturen in asynchronen Umgebungen untersucht. Hierf{\"u}r werden die grundlegenden Probleme aufgezeigt, die bei der Erzeugung von Thread lokalen Versionen geteilter Zust{\"a}nde entstehen. Es wird aufgezeigt, wie die verschiedenen Versionen durch ein Zusammenf{\"u}hrungsverfahren in einen gemeinsamen Zustand {\"u}berf{\"u}hrt werden k{\"o}nnen. Als konkrete Implementierung wurde eine Framework in Java entwickelt, welches versucht, dieses Problem wiederverwendbar zu l{\"o}sen. Das entwickelte Framework wird anhand einer Beispielsdom{\"a}ne evaluiert, indem die Performanz mit der Verwendung von expliziter Synchronisation verglichen wird. Hierbei wird gezeigt, dass in Situationen, in denen die Modifikationen viel Zeit ben{\"o}tigen, der Ansatz des Zusammenf{\"u}hren Vorteile gegen{\"u}ber expliziter Synchronisation bietet. Im letzten Teil der Arbeit wird die Verwendung eines geteilten persistenten Zustandes im an der Hochschule Offenburg durchgef{\"u}hrtem A 2 O Projekt untersucht, bei dem Software f{\"u}r eine autonomes Modellauto entwickelt wurde. Es werden die Schwierigkeiten bei der Umsetzung der im Framework entwickelten Techniken in C++, sowie m{\"o}gliche L{\"o}sungswege aufgezeigt.}, language = {de} }