Vorlesungsfolien

Übungsaufgaben

Im Rahmen der Übungen wird ein Programm entwickelt, welches erst rein lokal und später in verschiedenen Varianten verteilt implementiert wird.

Grundlage ist das Game of Life, welches 1969 vom Mathematiker John Horton Conway an der Universität Cambridge erfunden wurde. Schauplatz dieses Spieles ist ein unendliches zweidimensionales Gitter aus quadratischen Zellen, die "tot" (weiß, logisch null, aus) oder "lebendig" (schwarz, logisch eins, ein) sein können und in diesen beiden Zuständen vom Zustand der Nachbarzellen abhängen. Zu Beginn einer "Life"-Simulation, werden entweder willkürlich oder aber mit einem Zufallsgenerator bestimmte Zellen "zum Leben erweckt". Die dadurch erhaltene Anordnung erhält die Bezeichnung "Generation 0". Ausgehend von "Generation 0" wird nun das Spielfeld in diskreten Zeitschritten mittels folgender Regeln ausgewertet: 

  • Ein toter Punkt, der genau 3 lebendige Nachbarn hat, wird zum Leben erweckt.
  • Ein lebendiger Punkt, der 2 oder 3 lebendige Nachbarn hat, bleibt am Leben
  • Ein lebendiger Punkt, der weniger als 2 oder mehr als 3 lebendige Nachbarn hat, stirbt.
  • Als Nachbarn gelten alle Punkte der 8er Nachbarschaft. Bei Randpunkten werden die entsprechenden Punkte am gegenüberliegenden Rand mit ausgewertet. 

Ein interessanter Link ist wonders of math , dort werden verschiedene Startmuster gezeigt und beschrieben.

Lernziele

  • Einblick in Programmierung verteilter Systeme
  • Anwendung verschiedener Kommunikationsformen 
  • Nutzung von Middlewareplattformen 

Generelle Hinweise zu den Übungen

Zu jeder Übung gibt es ein Aufgabenblatt mit der Problemstellung und Hinweisen zur Lösung der Aufgaben.

Alle Lösungen sind bis zum genannten Abgabetermin an den Übungsleiter in Form von dokumentiertem Quelltext per E-Mail zu schicken. Voraussetzung für das Bestehen einer Aufgabe ist der termingerechte Eingang der E-Mail, sowie eine kurze mündliche Präsentation der wichtigsten Lösungsideen und eine praktische Demonstration der Ergebnisse am Rechner. Für die Demonstration wird die Version der Lösung verwendet, die per Mail geschickt wurde.

Die Aufgaben sind in (2-3)er Gruppen zu lösen, welche in der ersten Übung gebildet werden. 

 

AufgabenstellungVorgabeAbgabe
1. Life als lokale ImplementierungVorgabe102.11.2017
2. Portables Dokumentenformat Life als Client/Server ImplementierungLink zu einer externen Seite Vorgabe216.11.2017
3. Portables Dokumentenformat Life mittels MPI-14.12.2017
4. Portables Dokumentenformat Life mittels TACOLink zu einer externen Seite TACO-Beispiel17.01.2018
5. Life und totale Replikation-
6. Life und partielle Replikation-

Übungsfolien

Literatur zur VL

  • Computer Networks (Fourth Edition), Tannenbaum, ISBN 0130661023
  • Distributed Systems - Principles and Paradigms. Tannenbaum, van Steen, ISBN 0130888931 
  • Distributed Systems - Concepts and Design, Coulouris, Dollimore, Kindberg, ISBN 0201619180 
  • C++ Programming Language, Stroustrup, ISBN 0201700735