From 871d68979709c3f1b64d3ba05270a46062b4b9e6 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 25 Jul 2008 10:35:50 +0000 Subject: foo --- LaTeX/chapters/appendix-b.tex | 1 + LaTeX/chapters/introduction.tex | 6 +- LaTeX/chapters/simulator.tex | 270 +-- LaTeX/diplomarbeit.pdf | 3448 +++++++++++++++++++++------------------ 4 files changed, 1944 insertions(+), 1781 deletions(-) (limited to 'LaTeX') diff --git a/LaTeX/chapters/appendix-b.tex b/LaTeX/chapters/appendix-b.tex index dd86e21..59226eb 100644 --- a/LaTeX/chapters/appendix-b.tex +++ b/LaTeX/chapters/appendix-b.tex @@ -4,5 +4,6 @@ \acro{GUI}{Graphical User Interface} \acro{NID}{Nachrichten-Identifikationsnummer} \acro{PID}{Prozess-Identifikationsnummer} +\acro{RTT}{Round Trip Time} \acro{VS}{Verteiltes System} \end{acronym} diff --git a/LaTeX/chapters/introduction.tex b/LaTeX/chapters/introduction.tex index ac9f434..b12e2df 100644 --- a/LaTeX/chapters/introduction.tex +++ b/LaTeX/chapters/introduction.tex @@ -40,13 +40,13 @@ Ein verteiltes System wird anhand von Prozessen simuliert. Jeder Prozess nimmt h \subsubsection{Nachrichten} -Damit das Client/Server Modell angewandt werden kann, m\"{u}ssen Nachrichten verschickt werden k\"{o}nnen. Eine Nachricht kann von einem Client- oder Serverprozess verschickt werden und kann beliebig viele Empf\"{a}nger haben. Der Inhalt einer Nachricht h\"{a}ngt vom verwendeten Protokoll ab. Was unter einem Protokoll zu verstehen ist, wird sp\"{a}ter behandelt. Um eine Nachricht zu kennzeichnen besitzt jede Nachricht eine \textbf{eindeutige} Nachrichten-Identifikationsnummer (NID). +In einem verteiltem System m\"{u}ssen Nachrichten verschickt werden k\"{o}nnen. Eine Nachricht kann von einem Client- oder Serverprozess verschickt werden und kann beliebig viele Empf\"{a}nger haben. Der Inhalt einer Nachricht h\"{a}ngt vom verwendeten Protokoll ab. Was unter einem Protokoll zu verstehen ist, wird sp\"{a}ter behandelt. Um eine Nachricht zu kennzeichnen besitzt jede Nachricht eine \textbf{eindeutige} Nachrichten-Identifikationsnummer (NID). \subsubsection{Lokale und globale Uhren} In einer Simulation gibt es \textbf{genau eine} globale Uhr. Sie stellt die aktuelle und \textbf{immer korrekte} Zeit dar. Eine globale Uhr geht nie falsch. -Zudem besitzt jeder beteiligter Prozess eine eigene lokale Uhr. Sie stellt die aktuelle, jedoch nicht zwangsm\"{a}ig global-korrekte, Zeit des jeweiligen Prozesses dar. Wenn die Prozesszeit nicht global-korrekt ist (nicht der globalen Zeit gleicht), dann wurde die Prozessuhr entweder im Laufe einer Simulation neugesetzt, oder sie geht wegen einer Uhrabweichung falsch. Die Uhrabweichung gibt an, um welchen Faktor die Uhr falsch geht. Wenn eine lokale Uhr nicht neugesetzt wird und auch keine Uhrabweichung hat, dann gleicht ihre Zeit die der globalen Uhr. +Zudem besitzt jeder beteiligter Prozess eine eigene lokale Uhr. Sie stellt die aktuelle, jedoch nicht zwangsm\"{a}ig global-korrekte, Zeit des jeweiligen Prozesses dar. Wenn die Prozesszeit nicht global-korrekt ist (nicht der globalen Zeit gleicht), dann wurde die Prozessuhr entweder im Laufe einer Simulation ge\"{a}ndert, oder sie geht wegen einer Uhrabweichung falsch. Die Uhrabweichung gibt an, um welchen Faktor die Uhr falsch geht. Wenn eine lokale Uhr nicht ge\"{a}ndert wird und auch keine Uhrabweichung hat, dann geht sie stets global-korrekt. Neben diesen ``normalen'' Uhren sind auch die \textbf{Vektor-Zeitstempel} sowie die \textbf{logische Uhr von Lamport} von Interesse. Jeder Prozess besitzt zus\"{a}tzlich einen Vektor-Zeitstempel f\"{u}r die Vektorzeit, sowie einen Lamportzeitstempel f\"{u}r die Lamportzeit. F\"{u}r die Vektor- und Lamportzeiten gibt es hier, im Gegensatz zu der normalen Zeit, keine globalen \"{A}quivalente. @@ -70,5 +70,5 @@ Eine Simulation besteht auch aus der Anwendung von Protokollen. Es wurde bereits In Abbildung \ref{fig:ClientServerProtokolle} sind 3 Prozesse dargestellt. Prozess 1 unterst\"{u}tzt serverseitig das Protokoll ``A'' und clientseitig das Protokoll ``B''. Prozess 2 unterst\"{u}tzt clientseitig das Protokoll ``A'' und Prozess 3 serverseitig das Protokoll ``B''. D.h., Prozess 1 kann mit Prozess 2 via Protokoll ``A'' und mit Prozess 3 via Protokoll ``B'' kommunizieren. Die Prozesse 2 und 3 sind zueinander inkompatibel und k\"{o}nnen voneinander erhaltene Nachrichten nicht verarbeiten. -In der Regel k\"{o}nnen Clients nicht mit Clients und Server nicht mit Server kommunizieren. Je nach verwendetem Protokoll kann dies jedoch variieren. Alle vom Simulator verf\"{u}gbaren Protokolle werden sp\"{a}ter genauer behandelt. +Clients k\"{o}nnen nicht mit Clients, und Server nicht mit Server kommunizieren. F\"{u}r eine Kommunikation wird stets mindestens ein Client und ein Server ben\"{o}tigt. Dieser Einschr\"{a}nkung kann aber umgangen werden, indem Prozesse ein gegebenes Protokoll sowohl server- als auch clientseitig unters\"{u}tzt (siehe Broadcast-Sturm Protokoll sp\"{a}ter). Alle vom Simulator verf\"{u}gbaren Protokolle werden sp\"{a}ter genauer behandelt. diff --git a/LaTeX/chapters/simulator.tex b/LaTeX/chapters/simulator.tex index 65cb659..f931bca 100644 --- a/LaTeX/chapters/simulator.tex +++ b/LaTeX/chapters/simulator.tex @@ -225,7 +225,7 @@ In diesem Abschnitt wird auf die m\"{o}glichen Simulationseinstellungen genauer \subsection{Simulationseinstellungen} -Beim Erstellen einer neuen Simulation erscheint zun\"{a}chst das dazugeh\"{o}rige Einstellungsfenster (Abbildung \ref{fig:Simulationseinstellungen}). In der Regel reicht es, wenn der Benutzer hier die Standardwerte \"{u}bernimmt. Es besteht auch die M\"{o}glichkeiten nach Erstellen einer Simulation die Einstellungen zu \"{a}ndern, indem der Benutzer das Einstellungsfenster erneuert unter ``Editieren $\rightarrow$ Einstellungen'' aufruft. +Beim Erstellen einer neuen Simulation erscheint zun\"{a}chst das dazugeh\"{o}rige Einstellungsfenster (Abbildung \ref{fig:Simulationseinstellungen}). In der Regel reicht es, wenn der Benutzer hier die Standardwerte \"{u}bernimmt. Es besteht auch die M\"{o}glichkeiten nach Erstellen einer Simulation die Einstellungen nachtr\"{a}glich zu \"{a}ndern, indem der Benutzer das Einstellungsfenster erneuert unter ``Editieren $\rightarrow$ Einstellungen'' aufruft. \begin{figure}[htbp] \centering @@ -261,12 +261,12 @@ Jeder Prozess besitzt folgende Variablen, die entweder via dem Variablen-Tab in \item $t := $ Aktuelle Prozesszeit in ms \item $t' := $ Die neu verstrichene Zeit in ms \end{itemize} - Die Neue Zeit berechnet sich durch $t := t + t' * (1 + f)$. Der Faktor 0.0 besagt also, dass die Uhr keine Abweichung hat. F\"{u}r $f$ sind nur Werte $> -1.0$ erlaubt, da sonst die Prozessuhr r\"{u}ckw\"{a}rts laufen k\"{o}nnte. Bei allen anderen Werten wird der Faktor wieder automatisch auf 0.0 gesetzt. Da der Simulator intern mit Fliesskommazahlen doppelter Genauigkeit arbeitet, kann es zu kleinen, jedoch vernachl\"{a}ssigbaren, Rundungsfehlern kommen. + Die Neue Zeit berechnet sich durch $t := t + t' (1 + f)$. Der Faktor 0.0 besagt also, dass die Uhr keine Abweichung hat. F\"{u}r $f$ sind nur Werte $> -1.0$ erlaubt, da sonst die Prozessuhr r\"{u}ckw\"{a}rts laufen k\"{o}nnte. Bei allen anderen Werten wird der Faktor wieder automatisch auf 0.0 gesetzt. Da der Simulator intern mit Fliesskommazahlen doppelter Genauigkeit arbeitet, kann es zu kleinen, jedoch vernachl\"{a}ssigbaren, Rundungsfehlern kommen. \item \textbf{Prozessausfallwahrscheinlichkeit} \textit{(Integer, 0)}: Gibt eine Wahrscheinlichkeit in Prozent an, ob der gegebene Prozess w\"{a}hrend der Simulation zuf\"{a}llig abst\"{u}rzt. - \item \textbf{Lokale Zeit} \textit{(Long, 0)}: Gibt die aktuelle lokale Prozesszeit in ms an. Es empfiehlt sich daher die Simulation, bevor Prozesseinstellungen vorgenommen werden, zu pausieren. + \item \textbf{Lokale Zeit} \textit{(Long, 0)}: Gibt die aktuelle lokale Prozesszeit in Millisekunden an. Es empfiehlt sich daher die Simulation, bevor Prozesseinstellungen vorgenommen werden, zu pausieren. \item \textbf{Nachrichtenverlustwahrscheinlichkeit} \textit{(Integer, 0)}: Gibt eine Wahrscheinlichkeit in Prozent an, ob eine vom aktuell ausgew\"{a}hlten Prozess verschickte Nachricht unterwegs verloren geht. - \item \textbf{Maximale \"{U}bertragungszeit} \textit{(Long, 2000)}: Gibt die Dauer in ms an, die eine vom Prozess verschickte Nachricht maximal ben\"{o}tigt, bis sie einen Empf\"{a}ngerprozess erreicht. Der verwendete Wert wird zuf\"{a}llig zwischen (inklusive) der minimalen- und der maximalen Zeit gew\"{a}hlt. - \item \textbf{Minimale \"{U}bertragungszeit} \textit{(Long, 500)}: Gibt die Dauer in ms an, die eine vom Prozess verschickte Nachricht minimal ben\"{o}tigt, bis sie einen Empf\"{a}ngerprozess erreicht. Der verwendete Wert wird zuf\"{a}llig zwischen (inklusive) der minimalen- und der maximalen Zeit gew\"{a}hlt. + \item \textbf{Maximale \"{U}bertragungszeit} \textit{(Long, 2000)}: Gibt die Dauer in Millisekunden an, die eine vom Prozess verschickte Nachricht maximal ben\"{o}tigt, bis sie einen Empf\"{a}ngerprozess erreicht. Der verwendete Wert wird zuf\"{a}llig zwischen (inklusive) der minimalen- und der maximalen Zeit gew\"{a}hlt. Im weiteren Verlauf wird dieser Wert mit $t_{max}$ bezeichnet. + \item \textbf{Minimale \"{U}bertragungszeit} \textit{(Long, 500)}: Gibt die Dauer in Millisekunden an, die eine vom Prozess verschickte Nachricht minimal ben\"{o}tigt, bis sie einen Empf\"{a}ngerprozess erreicht. Der verwendete Wert wird zuf\"{a}llig zwischen (inklusive) der minimalen- und der maximalen Zeit gew\"{a}hlt. Im weiteren Verlauf wird dieser Wert mit $t_{min}$ bezeichnet. \end{itemize} \begin{figure}[htbp] @@ -319,15 +319,6 @@ Das Dummy-Protokoll dient lediglich als leeres Template f\"{u}r die Erstellung e \subsection{Das Ping-Pong Protokoll} -\begin{figure}[htbp] - \centering - \fbox{\includegraphics[width=10cm]{images/ss-protokoll-ping-pong}} - \caption{Das Ping-Pong Protokoll} - \label{fig:PingPongProto} -\end{figure} - -Bei dem Ping-Pong Protokoll (Abbildung \ref{fig:PingPongProto}) werden zwischen zwei Prozessen, Client P1 und Server P2, st\"{a}ndig Nachrichten hin- und hergeschickt. Der Ping-Pong Client startet die erste Anfrage, worauf der Server dem Client antwortet. Auf diese Antwort wird vom Client wiederum geantwortet und so weiter. Jeder Nachricht wird ein Z\"{a}hler mitgeschickt, der bei jeder Station um eins inkrementiert- und jeweils im Loggfenster protokolliert wird. In der Simulation werden erst keine Antwortnachrichten mehr verschickt, wenn entweder eine Nachricht verloren geht, oder wenn die Simulationszeit das Ende erreicht hat. In Tabelle \ref{tb:PingPongTasks} sind alle f\"{u}r dieses Beispiel programmierten Ereignisse aufgef\"{u}hrt! Wichtig ist, dass Prozess 1 seinen Ping-Pong Client aktiviert, bevor er eine Ping-Pong Clientanfrage startet! Wenn die Eintrittszeiten f\"{u}r Aktivierung und das Starten der Anfrage identisch sind, so ordnet der Ereigniseditor diese Ereignisse automatisch in der richtigen Reihenfolge an. Anhand diesen Beispiels ist auch erkennbar, dass die noch nicht ausgelieferte Nachrichten noch g\"{u}n eingef\"{a}rbt ist. Alle ausgelieferten Nachrichten tragen schon die Farbe Blau. - \begin{table} \centering \fbox{ @@ -343,6 +334,16 @@ Bei dem Ping-Pong Protokoll (Abbildung \ref{fig:PingPongProto}) werden zwischen \label{tb:PingPongTasks} \end{table} + +\begin{figure}[htbp] + \centering + \fbox{\includegraphics[width=10cm]{images/ss-protokoll-ping-pong}} + \caption{Das Ping-Pong Protokoll} + \label{fig:PingPongProto} +\end{figure} + +Bei dem Ping-Pong Protokoll (Abbildung \ref{fig:PingPongProto}) werden zwischen zwei Prozessen, Client P1 und Server P2, st\"{a}ndig Nachrichten hin- und hergeschickt. Der Ping-Pong Client startet die erste Anfrage, worauf der Server dem Client antwortet. Auf diese Antwort wird vom Client wiederum geantwortet und so weiter. Jeder Nachricht wird ein Z\"{a}hler mitgeschickt, der bei jeder Station um eins inkrementiert- und jeweils im Loggfenster protokolliert wird. In der Simulation werden erst keine Antwortnachrichten mehr verschickt, wenn entweder eine Nachricht verloren geht, oder wenn die Simulationszeit das Ende erreicht hat. In Tabelle \ref{tb:PingPongTasks} sind alle f\"{u}r dieses Beispiel programmierten Ereignisse aufgef\"{u}hrt! Wichtig ist, dass Prozess 1 seinen Ping-Pong Client aktiviert, bevor er eine Ping-Pong Clientanfrage startet! Wenn die Eintrittszeiten f\"{u}r Aktivierung und das Starten der Anfrage identisch sind, so ordnet der Ereigniseditor diese Ereignisse automatisch in der richtigen Reihenfolge an. Anhand dieses Beispiels ist auch erkennbar, dass die noch nicht ausgelieferte Nachrichten noch g\"{u}n eingef\"{a}rbt ist. Alle ausgelieferten Nachrichten tragen bereits die Farbe Blau. + \begin{figure}[htbp] \centering \fbox{\includegraphics[width=10cm]{images/ss-protokoll-ping-pong-sturm}} @@ -407,6 +408,29 @@ Das Broadcast-Sturm Protokoll verh\"{a}lt sich \"{a}hnlich wie das Ping-Pong Pro \subsection{Das Protokoll zur internen Synchronisierung in einem synchronen System} +Bisher haben wir uns nur mit Protokollen besch\"{a}ftigt, in denen die beteiligten Prozesse keine Uhrabweichung hatten. Das Protokoll zur internen Synchronisierung ist ein Protokoll zur Synchronisierung der lokalen Prozesszeit, welches beispielsweise angewand weden kann, wenn eine Prozesszeit aufgrund einer Uhrabweichung falsch geht. Wenn der Client seine falsche lokale Zeit $t_c$ mit einem Server synchronisieren m\"{o}chte, so schickt er ihm eine Clientanfrage. Der Server schickt als Antwort seine eigene lokale Prozesszeit $t_s$ zur\"{u}ck, womit der Client seine neue und genauere Prozesszeit berechnen kann. Wie genau die neue Prozesszeit berechnet wird, wird im Folgenden beschrieben. + +\begin{table} + \centering + \fbox{ + \begin{tabular}{c|c|l} + \textbf{Zeit (ms)} & \textbf{PID} & \textbf{Ereignis} \\ + \hline + 00000 & 1 & Interne Sync. Client aktivieren \\ + 00000 & 2 & Interne Sync. Server aktivieren\\ + 00000 & 1 & Interne Sync. Clientanfrage starten\\ + 05000 & 1 & Interne Sync. Clientanfrage starten\\ + 10000 & 1 & Interne Sync. Clientanfrage starten\\ + \end{tabular} + } + \caption{Programmierte Ereignisse zur internen Synchronisierung} + \label{tb:InterneSyncTasks} +\end{table} + +Hier (Abbildung \ref{fig:TimeSyncProto}) stellt P1 den Client und P2 den Server dar. Da die \"{U}bertragungszeit $t_u$ einer Nachricht angenommen zwischen $t'_{min}$ und $t'_{max}$ liegt, setzt der Client P1 nach Empfang der Serverantwort seine lokale Prozesszeit auf $t_c := t_s + \frac{1}{2} (t'_{min} + t'_{max})$. Somit wurde die lokale Zeit von P1, bis auf einen Fehler $f$ mit $f < \frac{t'_{max} - t'_{min}}{2}$, synchronisiert. + +Der Clientprozess hat in der Abbildung \ref{fig:TimeSyncProto} als Uhrabweichung den Wert 0.1 und der Server hat als Uhrabweichung den Wert 0.0 konfiguriert. Der Client startet, wie in Tabelle \ref{tb:InterneSyncTasks} angegeben, nach 0ms, 5000ms und 10000ms seiner lokalen Prozesszeit jeweils eine Clientanfrage. In der Abbildung l\"{a}sst sich erkennen, dass die 2. und die 3. Anfrage nicht synchron zu der globalen Zeit (Sekunden-Gatter) gestartet werden. Dies ist auf die Uhrabweichung von P1 zur\"{u}ckzuf\"{u}hren. Nach Simulationsende ist die Zeit von P1 bis auf $15000ms - 15976ms = -976 ms$ synchronisiert. + \begin{figure}[htbp] \centering \fbox{\includegraphics[width=10cm]{images/ss-protokoll-time-sync}} @@ -414,174 +438,58 @@ Das Broadcast-Sturm Protokoll verh\"{a}lt sich \"{a}hnlich wie das Ping-Pong Pro \label{fig:TimeSyncProto} \end{figure} +\subsubsection{Protokollvariablen} + +Dieses Protokoll verwendet folgende zwei clientseitige Variablen, die in den Prozesseinstellungen unter dem Punkt ``Interne Sync. Client'' konfiguriert werden k\"{o}nnen. Serverseitig gibt es hier keine Variablen. + +\begin{itemize} + \item \textbf{Min. \"{U}bertragungszeit} \textit{(Long, 500)}: Gibt den Wert $t'_{min}$ in Millisekunden an + \item \textbf{Max. \"{U}bertragungszeit} \textit{(Long, 2000)}: Gibt den Wert $t'_{max}$ in Millisekunden an +\end{itemize} + +$t'_{min}$ und $t'_{max}$ sind die bei den Protokollberechnungen verwendeten Werte. Sie k\"{o}nnen sich allerdings von den tats\"{a}chlichen Nachrichten\"{u}bertragungszeiten $t_{min}$ und $t_{max}$ (siehe Sektion \"{u}ber Prozesseinstellungen) abweichen. Somit lassen sich auch Szenarien simulieren, in denen das Protokoll falsch konfiguriert wurde und die Zeitsynchronisation gr\"{o}ssere Ungenauigkeiten aufweisen kann. + \subsection{Christians Methode zur externen Synchronisierung} - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - lsdkfjds lfjds flsjfsljsd flsdjf sldkfjsdlfkj - - - - -\subsection{Berkeley Algorithmus zur internen Synchronisation} + +\begin{figure}[htbp] + \centering + \fbox{\includegraphics[width=10cm]{images/ss-protokoll-time-sync-2}} + \caption{Interne Synchronisierung und Christians Methode im Vergleich} + \label{fig:TimeSync2Proto} +\end{figure} + +Ein weiteres Protokoll f\"{u}r die Synchronisierung von Uhrzeiten funktioniert nach der Christians Methode zur externen Synchronisierung. Die Christians Methode benutzt die RTT (Round Trip Zeit) $t_{rtt}$, um die \"{U}bertragungszeiten von einzelnen Nachrichten zu approximieren. + +Wenn der Client seine lokale Zeit $t_c$ bei einem Server synchronisieren m\"{o}chte, so verschickt er eine Anfrage, und misst dabei die RTT $t_{rtt}$ bis die Serverantwort eintrifft. Die Serverantwort beinhaltet die lokale Prozesszeit vom Server $t_s$ von dem Zeitpunkt, als der Server die Antwort verschickte. Der Client setzt dann seine lokale Zeit neu auf $t_c := t_s + \frac{1}{2} t_{rtt}$, und zwar mit einer Genauigkeit von $\pm(\frac{1}{2} t_{rtt} - u_{min}$) wenn $u_{min}$ eine Schranke f\"{u}r eine Nachrichten\"{u}bertragung mit $t_{rtt} < u_{min}$ ist (siehe Vorlesung Verteilte Systeme an der FH Aachen). + + +Im Prinzip sieht eine Christians-Simulation so aus wie in Abbildung \ref{fig:TimeSyncProto}, daher wird hier auf eine einfache Abbildung vom Christians-Protokoll verzichtet. Viel Interessanter ist der direkte Vergleich zwischen dem Protokoll zur internen Synchronisierung und der Christians Methode der externen Synchronisierung (Abbildung \ref{fig:TimeSync2Proto}). Hier stellt P1 den Client zur internen Synchronisierung und P3 den Client zur externen Synchronisierung dar. P2 fungiert f\"{u}r beide Protokolle gleichzeitig als Server. P1 und P3 starten jeweils zu den lokalen Prozesszeiten 0ms, 5000ms und 10000ms eine Clientanfrage (Tabelle \ref{tb:InterneSync2Tasks}). P1 und P3 haben als Uhrabweichung 0.1 eingestellt und die Simulationsdauer betr\"{a}gt insgesamt 15000ms. + +Es ist zu ablesbar, dass P1 seine Zeit bis auf $15000ms - 14567ms = 433ms$ und P3 seine Zeit bis auf $15000ms - 15539ms = -539ms$ synchronisiert hat. In diesem Beispiel hat also das Protokoll zur internen Synchronisierung ein besseres Ergebnis geliefert. Dies ist allerdings nicht zwingend immer der Fall, da nach einer erneuerten Ausf\"{u}hrung alle Nachrichten wieder eine neue zuf\"{a}llige \"{U}bertragungszeit haben werden, die auf das eine oder andere Protokoll schlechte oder gute Auswirkungen haben k\"{o}nnen. + +\begin{table} + \centering + \fbox{ + \begin{tabular}{c|c|l} + \textbf{Zeit (ms)} & \textbf{PID} & \textbf{Ereignis} \\ + \hline + 00000 & 1 & Interne Sync. Client aktivieren \\ + 00000 & 1 & Interne Sync. Clientanfrage starten\\ + 00000 & 2 & Christians Server aktivieren\\ + 00000 & 2 & Interne Sync. Server aktivieren\\ + 00000 & 3 & Christians Client aktivieren \\ + 00000 & 3 & Christians Clientanfrage starten\\ + 05000 & 1 & Interne Sync. Clientanfrage starten\\ + 05000 & 3 & Christians Clientanfrage starten\\ + 10000 & 1 & Interne Sync. Clientanfrage starten\\ + 10000 & 3 & Christians Clientanfrage starten\\ + \end{tabular} + } + \caption{Programmierte Ereignisse, Vergleich interne und externe Synchronisierung} + \label{tb:InterneSync2Tasks} +\end{table} + +\subsection{Berkeley Algorithmus zur internen Synchronisierung} \subsection{Das Ein-Phasen Commit Protokoll} diff --git a/LaTeX/diplomarbeit.pdf b/LaTeX/diplomarbeit.pdf index eebf4db..7dcacfd 100644 --- a/LaTeX/diplomarbeit.pdf +++ b/LaTeX/diplomarbeit.pdf @@ -105,7 +105,7 @@ endobj << /S /GoTo /D (subsection.2.5.6) >> endobj 76 0 obj -(\376\377\0002\000.\0005\000.\0006\000\040\000B\000e\000r\000k\000e\000l\000e\000y\000\040\000A\000l\000g\000o\000r\000i\000t\000h\000m\000u\000s\000\040\000z\000u\000r\000\040\000i\000n\000t\000e\000r\000n\000e\000n\000\040\000S\000y\000n\000c\000h\000r\000o\000n\000i\000s\000a\000t\000i\000o\000n) +(\376\377\0002\000.\0005\000.\0006\000\040\000B\000e\000r\000k\000e\000l\000e\000y\000\040\000A\000l\000g\000o\000r\000i\000t\000h\000m\000u\000s\000\040\000z\000u\000r\000\040\000i\000n\000t\000e\000r\000n\000e\000n\000\040\000S\000y\000n\000c\000h\000r\000o\000n\000i\000s\000i\000e\000r\000u\000n\000g) endobj 77 0 obj << /S /GoTo /D (subsection.2.5.7) >> @@ -229,8 +229,9 @@ endobj /Filter /FlateDecode >> stream -xڍUKs0+tZ[RHJi^nNlL}Wl a2H}|5E~iie1֠f@ -] hBa!ˑXYQb46Qex7љOvnw+r%bnHL0(Qa$g9S1l@%b`#Als8|:v6FfmЧa>*L@R(ц]?vMYhrWŰqpR4/|X Wiֻ"g#Ce=d0ַ1ֶU\*x/X.ZueL*>(|֍۸ȀAF{+"Q¥gB޶<[QI$ ҈at9zBۉH ց$te^~(_?pHx o`rK!裮\q ]RcI?{ S)[nN7i]"3pSWA`mmsjiB4kr1GpE),O\ʤu1|O0YiR* cιyw+wɾwX軯W=e8.þˣj+MV9:endstream +xڍUR0+Lfj;h S +t҅I%v{eNE8#"?Xk|3 hg}PXHas4y*%FcaNu$=(#ƻ|2P4.t<^,(s#}ހgDbBA" +%w? NΙBaC- f鷳t65l> Q et/%B6{l*wEj(?my#<*]^:,/Oޅ>2,uq =ZT{rwڮ&/c*W|UA7xnE 53@\.=2ʵ2H" aHF ݧNDZXX,|$,+Y=϶)؀O5܋Gc4;|-ϳ85 *7ϊ1ض",rāh߹nZXkG!1$ԝl\ѳT;M^ ܇;N$#Jmz1,oHꤪʓ݂ +MrSn`u9oюdZ*$9כ(ѓP:~½xQ'̷%=aS]6qn`rK!裮\q ]RcI?{&Nlu̺9xvj~p|M9> endobj 176 0 obj << -/Length 2214 +/Length 2208 /Filter /FlateDecode >> stream -xKs6u1?$:s& ")c# 8gf#hRήr\D8GXq͇UJ )A*d"ᛜHܱ͔Xl! P5j_L5btzWT̖u+|I,*(b@}O6}T;vFD)(l% #4 ֚> -NR әpΗ{P6u #ffNgC@y=ESXR|21`=eK 7[D$FA*fҳ7vNYֻ}8iZw5"J)X#ɄJ"tj&fLpGv3άMMږ${ƴ>1=s=|Ru]fK5DK|UA{x -c$e ?[[67ܱ7ܞN2AΙعIKgu^nwCPS8"R(%6h5T-C(c\s41g;gՂ:yXӅdl%DEG >2#<5w{z|gIcuL Ն%a"|!K*:Y2}}2E!K~F -dpvFl.>jSĄ k|I Y46q#I{a54|jyuPwnsuɨ;h\3 -)C2_@Q*#@~xONPLP\{\(LF QN \-+GËv[)az唋2Y$g>E#G6*D+gҧ\9? */h Dg@ d?'ѐ=!ͥ=sa)O z;GqTsO#wLqxqeݜ\VqcaSvUrs5UgRs \B6*L0CF)Ew6`*b![)j?4sG@kR0f@gB6, ^Rެ v_mom^ְ1H.3Y(Y4Q1kDSg{6uM "ȕ7sgvuT')/!2wV)kRNjS=coO$0lOn:Mgd -JgBf_z9v(g~avV)Z e|ϳQ4ͥ=lVL|V|rWV iN=2:endstream +xM6:|9vm&IZ +&CI)SYtb=g#9hG3-rA̴pAivA-|mPJWИJMZyG+MM.݋og*c,7Dd~(s& ~kߋ劒EQ-*~|qns>˭rJ ր&ErJ_.6?MŦ( c$QpGJ)-]Q6j{"'Z,l>R*$tB&)(G*s%<;h, Ze+iAф`egׇ}bݔ*ʗR9grmP"^M_"՞%4(許I0%#bOln`!ưG w\SpzN\n-b:ad3\,Rbj3BOXXs 6Xb>X}G + ߢ21 f. +=/ `ix[,Nus8㪛%BW{"IL4cIDΌKAHC~yTo[!ͺeYtۺ['w70TeM2R-PU*%ɸcyT>榙;f$ +ҜSRy;? =REST /!` =Hy0ƨ ZˡY<(yk0Gs{U#`XVX[XE<]hX)OQBP*#.<5yZқuT +OeY+'*p(, }dziWGX*͵[sDJA0) ߖm9`lKFٴ+CUcqX}^[1F}9tRe' N\2핔q[D2o)c=eonQ׫Tj ~]!PN`R9ɹc4}La!L!͵7j~[ u{}S·<ɔLڲc!\ePF̒JPs d^We*͛u@ɾJCAN&UJy:Ou\ +Pu(7mmj{岕qŭSAvXg0sZ`=?X[B3lGp#p8&xRs{]7q5&K$$wuS~8~]4M*Xrs]rU6 7J*v%-P#~5b#f|^I Y46sIwa4|v=P5ns}Ũ`ڠY:5*qa>YE͵yI3;oj~]{;eWB-;{UJ)~yy\+u+ &HN%I\r? ( M?R# 9 +9n.Eъ(|1y|jAZͺ.;sOtژ+S%W\V)Wgrr\+\[i+o7lO}{SQ]]ōWAYX,8Zgs q6 jk\ +0p ׃Y?{+E@=+ k]Y,[4 ,3Jf]W؄;D.ߓ,YQfPx[2KW=_hϽ=^u{lʍ;RPzJ6vS6ĹC" {JpGg0r,?@;137"s{ݬ춨ۮ̛ +g]z _;endstream endobj 175 0 obj << /Type /Page @@ -592,7 +592,7 @@ endobj 197 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [115.2084 272.8864 398.7873 285.4156] +/Rect [115.2084 272.8864 405.6724 285.4156] /Subtype /Link /A << /S /GoTo /D (subsection.2.5.6) >> >> endobj @@ -769,20 +769,24 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 226 0 obj << -/Length 1972 +/Length 2076 /Filter /FlateDecode >> stream -xݛˎ6y --/Vh 3hMFN<}I(Q"3fjss( ʠ2AeB}Pv{xgj(2.o7dO@0JQ~ @B](__nnrwuApkrWߞLuKp!!-FP{/g>!DtD 'x,U~Zo(\{tCvES<[Ad2;ђYU*,"`A\)p4 x@r QjED}E \W[{~͝ u&j˦ -#ѬT&.2jv4Rm\'T"KeD?p]ps*2ߙժR>wGFAOK\[] -LS9[&g%wcͪRvlw1[4;u5?&.fvuDozu̵t67|nNyaey F)N6pNeS Ea?YbAzLŃ k~3eL! -ɦ,SeB9,sD81XU*vˏ=F$\Ųe@hnw2wE߼[3:SJCJCe*fϧR4s̅˙̑HO3E,1ڗVd(6} ^/s3 jb3G<DHK\|w5?N$<՝u2˟tny- 1gL`U)o` g'\nIeQRSYōU x𥺽;M`.жřX`E8Q":;Z 4XkςZo$%t2(FC9p~r[ަendstream +xݛ[6)h?M.Z ڇb m>)QDfM63P_s( ʠ2AeB}PxzPe\73׹6&*(HF)3_}@Bݿ(o<uS&`)> HaVkcy:. +I;7eJŧ:}M8"z( kQ(ܮBT*{Y"uKei-ҍbYOCukʮ}>"95O1?Wf~P!Nq)?LVg`0Q\U +՝J8UG R6]U65|`@J.ĺ|<^C 1FQ"$ ̶NȋH +ľ $E@k1bE|[8:B|G3~pu~VyUXQ T9U*v OqJZkBZ2m1p (y +Nz818}aͩSU7о.b_7 M6FdirJ܃ pYv(wc s{I&̩R1cɀ48oy6MA+],uP0NM&x#`t*nd9Db^3-U"f9&O(4]EWDo gZ߼;?f+9)@l3{>T/[~(疨Vu2Q\ʨuTꥁ(jzY*#&J׿㰠[nPT3ZU*~s7hY;$YyHɪRa)|)E+\hTDzU(bб$P'OEw={P8h!r_ F? ZDYBs-Y:8Tw,bnk笈\90ffJEpLG]:'nQGJoNe5/\>XZЏ׏˹ߴ[PyΌVȃ(> endobj 229 0 obj << /Type /Annot @@ -939,6 +943,13 @@ endobj /Subtype /Link /A << /S /GoTo /D (figure.2.18) >> >> endobj +250 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [89.9113 225.5383 421.9497 238.0675] +/Subtype /Link +/A << /S /GoTo /D (figure.2.19) >> +>> endobj 227 0 obj << /D [225 0 R /XYZ 74.4095 793.4011 null] >> endobj @@ -949,70 +960,86 @@ endobj /Font << /F26 162 0 R /F28 165 0 R >> /ProcSet [ /PDF /Text ] >> endobj -273 0 obj << -/Length 722 +275 0 obj << +/Length 888 /Filter /FlateDecode >> stream -x͗Mo@=ocf?QJ=TQ˭큀C, _1`(!oe}H&!#^Ӆl/yh,-fvFsU6ʬtVL'aJq'M;?.M?iD2{WLA$yfR$y1O,kx*tLI2C<6zpdՒ{1^X2#41I:Gdu%O3Ur"%R%U1LY|.SM|)Bb/s0ٔڼo_r\|͟Rm_[/$ܱN -Bq^y7.phA*}X.mAyrz Q-eN.ʋrw -Q3Jh.S,)(^7~lK<;b?b%U,ZHc5,#4\?0hnc(} 증mU^,iouHa= mU1?$G[ rP۷M># -m ޅ@c'VSrM:lUH>< 9,w Lj6@s+,ke aTb>D)YVK%pMQBY{\\ڞ~"7Flws\Qc_(`h4LSC]\U*H׻4$y +UIOL}c \Q +P KTذ[XPŏ6 0in|t^`4S%7G]H,<͘6ɧ!Ϋ]`R&U>L&] +fzۋ,`mUX[Bk»c*U,8A8`*Vj/-#(iJxP-%DI0Fe-Ql@T^V-|S31 rE(|Pk%c1G#b;b0E"RQc,Л/͟jdз6w[VEvzuM1ۘ$J"&N+ܰw(mph /YNi ) +Wm?E$}v#=2—ȭdv%. žZzG,d!,l'J{acMZ3 ׳l͎;|:U%j\:\\qBi/{N2!=['kRjئv{ࢬyYm`ӿ{n6Snr>?bkw +AJ{Ys" d-D74'.p^L Γys&3~q_(Y^ qY(L8n&hDP +G61dV`iC)qB'0?\endstream endobj -272 0 obj << +274 0 obj << /Type /Page -/Contents 273 0 R -/Resources 271 0 R +/Contents 275 0 R +/Resources 273 0 R /MediaBox [0 0 595.2757 841.8898] /Parent 166 0 R -/Annots [ 276 0 R 277 0 R 278 0 R 279 0 R 280 0 R ] +/Annots [ 278 0 R 279 0 R 280 0 R 281 0 R 282 0 R 283 0 R 284 0 R ] >> endobj -276 0 obj << +278 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [89.9113 611.9728 397.7864 624.5021] /Subtype /Link /A << /S /GoTo /D (table.2.1) >> >> endobj -277 0 obj << +279 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [89.9113 594.0456 204.0679 606.3218] /Subtype /Link /A << /S /GoTo /D (table.2.2) >> >> endobj -278 0 obj << +280 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [89.9113 576.1184 298.4028 588.3946] /Subtype /Link /A << /S /GoTo /D (table.2.3) >> >> endobj -279 0 obj << +281 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [89.9113 558.1911 338.3936 570.7204] /Subtype /Link /A << /S /GoTo /D (table.2.4) >> >> endobj -280 0 obj << +282 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [89.9113 540.2639 330.3868 552.7932] /Subtype /Link /A << /S /GoTo /D (table.2.5) >> >> endobj -274 0 obj << -/D [272 0 R /XYZ 74.4095 793.4011 null] +283 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [89.9113 522.3367 394.1345 534.8659] +/Subtype /Link +/A << /S /GoTo /D (table.2.6) >> >> endobj -275 0 obj << -/D [272 0 R /XYZ 74.4095 643.0213 null] +284 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [89.9113 504.4094 481.6833 516.9387] +/Subtype /Link +/A << /S /GoTo /D (table.2.7) >> >> endobj -271 0 obj << +276 0 obj << +/D [274 0 R /XYZ 74.4095 793.4011 null] +>> endobj +277 0 obj << +/D [274 0 R /XYZ 74.4095 643.0213 null] +>> endobj +273 0 obj << /Font << /F26 162 0 R /F28 165 0 R >> /ProcSet [ /PDF /Text ] >> endobj -289 0 obj << +295 0 obj << /Length 1086 /Filter /FlateDecode >> @@ -1020,84 +1047,84 @@ stream xڭVKo8W(7ޚY9lc%A[,`;CJ"͡d8/~YD"#L*`,4ڂtD*m0#MqάzV(1%BsbVS*ξ+ 76fdNm{EU=V[.>{*5JΡg.5v%1cL+,W˹ĉ49%q,N0\űV@b#FIZ3F"-mB?Vqj KxuSʫܵ:+]0Tf+\*;oY``3rEռY&"[W77Kb8Mu_afHMp^`:D|gXA)6@y!*^"5 ϳ k:fq㽐,N^`SsAO>E8B@@& %nUl]8A3-$tU^;쨧p^-dw&E TA˒uֹI‡hSC&!q U5P|/]/A> endobj -286 0 obj << +292 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/verteiltes-system.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 293 0 R +/PTEX.InfoDict 299 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 366.00000000 180.00000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 294 0 R ->>/Font << /R8 295 0 R >> +/R7 300 0 R +>>/Font << /R8 301 0 R >> >> -/Length 296 0 R +/Length 302 0 R /Filter /FlateDecode >> stream xVMo1 W8N+qҲZ$誴vdHEj]ǟo^s~O=K:u۲) rٗX85&G:ۛdKɡ޲::>k%]p#0i$51%, JP[H{6 $K H4OF@|j./R~'Pʎõӓ t{󇛫{O]HfOv*ǴaJ!XlyK-e*E,K4ҵz/>D4 \^B~L"I/) .Q Ûex㿕PxmC$ [?g~/ Ue`v4A$2Tn^Y␩8FMlT!Yr )tA,((Py'C,U/8UD [Iߖ3Ocz\Da4M&Ri֡d*ԒeP^EXf 7MdIɏ F'C9w: Κ#n;?q7/u~W> endobj -294 0 obj +300 0 obj << /Type /ExtGState /OPM 1 >> endobj -295 0 obj +301 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -296 0 obj +302 0 obj 714 endobj -291 0 obj << +297 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [76.4707 384.3703 108.3246 394.4247] /Subtype /Link /A << /S /GoTo /D (cite.Tanenbaum) >> >> endobj -290 0 obj << -/D [288 0 R /XYZ 74.4095 793.4011 null] +296 0 obj << +/D [294 0 R /XYZ 74.4095 793.4011 null] >> endobj 6 0 obj << -/D [288 0 R /XYZ 74.4095 771.7323 null] +/D [294 0 R /XYZ 74.4095 771.7323 null] >> endobj 10 0 obj << -/D [288 0 R /XYZ 74.4095 564.7986 null] +/D [294 0 R /XYZ 74.4095 564.7986 null] >> endobj -250 0 obj << -/D [288 0 R /XYZ 213.3171 155.4996 null] +251 0 obj << +/D [294 0 R /XYZ 213.3171 155.4996 null] >> endobj -287 0 obj << +293 0 obj << /Font << /F26 162 0 R /F28 165 0 R /F61 211 0 R >> -/XObject << /Im2 286 0 R >> +/XObject << /Im2 292 0 R >> /ProcSet [ /PDF /Text ] >> endobj -301 0 obj << +307 0 obj << /Length 1579 /Filter /FlateDecode >> @@ -1111,30 +1138,30 @@ xڭXmo J7gd><;֬)2\o ]F _b"pMh%A?[˾?PY zQCLNLAwMmNe!e/o7C[Auz2&JdΔ*A'rK~}ģ@ϼ ;a& 8J=SZʃ~o'0q-`%/)4%+va#N .Ut+ȐN[ݠT<=U@R0.>6 V$ ,Kt7dH:c<2rJ&JqQ;r>߆)IZ'2c$‡^Ɠo \)Osj,\F $&vkfendstream endobj -300 0 obj << +306 0 obj << /Type /Page -/Contents 301 0 R -/Resources 299 0 R +/Contents 307 0 R +/Resources 305 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 292 0 R -/Annots [ 303 0 R ] +/Parent 298 0 R +/Annots [ 309 0 R ] >> endobj -298 0 obj << +304 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/client-server.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 305 0 R +/PTEX.InfoDict 311 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 382.00000000 112.00000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 306 0 R ->>/Font << /R8 307 0 R >> +/R7 312 0 R +>>/Font << /R8 313 0 R >> >> -/Length 308 0 R +/Length 314 0 R /Filter /FlateDecode >> stream @@ -1142,129 +1169,134 @@ x (C!R;}tI6?΃ߏbw'> endobj -306 0 obj +312 0 obj << /Type /ExtGState /OPM 1 >> endobj -307 0 obj +313 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -308 0 obj +314 0 obj 452 endobj -303 0 obj << +309 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [73.4132 702.552 90.6937 715.0813] /Subtype /Link /A << /S /GoTo /D (figure.1.1) >> >> endobj -302 0 obj << -/D [300 0 R /XYZ 74.4095 793.4011 null] +308 0 obj << +/D [306 0 R /XYZ 74.4095 793.4011 null] >> endobj 14 0 obj << -/D [300 0 R /XYZ 74.4095 466.9572 null] +/D [306 0 R /XYZ 74.4095 466.9572 null] >> endobj -304 0 obj << -/D [300 0 R /XYZ 74.4095 298.4934 null] +310 0 obj << +/D [306 0 R /XYZ 74.4095 298.4934 null] >> endobj -251 0 obj << -/D [300 0 R /XYZ 286.2652 155.4996 null] +252 0 obj << +/D [306 0 R /XYZ 286.2652 155.4996 null] >> endobj -299 0 obj << +305 0 obj << /Font << /F61 211 0 R /F28 165 0 R /F26 162 0 R >> -/XObject << /Im3 298 0 R >> +/XObject << /Im3 304 0 R >> /ProcSet [ /PDF /Text ] >> endobj -311 0 obj << -/Length 2017 +317 0 obj << +/Length 2032 /Filter /FlateDecode >> stream -xڕXo6_GY㺦C+AYDnw;ʲ-'w(9OD$qR!l>g6J]Xͳ29("|$L/T^DRiG5{}0[bQdT1mXpZ<ϕZGe훪2kYuIĩ_X_k\wG*+Ⱥ{? nj`6aEx!վPu.ƙ5nY x޻B8"5DK*cB['K?jUWu8ڶqlחEt/K^f=Q#2 JSHg,FLc:9sIB(R<<'=sF=ya,y!S࿰ow:s(UM;tbSit$x cRJ':9.Wa| vTʞ4W\F6&űi]SI[vwX\] -c*~G&/VIRHe(TMc-l -D ]$ k[u$5% ?lK!WGZ k"RkĮ$DDM4뿀t-)Aͬ\]tH .ӂtcQgdF2g۶'Y vK8VxT%Up\iP鰜`p`92 C^TCi(O%W~JT ّ(d`{ӑ9Ѯ7T[Z?R@:GD&&VmwXv\uPv=hNdH:֦q!NXO&oYҾNi_4 i@Է:I܆GԒGZ;r燧QJ&m,z/Cj|@z|cIdtaSjW`ǧqܿpXHfTjG+]aׁ^0 pu*Ik7]vu"ڰ%'7<-\ح6_یUGIgJяB/?qVML|"3ҧ >lX!TWlEOWfZ&FQkv`H۲/2z}JyVoLgHiQ]C}Mx|aYԭjvvKkp(VHUصa;oKC -JdP+;C Z8U3"pUI~HyUwQvendstream +xڕX_6OGh%c{;=l-vgQ:$X b{7Hr0&)i?2]e RMN.v XwWc޽)S %EYB'(T>mQ4˕΋H*2z1?O?{|vKEڠ}.ƾ NK}0*mJFZWEq"8[׿ϥN`4վ,YgjԼua?^ 08J|A|UcU:.ƙ5nY %>ՒAR="ZK*}5qH65{SaRiWg_!^_ѳLk^f;#*Bep::?.E ?%,YɕitO }B$ćIzZon{e@``L~4<1K˄ +sesHMMG:)5:@n? URB&qrrWIRx?$w4)=iڗox בL{`VpAbݦqeӑ&/T7IRifɲBygcԱE6[YH +@ +BufK χ`@;yődd)dRv<"v%2? ( Ro:!Y Hג̖Օێ:yl > ]X-#mۓuk(;09!ا3g66oY>OisM);#P4 @q?RK+й\y`Kk;xᏪ|&D /hSS 7*S$'ْQ†S<11 u5'׼RtyhG>Kav`64>]"ϒq:0Eg;EzzX-e,pauER|e2-GEo]O#K #0?^\2r4#2I*>(nȾ"\$n!gO }טCcÓoTޕjMC`~` *hfODϰOg(i%GZPOFRC:c <-x8~C3=5,+B /H>/S卨#5xY(I3ЅFԕ鼸 m*BK@[!T2^0=A$ $u)t@2ֺf̄Y尯k>F8({ec#;s%";#* xg=Ia4O {tl}RKgåK J.Ŏhh@ZiJ\,eԀ{h8!b_0;H5 +Os\Y+a@*BT@dJ<^> 2)xd%'I(5Dm`Q]0{ΠcLH;EzQV|!l$XTAN^A7I_ ds.H Ɔqx^#V=*j@wufZ&F^j6pHaNP}*M_HNmyx;6 @G:ko@j&;`IZn0i˸B&dʰTM%MMcV9J E[# +R> +P^3qd]Bo@QF,PTW~|pEP_Ծ9B$HyM2i!`#Sr~g;=+endstream endobj -310 0 obj << +316 0 obj << /Type /Page -/Contents 311 0 R -/Resources 309 0 R +/Contents 317 0 R +/Resources 315 0 R /MediaBox [0 0 595.2757 841.8898] -/Parent 292 0 R -/Annots [ 313 0 R ] +/Parent 298 0 R +/Annots [ 319 0 R ] >> endobj -313 0 obj << +319 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [169.1687 720.4793 186.4492 733.0085] /Subtype /Link /A << /S /GoTo /D (figure.1.2) >> >> endobj -312 0 obj << -/D [310 0 R /XYZ 74.4095 793.4011 null] +318 0 obj << +/D [316 0 R /XYZ 74.4095 793.4011 null] >> endobj -314 0 obj << -/D [310 0 R /XYZ 74.4095 634.5446 null] +320 0 obj << +/D [316 0 R /XYZ 74.4095 634.5446 null] >> endobj -315 0 obj << -/D [310 0 R /XYZ 74.4095 447.9781 null] +321 0 obj << +/D [316 0 R /XYZ 74.4095 447.9781 null] >> endobj -316 0 obj << -/D [310 0 R /XYZ 74.4095 277.0292 null] +322 0 obj << +/D [316 0 R /XYZ 74.4095 294.9565 null] >> endobj -309 0 obj << +315 0 obj << /Font << /F61 211 0 R /F28 165 0 R /F26 162 0 R >> /ProcSet [ /PDF /Text ] >> endobj -320 0 obj << -/Length 1152 +326 0 obj << +/Length 1213 /Filter /FlateDecode >> stream -xڍnF>i4I4C(i#-LQH9>3;4eI @cE'B3+@dd7W,2gcW\$*d5`Ib_>6Le*<37mOff1X32对6p_&˱oCbEQHZkOgJ; :Pi}Zm u7%e#XRvIw@[FHq؁g-+*>ٻL@2WOg!`Z\ȿ+ƕAo\oOH{+6L]><+y =!eQmۣ:3½tis?"8㩻UZe(_Q" ?ːijz[U`t,D_BRa="afm Bud=<bHS,h ].{alܲ'v:⊎nG7vcۮx1zP_Bu{ҟn'}(85JT+뺃  kqn3BQM㠥;±nuTQ'HȝwɁ(h=qܰ5בG&e DMVIdJHϞ!t~q|hd"W$Z.ԂXM s8a/1?K׬Uoϓ&$/Kg"OP8O~pOa{_S$ UNw&^agfu!b2ʘHTWOSYa۴G %'Jqe rCkވq0{w&;† ҿ_ņG©S&pmsXDju -2}OyhTkA xB~JDTK >&j;AlEAU^: ٭nEIͦS6Dge\ ݭR."ō_A)d<> _hG ޴/UdY2skTW m0G^=endstream -endobj -319 0 obj << +xڍWKo8W(1ÇGommwQllhfm²Xt Td[ip8oEO$E2^館B$'+8{ׯ"΢l(vr6ପ"Ȭ`Գzoi3Y`ә5~zm}Vv2k =xE[Y>i7ɛ P1 7k?)!4CSJ_ip >|\^z@ k;#U //8j={0J 瓅mݮh +P,;6#07hΡ-bPix?:"[QIY‹TJPrs6K&&ɧL +[RAJ (] ros6K:/0!y \~̅9 B] b7o]ӘB]s|3 X]ȱ\͹˴Qbh>69S$Ukk_9){Z@CTO ɷJyά=Kq 96x5{+vLs!Z68#t8laFm8 hv+l"l4@ ψX/B#^n lK i<#Dt3ͼsD@1C"AAĻSQ9h?;ub0іHiݺhGn=~e/ބ +> endobj -317 0 obj << +323 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (/usr/home/buetow/svn/vs/trunk/LaTeX/images/client-server-protokolle.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 323 0 R +/PTEX.InfoDict 329 0 R /Matrix [1.00000000 0.00000000 0.00000000 1.00000000 0.00000000 0.00000000] /BBox [0.00000000 0.00000000 376.00000000 320.00000000] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R7 324 0 R ->>/Font << /R8 325 0 R >> +/R7 330 0 R +>>/Font << /R8 331 0 R >> >> -/Length 326 0 R +/Length 332 0 R /Filter /FlateDecode >> stream @@ -1274,79 +1306,83 @@ x Y La- 7pD7[:pHp {-q*YA^6@K  B|jZ%Tp'endstream endobj -323 0 obj +329 0 obj << /Producer (GPL Ghostscript 8.61) /CreationDate (D:20080724212211Z00'00') /ModDate (D:20080724212211Z00'00') >> endobj -324 0 obj +330 0 obj << /Type /ExtGState /OPM 1 >> endobj -325 0 obj +331 0 obj << /BaseFont /Helvetica /Type /Font /Subtype /Type1 >> endobj -326 0 obj +332 0 obj 499 endobj -321 0 obj << -/D [319 0 R /XYZ 74.4095 793.4011 null] +327 0 obj << +/D [325 0 R /XYZ 74.4095 793.4011 null] >> endobj -252 0 obj << -/D [319 0 R /XYZ 278.1207 275.6895 null] +253 0 obj << +/D [325 0 R /XYZ 278.1207 316.0336 null] >> endobj -322 0 obj << -/D [319 0 R /XYZ 74.4095 197.2093 null] +328 0 obj << +/D [325 0 R /XYZ 74.4095 234.8543 null] >> endobj -318 0 obj << +324 0 obj << /Font << /F61 211 0 R /F28 165 0 R /F26 162 0 R >> -/XObject << /Im4 317 0 R >> +/XObject << /Im4 323 0 R >> /ProcSet [ /PDF /Text ] >> endobj -329 0 obj << -/Length 1537 +335 0 obj << +/Length 1570 /Filter /FlateDecode >> stream -xڍn8ޯQbV$If0( 032k64~B)-E iO.HDa/\ y!\vw>ȅ EgeTd2o\7GۚjRiH\aƖ6aҮj}]JVoX:/UwT!J|ֵĹmLW2]S'F[C`S7u50 z̦G|{Էza/*)^WDiέdh >j0fÇ2{Zk?LB!cuÛFUϻSU5PlU/9>(jQ 7J+:՘T) j`Pl-?3Vit &zTl:pSHQwY` C6 Nc#-ya$ HN&u}jT\\9'Q$iC{ءSUXOtQREQ Yi 6MkЫ(:C T:P#RQїDsLHGgAzM=[G9@c(L$TfDԗ$_I>7n/չ~,T[8g{ wLug, ș,BYH/ۧ?aGfmSW/?p-=I>:Q9C! UqSت## 6a|{< *e`'bm3d)0ܺ]^9|Wq2n/MQ!*{SrΝ '+Sz\L(oh’^F.[7fmQdsQsW!+iw8֚7 u GRǝ -q<6e7±VR"ݠǘVs[` m?DpymIPdHusDž?/rу_Gw8iQ/)}Y~*7NTY>4M.qTU+3M8$'~ --e\3-_խ-GQ[eR2y IY'37u޳˾;"5PLwa l]u}x<&M.P, ی̍Dzl}g8lr` g!'IBE$SVWxuϼK,,KB KERwiu\$ [#΃GcKm(82gj8N9Xmtj *.FPCc@ڝpD\J ^;/[b 0xb;H@zsR[W2q%`5)V2@)Qߑ`! J* +<*4^nnW3׽6B38Q Ԯ(!5O āhz` +/cB5G}2/˓Q*@eg8ʜ2hkh@l]<@N<QS;X|,vohjN7.1ٷξs懊A]tA\b QQ?2U094ذԅÄ́\>[ђ^nxpTOhy=ӳtԩ@`B)Ww*Q- oŜWJ ߸}uU"_8^x>My8Ǎ"[驸qWN4lX} L/> endobj -332 0 obj << +338 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [137.0253 474.2875 154.3058 486.5637] +/Rect [137.0253 510.142 154.3058 522.4182] /Subtype /Link /A << /S /GoTo /D (figure.1.3) >> >> endobj -330 0 obj << -/D [328 0 R /XYZ 74.4095 793.4011 null] +336 0 obj << +/D [334 0 R /XYZ 74.4095 793.4011 null] >> endobj -331 0 obj << -/D [328 0 R /XYZ 74.4095 635.4572 null] +337 0 obj << +/D [334 0 R /XYZ 74.4095 671.3117 null] >> endobj -327 0 obj << +333 0 obj << /Font << /F61 211 0 R /F28 165 0 R /F26 162 0 R >> /ProcSet [ /PDF /Text ] >> endobj -336 0 obj << +342 0 obj << /Length 906 /Filter /FlateDecode >> @@ -1357,15 +1393,15 @@ xڭVK :VmWW 8}DE$HkD;"sCDO>CZrsb6o`M1wYJs-e(jw+*_X{H|2YKCm\)6 z8և̕xWtUM ~E.5 5jDmC, yr