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

Konzeption und Realisierung eines statisch konfigurierten BFT-Systems im Kontext von Mehrkernern und automatischen Speicherverwaltungen

BetreuerJohannes Behl
ProfessorProf. Dr. Rüdiger Kapitza
Projektrefit
IBR GruppeDS (Prof. Kapitza)
ArtMasterarbeit
Statusoffen

Problem

Die effektive und effiziente Verwendung von Mehrkernsystemen ist spätestens seit dem Aufkommen von handelsüblichen x86-Prozessoren mit mehreren Kernen ein hochaktueller Forschungsbereich. Neben der geeigneten Parallelisierung vormals sequentiell ausgeführter Aufgaben ist der effiziente Umgang mit Speicher in diesem Zusammenhang von immanenter Bedeutung für die Leistungsfähigkeit von Systemen: Müssen sich die zu verarbeitenden Daten erst ihren Weg durch die mehrere Hierarchien umfassende Speicheranbindung moderner Rechnerarchitekturen bahnen, können Prozessorkerne noch so hoch getaktet sein, noch so viele Rechenwerke aufweisen, ihr Potential liegt zum großen Teil brach. Sind mehrere Kerne vorhanden, verschärft sich dieses Problem, da, abgesehen von Konfliktpunkten durch gemeinsam genutzten Zustand, geteilte Zwischenspeicher schnell zum Flaschenhals werden. Moderne Laufzeitumgebungen mit automatischer Speicherverwaltung sorgen für weiteres Ungemach: Die übermäßige Erzeugung von Objekten kann schnell dazu führen, dass Pufferstrategien von Prozessoren ins Leere laufen, da neue Objekte neue Speicherbereiche belegen, die erst wieder in die Zwischenspeicher geladen werden müssen. Einen ähnlichen negativen Effekt zeitigen Spei-cherbereinigungen, bei denen häufig noch verwendete Objekte in andere Bereiche umkopiert werden.

Aufgabenstellung

Dies berücksichtigend ist im Rahmen dieser Arbeit ein byzantinisch fehlertolerant repliziertes System (BFT-System) zu entwerfen und umzusetzen, dessen Verwendung von Speicher möglichst weitgehend durch statische Konfiguration beeinflusst werden kann.

BFT-Systeme verwenden komplexe, mehrphasige Protokolle, um die Ausführung von Anfragen zwischen Replikaten eines replizierten Dienstes zu koordinieren. In einem ersten Schritt ist eine bestehende, in Java verfasste Implementierung eines solchen, so genannten Einigungsprotokolls daraufhin zu untersuchen, welche Nachrichten und ferner welche Objekte benötigt werden, um einen bestimmten Durchsatz abwickeln zu können. Dem folgend ist eine Verwaltung für Objekte zu konzipieren, die deren weitreichende Wiederverwendung ermöglicht.Zu berücksichtigen sind hierbei unter anderem die speziellen Anforderungen der für Mehrkernprozessoren optimierten Protokollimple-mentierung, die Vermeidung von potentiellen Verklemmungen durch nicht ausreichend vorhandene Objekte bestimmen Typs sowie allgemein architektonische Gesichtspunkte bei der praktischen Umset-zung. Abschließend sind die Charakteristiken der entstandenen Implementierung geeignet zu bemessen und zu evaluieren.


aktualisiert am 19.02.2015, 00:02 von Johannes Behl
printemailtop