Einleitung Danksagung Ossmann Andre Herbst Florian Buetow Motivation Was ist ein verteiltes System? Warum Simulation? Grundkomponenten von verteilten Systemen Client/Server-Modell Globale/Lokale Zeit Prozesse (Uhrabweichung, Ausfallw'keit, Zeit) Nachrichten (Verlustwkeit, Max/Min Uebertragungszeit) Ereignisse Protokolle Der Simulator GUI Start/Pause/Wiederholen/Zuruecksetzen Visualisierung Zeitachse Prozesse Nachrichten Farbliche Differenzierung "Sidebar" Ereignisse Variablen Loggfenster Expertenmodus Lamport/Vektorzeit aktivierung/deaktivierung Anti-Aliasing Loggfilter Lokale und globale Ereignisse Ereignisse Prozessabsturz Prozesswiederbelebung Aktivierung/Deaktivierung von Protokollen Protokollereignis Protokolle Beispiel (Dummy) Protokoll Ping-Pong Protokoll Broadcast-Sturm Protokoll Interne Synchronisation in einem synchronen System Christians Methode zur externen Synchronisierung Berkeley Algorithmus zur internen Synchronisierung Ein-Phasen Commit Protokoll Zwei-Phasen Commit Protokoll Ungenuegender (Basic) Multicast Zuverlaessiger (Reliable) Multicast Zeitformate "Normale Zeit" Logische Uhr von Lamport Vektor-Zeitstempel Einstellungen Simulationseinstellungen Prozesseinstellungen Protokolleinstellungen Die Implementierung des Simulators Gliederung der Pakete Einstellungseditoren Ereignisse Interne Ereignisse Protokolle Protokoll-API Serialisierungen von Simulationen Rueckwaertkompatibel Programmierrichtlinien Entwicklungsumgebung (Siehe USED_SOFTWARE.txt) Ausblick Akronyme Literaturverzeichnis BRAINSTORMING: Implementierungssprache Java Beliebig viele Prozesse und Protokolle auf einmal Simulationsabspielgeschwindigkeit Taskmanager