summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2008-08-14 05:41:51 +0000
committerPaul Buetow <paul@buetow.org>2008-08-14 05:41:51 +0000
commit286a28082bbbe386c992ae0b098a1efcf2660376 (patch)
treeaac03e9d62ce301cb11888a4cdc56c6701b04073
parent74832f317a4dd7a481808c1a67d33bd6273e5771 (diff)
ok
-rw-r--r--LaTeX/GLIEDERUNG.txt75
-rw-r--r--LaTeX/USED_SOFTWARE.txt23
-rw-r--r--LaTeX/bib/references.bib15
-rw-r--r--LaTeX/chapters/protokolle.tex10
4 files changed, 5 insertions, 118 deletions
diff --git a/LaTeX/GLIEDERUNG.txt b/LaTeX/GLIEDERUNG.txt
deleted file mode 100644
index 72649c3..0000000
--- a/LaTeX/GLIEDERUNG.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-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
diff --git a/LaTeX/USED_SOFTWARE.txt b/LaTeX/USED_SOFTWARE.txt
deleted file mode 100644
index 9e99348..0000000
--- a/LaTeX/USED_SOFTWARE.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Fuer die Erstellung dieser Diplomarbeit wurde zu 100% Open Source Software
-eingesetzt!
-
- Apache Ant - Als Buildtool fuer den Javacode
- Apache HTTPD (Hypertext Transfer Protocol Daemon) - Fuer Subversion Server via WebDAV (Web-based Distributed Authoring and Versioning)
- ArgoUML - UML Diagramme
- Dokumentation mittels Javadoc
- Eclipse, JAutoDoc Plugin, Subversion Plugin
- Firefox fuer das Betrachten von WebSVN und Javadoc, Internetrecherche
- FreeBSD (Berkeley Software Distribution) als Entwicklungssystem und Windows XP als Testsystem
- GVim (Graphical Vi IMproved) - Als Java-IDE sowie LaTeX-Editor
- Java SDK (Software Developer Kit) 1.6
- LaTeX (pdflatex + pstricks) - Fuer das Erstellen von PDF Dateien
- NetBSD Make (Standard make unter FreeBSD)
-Refactoring mittels Eclipse sowie FreeBSD Unix Skripte (zsh, sed, find)
- Rubber - Erleichtert das Kompilieren von LaTeX-Dokumenten
- Subversion Client
- The GIMP und ImageMagick - Fuer die Bearbeitung/Erstellung von Grafiken
- WebSVN - Webfrontend fuer Subversion
- astyle - Fuer die automatische Formatierung von Javacode
- aspell - Fuer die Rechtschreibpruefung von LaTeX Dokumenten
- xPDF - Fuer das Betrachten von PDF-Dateien
-zip - Fuer das Erstellen von VS-Sim. Distributionen
diff --git a/LaTeX/bib/references.bib b/LaTeX/bib/references.bib
deleted file mode 100644
index 0af7690..0000000
--- a/LaTeX/bib/references.bib
+++ /dev/null
@@ -1,15 +0,0 @@
-@book{Games, author="David Brackeen", title="Developing Games in Java", year= 2003, note="ISBN-13: 978-1592730056" }
-@book{Tanenbaum, author={Andrew Tanenbaum}, year={2003}, title={Verteilte Systeme - Grundlagen und Paradigmen}, note={ISBN: 3-8273-7057-4} }
-@book{Regexp, author={Jeffrey Friedl}, year={2006}, title={Mastering Regular Expressions}, note={ISBN-13: 978-0596528126}}
-@book{OOS, author={Prof. Heinrich Fassbender}, year={2006}, title={Vorlesung Objektorientierte Softwareentwicklung an der Fachhochschule Aachen}, note={http://www.fassbender.fh-aachen.de} }
-@book{Richtlinien, author={Prof. Heinrich Fassbender}, year={2008}, title={Programmierrichtlinien an der Fachhochschule Aachen}, note={http://www.fassbender.fh-aachen.de/Downloads/OOS/Programmierrichtlinien.pdf} }
-@book{Vorlesung, author={Prof. Martin Oßmann}, year={2007}, title={Vorlesung Verteilte Systeme an der Fachhochschule Aachen}, note={Mitschrift: ftp://ftp.buetow.org/pub/studium/FHAC\_VS-SS07/Mitschrift/verteilte-systeme.pdf} }
-@book{M32, author={Prof. Martin Oßmann}, title={M32 CPU Simulator}, note={http://www.ossmann.fh-aachen.de} }
-@book{Javadoc, title={Java Platform Standard Edition 6 Javadoc}, note={http://java.sun.com/javase/6/docs/api/}}
-@book{Java2D, title={Sun's Java 2D}, note={http://java.sun.com/products/java-media/2D/}}
-@book{Java2DAPI, title={Java 2D API}, note={http://java.sun.com/j2se/1.4.2/docs/guide/2d/spec.html}}
-@book{AntManual, title={Apache Ant Manual}, note={http://ant.apache.org/manual/index.html}}
-@book{AntIntro, title={Apache Ant Introduction}, note={http://www.developer.com/tech/article.php/989631}}
-@book{Algorithms, author={Thomas H. Cormen}, year={2001}, title={Introduction to Algorithms}, note={ISBN-13: 978-0262032933}}
-@book{AlgorithmsC, author={Robert Sedgewick}, year={1999}, title={Algorithms in C}, note={ISBN-13: 978-0201314526}}
-@book{Swing, author={Marc Loy}, year={2002}, title={Java Swing}, note={ISBN-13: 978-0596004088}}
diff --git a/LaTeX/chapters/protokolle.tex b/LaTeX/chapters/protokolle.tex
index 22ad002..7d7f625 100644
--- a/LaTeX/chapters/protokolle.tex
+++ b/LaTeX/chapters/protokolle.tex
@@ -101,7 +101,7 @@ Das Broadcast Protokoll verhält sich ähnlich wie das Ping-Pong Protokoll. Der Un
In diesem Fall wird nicht zwischen Client und Server unterschieden, so dass bei der Ankunft einer Nachricht jeweils die gleiche Aktion durchgef\"{u}hrt wird. Somit lässt sich, unter Verwendung mehrerer Prozesse (s. Abb. \ref{fig:BroadcastSturmProto}.) ein Broadcast erzeugen. P1 ist der Client und startet je eine Anfrage nach \textit{0ms} und \textit{2500ms}. Die Simulationsdauer beträgt hier genau \textit{5000ms}. Da ein Client nur Servernachrichten und ein Server nur Clientnachrichten empfangen kann, ist in dieser Simulation jeder Prozess (s. Tabelle \ref{tb:BroadcastSturmTasks}) gleichzeitig Server und Client.
-
+\newpage
\section{Das Protokoll zur internen Synchronisierung in einem synchronen System \small{\textit{(int-sync.dat)}}}
Bisher wurden nur Protokolle dargestellt, in denen die beteiligten Prozesse keine Uhrabweichungen hatten. Das Protokoll zur internen Synchronisierung ist ein Protokoll zur Synchronisierung der lokalen Prozesszeit, welches beispielsweise angewendet werden kann, wenn eine Prozesszeit aufgrund einer Uhrabweichung falsch geht. Wenn der Client seine (falsche) lokale Prozesszeit $t_c$ mit einem Server synchronisieren möchte, so schickt er ihm eine Clientanfrage. Der Server schickt als Antwort seine eigene lokale Prozesszeit $t_s$ zurück, womit der Client eine neue und genauere Prozesszeit f\"{u}r sich berechnen kann.
@@ -197,7 +197,7 @@ Aus Abbildung \ref{fig:TimeSync2Proto}. ist ersichtlich, dass nach Ablauf der Si
\label{tb:InterneSync2Tasks}
\end{table}
-
+\newpage
\section{Der Berkeley Algorithmus zur internen Synchronisierung \small{\textit{(berkeley.dat)}}}
\begin{figure}[h]
@@ -253,7 +253,7 @@ Dieses Protokoll verwendet folgende serverseitige Variable, die in den Prozessei
\item \textbf{PIDs beteiligter Prozesse} \textit{(Integer[]: [1,3])}: Dieser Vektor aus Integerwerten beinhaltet alle PIDs der Berkeley Clientprozesse, mit denen der Berkeley Server die Zeit synchronisieren soll. Das Protokoll funktioniert nicht, wenn hier eine PID angegeben wird die nicht existiert oder die das Berkeley Protokoll clientseitig nicht unterstützt. In diesem Fall würde ewig auf eine (fehlende) Clientantwort gewartet werden.
\end{itemize}
-
+\newpage
\section{Das Ein-Phasen Commit Protokoll \small{\textit{(one-phase-commit.dat)}}}
\begin{figure}[h]
@@ -294,8 +294,6 @@ Dieses Protokoll verwendet folgende serverseitige Variablen, die in den Prozesse
\item \textbf{PIDs beteiligter Prozesse} \textit{(Integer[]: pids = [1,3])}: Dieser Vektor aus Integerwerten beinhaltet alle PIDs der Clientprozesse, die festschreiben sollen.
\end{itemize}
-
-
\section{Das Zwei-Phasen Commit Protokoll \small{\textit{(two-phase-commit.dat)}}}
\begin{figure}[h]
@@ -680,6 +678,8 @@ Dieses Protokoll verwendet folgende serverseitige Variablen, die in den Prozesse
\end{table}
\newpage
+~
+\newpage
\section{Weitere Beispiele}
Bisher wurden alle verfügbaren Protokolle anhand von Beispielen aufgeführt. Mit dem Simulator lassen sich jedoch noch weitere Szenarien simulieren. Aus diesem Grund soll hier auf weitere Anwendungsbeispiele eingegangen werden.