From 8e674bd57852e4060223f49c2a804a759b438e39 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 13 Aug 2008 21:04:09 +0000 Subject: foo --- LaTeX/chapters/anhang-a.tex | 19 + LaTeX/chapters/appendix-a.tex | 19 - LaTeX/chapters/ausblick.tex | 23 + LaTeX/chapters/conclusion.tex | 23 - LaTeX/chapters/einleitung.tex | 64 + LaTeX/chapters/introduction.tex | 64 - LaTeX/chapters/titelseite.tex | 119 ++ LaTeX/chapters/titlepage.tex | 119 -- LaTeX/diplomarbeit.pdf | 2584 +++++++++++++++++++-------------------- LaTeX/diplomarbeit.tex | 8 +- 10 files changed, 1521 insertions(+), 1521 deletions(-) create mode 100644 LaTeX/chapters/anhang-a.tex delete mode 100644 LaTeX/chapters/appendix-a.tex create mode 100644 LaTeX/chapters/ausblick.tex delete mode 100644 LaTeX/chapters/conclusion.tex create mode 100644 LaTeX/chapters/einleitung.tex delete mode 100644 LaTeX/chapters/introduction.tex create mode 100644 LaTeX/chapters/titelseite.tex delete mode 100644 LaTeX/chapters/titlepage.tex diff --git a/LaTeX/chapters/anhang-a.tex b/LaTeX/chapters/anhang-a.tex new file mode 100644 index 0000000..d386b3d --- /dev/null +++ b/LaTeX/chapters/anhang-a.tex @@ -0,0 +1,19 @@ +\chapter{Akronyme} + +\begin{acronym} +\acro{API}{Application Programming Interface} +\acro{BSD}{Berkeley Software Distribution} +\acro{GIMP}{GNU Image Manipulation Program} +\acro{GNU}{GNU's Not UNIX} +\acro{GUI}{Graphical User Interface} +\acro{GVim}{Graphical Vi IMproved} +\acro{HTTPS}{Hypertext Transfer Protocol Secure} +\acro{JRE}{Java Runtime Environment} +\acro{NID}{Nachrichten-Identifikationsnummer} +\acro{PDF}{Protable Document Format} +\acro{PID}{Prozess-Identifikationsnummer} +\acro{RTT}{Round Trip Time} +\acro{SDK}{Software Development Kit} +\acro{SVN}{Subversion} +\acro{VS}{Verteilte Systeme} +\end{acronym} diff --git a/LaTeX/chapters/appendix-a.tex b/LaTeX/chapters/appendix-a.tex deleted file mode 100644 index d386b3d..0000000 --- a/LaTeX/chapters/appendix-a.tex +++ /dev/null @@ -1,19 +0,0 @@ -\chapter{Akronyme} - -\begin{acronym} -\acro{API}{Application Programming Interface} -\acro{BSD}{Berkeley Software Distribution} -\acro{GIMP}{GNU Image Manipulation Program} -\acro{GNU}{GNU's Not UNIX} -\acro{GUI}{Graphical User Interface} -\acro{GVim}{Graphical Vi IMproved} -\acro{HTTPS}{Hypertext Transfer Protocol Secure} -\acro{JRE}{Java Runtime Environment} -\acro{NID}{Nachrichten-Identifikationsnummer} -\acro{PDF}{Protable Document Format} -\acro{PID}{Prozess-Identifikationsnummer} -\acro{RTT}{Round Trip Time} -\acro{SDK}{Software Development Kit} -\acro{SVN}{Subversion} -\acro{VS}{Verteilte Systeme} -\end{acronym} diff --git a/LaTeX/chapters/ausblick.tex b/LaTeX/chapters/ausblick.tex new file mode 100644 index 0000000..5959e7a --- /dev/null +++ b/LaTeX/chapters/ausblick.tex @@ -0,0 +1,23 @@ +\chapter{Ausblick} + +Es wurde erfolgreich ein Simulator fr die Simulation verteilter Systeme entwickelt. Der Simulator hat bereits 10 implementierte Protokolle zur Auswahl eingebaut. Zudem steht dem Anwender ein sehr komfortables Protokoll-API zur Verfgung, womit der Entwicklung neuer Protokolle quasi keine Grenzen gesetzt sind. + +Darber hinaus verfgt der Simulator ber eine Vielzahl von sehr flexiblen Einstellungsmglichkeiten. Fr jede Simulation lassen sich somit komplett andere Konfigurationen verwenden. Jeder beteiligte Prozess hat wiederum eigene lokale Einstellungen, wo sich auch jedes Protokoll fr jeden Prozess separat einstellen lsst. Die Anzahl und Flexibilitt der mglichen Szenarien wird dadurch um einen sehr groen Faktor erweitert. + +Mit dem Ereigniseditor gibt es eine komfortable Mglichkeit eigene Szenarien zu programmieren um sie anschlieend zu Simulieren. Hierbei kann entweder auf die bereits enthaltenen Protokolle oder auf selbst implementierte Protokolle zugegriffen werden. Alle dazugehrigen Einstellungen und programmierten Ereignisse lassen sich vom Anwender fr eine sptere Wiederverwendung plattformunabhngig abspeichern. Somit knnen auch abgespeicherte Szenarien beispielsweise an Kommilitonen weitergegeben werden oder fr eine sptere Prsentierung zwischengespeichert werden. Durch den Logfilter lassen sich mit Hilfe von regulren Ausdrcken nur die relevanten Lognachrichten anzeigen, was die Analyse einer Simulation erheblich vereinfacht. Weitere Funktionen wie Lamport- und Vektor-Zeitstempel sowie Anti-Aliasing runden den Simulator ab. + +Durch den objektorientierten Aufbau ist der Simulator relativ einfach erweiterbar, was nicht nur das Protokoll-API betrifft. Insgesamt wurde an den meisten Stellen darauf geachtet, dass zu einem sp\"{a}teren Zeitpunkt Erweiterungen einflieen k\"{o}nnten. Insbesondere soll die Serialisierung von Objekten r\"{u}ckw\"{a}rtskompatibel bleiben, da sonst bei jeder neuen Simulatorversion alle Simulationen erneut angelegt und abgespeichert werden m\"{u}ssten. + +Htte fr diese Diplomarbeit noch mehr Zeit zur Verfgung gestanden, dann h\"{a}tten einige der folgenden Funktionen (hier in alphanumerisch sortierter Reihenfolge aufgelistet) auch Einzug halten k\"{o}nnen: + +\begin{itemize} + \item Die M\"{o}glichkeit Protokolle zu entwickeln ohne den kompletten Quelltext des Simulators vorliegen zu haben. Protokollklassen als separate Bibliothek einzubinden, die dynamisch geladen werden k\"{o}nnen. + \item Die Simulationsdauer beliebig lang machen zu knnen. Dazu msste die Klasse \textit{VSSimulatorVisualisation} entlang der Zeitachse scrollbar gemacht werden, so dass der Benutzer fr eine nachtrgliche Betrachtung des Simulationsverlaufes zu jeder beliebigen Position zurckspringen kann. + \item Eine Zoomfunktion fr die Simulationsvisualisierung einzubauen. + \item Im Ereigniseditor selbst auch periodische Ereignisse programmierbar zu machen. Bisher kann nur jeder Ereigniseintritt separat programmiert werden oder auf Protokoll-Interne Wecker zurckgegriffen werden. + \item Lamport- und Vektor-Zeitstempel als Ereigniseintrittskriterien verwenden zu knnen. + \item Tiefere Schichten des OSI-Referenzmodells simulieren knnen, wie z.B. TCP, UDP, IP, ... + \item Weitere Funktionen einzubauen, wie z.B. das Anklicken einer Nachrichtenlinie, was zu der jeweiligen Nachricht alle verfgbaren Informationen anzeigt und welche gegebenenfalls vom Benutzer editiert werden knnen. +\end{itemize} + +Da der Simulator hchstwahrscheinlich unter einer Open Source Lizenz freigegeben wird, werden die einen oder anderen Funktionen nachtrglich eingebaut werden. Kommilitonen werden auch herzlich dazu eingeladen sein sich an diesem Software-Projekt zu beteiligen. Als Vorbild sei hier der CPU-Simulator M32 \cite{M32}, der von Prof. Omann an der Fachhochschule Aachen entwickelt wurde, genannt. Hier existieren bereits einige Erweiterungen und Verbesserungen der Ursprungsversion, die von den Studenten angefertigt wurden. Fr die Entwicklung des VS-Simulators wurde keine proprietre Software verwendet, so dass jeder kostenlosen Zugriff auf die dazugehrigen Tools hat. diff --git a/LaTeX/chapters/conclusion.tex b/LaTeX/chapters/conclusion.tex deleted file mode 100644 index 5959e7a..0000000 --- a/LaTeX/chapters/conclusion.tex +++ /dev/null @@ -1,23 +0,0 @@ -\chapter{Ausblick} - -Es wurde erfolgreich ein Simulator fr die Simulation verteilter Systeme entwickelt. Der Simulator hat bereits 10 implementierte Protokolle zur Auswahl eingebaut. Zudem steht dem Anwender ein sehr komfortables Protokoll-API zur Verfgung, womit der Entwicklung neuer Protokolle quasi keine Grenzen gesetzt sind. - -Darber hinaus verfgt der Simulator ber eine Vielzahl von sehr flexiblen Einstellungsmglichkeiten. Fr jede Simulation lassen sich somit komplett andere Konfigurationen verwenden. Jeder beteiligte Prozess hat wiederum eigene lokale Einstellungen, wo sich auch jedes Protokoll fr jeden Prozess separat einstellen lsst. Die Anzahl und Flexibilitt der mglichen Szenarien wird dadurch um einen sehr groen Faktor erweitert. - -Mit dem Ereigniseditor gibt es eine komfortable Mglichkeit eigene Szenarien zu programmieren um sie anschlieend zu Simulieren. Hierbei kann entweder auf die bereits enthaltenen Protokolle oder auf selbst implementierte Protokolle zugegriffen werden. Alle dazugehrigen Einstellungen und programmierten Ereignisse lassen sich vom Anwender fr eine sptere Wiederverwendung plattformunabhngig abspeichern. Somit knnen auch abgespeicherte Szenarien beispielsweise an Kommilitonen weitergegeben werden oder fr eine sptere Prsentierung zwischengespeichert werden. Durch den Logfilter lassen sich mit Hilfe von regulren Ausdrcken nur die relevanten Lognachrichten anzeigen, was die Analyse einer Simulation erheblich vereinfacht. Weitere Funktionen wie Lamport- und Vektor-Zeitstempel sowie Anti-Aliasing runden den Simulator ab. - -Durch den objektorientierten Aufbau ist der Simulator relativ einfach erweiterbar, was nicht nur das Protokoll-API betrifft. Insgesamt wurde an den meisten Stellen darauf geachtet, dass zu einem sp\"{a}teren Zeitpunkt Erweiterungen einflieen k\"{o}nnten. Insbesondere soll die Serialisierung von Objekten r\"{u}ckw\"{a}rtskompatibel bleiben, da sonst bei jeder neuen Simulatorversion alle Simulationen erneut angelegt und abgespeichert werden m\"{u}ssten. - -Htte fr diese Diplomarbeit noch mehr Zeit zur Verfgung gestanden, dann h\"{a}tten einige der folgenden Funktionen (hier in alphanumerisch sortierter Reihenfolge aufgelistet) auch Einzug halten k\"{o}nnen: - -\begin{itemize} - \item Die M\"{o}glichkeit Protokolle zu entwickeln ohne den kompletten Quelltext des Simulators vorliegen zu haben. Protokollklassen als separate Bibliothek einzubinden, die dynamisch geladen werden k\"{o}nnen. - \item Die Simulationsdauer beliebig lang machen zu knnen. Dazu msste die Klasse \textit{VSSimulatorVisualisation} entlang der Zeitachse scrollbar gemacht werden, so dass der Benutzer fr eine nachtrgliche Betrachtung des Simulationsverlaufes zu jeder beliebigen Position zurckspringen kann. - \item Eine Zoomfunktion fr die Simulationsvisualisierung einzubauen. - \item Im Ereigniseditor selbst auch periodische Ereignisse programmierbar zu machen. Bisher kann nur jeder Ereigniseintritt separat programmiert werden oder auf Protokoll-Interne Wecker zurckgegriffen werden. - \item Lamport- und Vektor-Zeitstempel als Ereigniseintrittskriterien verwenden zu knnen. - \item Tiefere Schichten des OSI-Referenzmodells simulieren knnen, wie z.B. TCP, UDP, IP, ... - \item Weitere Funktionen einzubauen, wie z.B. das Anklicken einer Nachrichtenlinie, was zu der jeweiligen Nachricht alle verfgbaren Informationen anzeigt und welche gegebenenfalls vom Benutzer editiert werden knnen. -\end{itemize} - -Da der Simulator hchstwahrscheinlich unter einer Open Source Lizenz freigegeben wird, werden die einen oder anderen Funktionen nachtrglich eingebaut werden. Kommilitonen werden auch herzlich dazu eingeladen sein sich an diesem Software-Projekt zu beteiligen. Als Vorbild sei hier der CPU-Simulator M32 \cite{M32}, der von Prof. Omann an der Fachhochschule Aachen entwickelt wurde, genannt. Hier existieren bereits einige Erweiterungen und Verbesserungen der Ursprungsversion, die von den Studenten angefertigt wurden. Fr die Entwicklung des VS-Simulators wurde keine proprietre Software verwendet, so dass jeder kostenlosen Zugriff auf die dazugehrigen Tools hat. diff --git a/LaTeX/chapters/einleitung.tex b/LaTeX/chapters/einleitung.tex new file mode 100644 index 0000000..214d7fa --- /dev/null +++ b/LaTeX/chapters/einleitung.tex @@ -0,0 +1,64 @@ +\chapter{Einleitung} + +\section{Motivation} + +In der Literatur findet man viele verschiedene Definitionen eines verteilten Systems. Vieler dieser Definitionen unterschieden sich untereinander, so dass es schwer fllt eine Definition zu finden, die als Alleinige als die Richtige gilt. Andrew Tanenbaum und Marten van Steen w\"{a}hlten fr die Beschreibung eines verteilten Systems die folgende lockere Charakterisierung: + +\cite{Tanenbaum} \textit{``Ein verteiltes System ist eine Menge voneinander unabhngiger Computer, die dem Anwender wie ein einzelnes, kohrentes System erscheinen''} + +Der Anwender muss sich nur mit dem lokalen, vor ihm befindlichen Computer auseinandersetzen, whrend die Software des lokalen Computers die reibungslose Kommunikation mit den anderen beteiligten Computern des verteilten Systems sicherstellt. + +Diese Diplomarbeit soll den Anwendern die Betrachtung von verteilten Systemen aus einer anderen Perspektive erleichtern. Hierbei wird nicht die Sichtweise eines Endbenutzers eingenommen, sondern es sollen die Funktionsweisen von Protokollen und deren Prozesse in verteilten Systemen begreifbar gemacht und gleichzeitig alle relevanten Ereignisse eines verteilten Systems transparent dargestellt werden. + +Um dieses Ziel zu erreichen soll, insbesondere f\"{u}r Lehr- und Lernzwecke an der Fachhochschule Aachen, ein Simulator entwickelt werden. Mit dem Simulator sollen Protokolle aus den verteilten Systemen mit ihren wichtigsten Einflussfaktoren anhand von Simulationen nachgeblidet werden k\"{o}nnen. Gleichzeitig muss fr eigene Experimente ein groer Spielraum zur Verfgung stehen, wobei es keine Beschrnkung auf eine feste Anzahl von Protokollen geben darf. Es ist also wichtig, dass es dem Anwender ermglicht wird eigene Protokolle zu entwerfen. + +\section{Grundlagen} + +Fr das Grundverstndnis werden im Folgenden einige Grundlagen erlutert. Eine Vertiefung findet erst in den spteren Kapiteln statt. + +\subsubsection{Client/Server Modell} + +\begin{figure}[htbp] + \centering + \fbox{\includegraphics{images/client-server}} + \caption{Client/Server Modell} + \label{fig:ClientServer} +\end{figure} + +Der Simulator basiert auf dem Client/Server-Prinzip. Jede Simulation besteht in der Regel aus einen teilnehmenden Client und einen Server, die miteinander ber Nachrichten kommunizieren (s. Abbildung \ref{fig:ClientServer}.). Bei komplexen Simulationen knnen auch mehrere Clients und/oder Server mitwirken. + +\subsubsection{Prozesse und deren Rollen} + +Ein verteiltes System wird anhand von Prozessen simuliert. Jeder Prozess nimmt hierbei eine oder mehrere Rollen ein. Beispielsweise kann ein Prozess die Rolle eines Clients einnehmen und ein weiterer Prozess die Rolle eines Servers. Die M\"{o}glichkeit einem Prozess die Client- und Serverrolle gleichzeitig zuzuweisen ist ebenso gegeben. Ein Prozess k\"{o}nnte auch die Rollen mehrerer Server und Clients gleichzeitig einnehmen. Um einen Prozess zu kennzeichnen besitzt, jeder eine \textbf{eindeutige} Prozess-Identifikationsnummer (PID). + +\subsubsection{Nachrichten} + +In einem verteilten System mssen Nachrichten verschickt werden knnen. Eine Nachricht kann von einem Client- oder Serverprozess verschickt werden und kann beliebig viele Empfnger haben. Der Inhalt einer Nachricht hngt vom verwendeten Protokoll ab. Was unter einem Protokoll zu verstehen ist, wird spter 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 beteiligte Prozess eine eigene lokale Uhr. Sie stellt die aktuelle Zeit des jeweiligen Prozesses dar. Im Gegensatz zu der globalen Uhr knnen lokale Uhren eine falsche Zeit anzeigen. Wenn die Prozesszeit nicht global-korrekt ist (nicht der globalen Zeit gleicht, bzw. eine falsche Zeit anzeigt), dann wurde sie entweder im Laufe einer Simulation neu gestellt, oder sie geht wegen einer Uhrabweichung falsch. Die Uhrabweichung gibt an, um welchen Faktor die Uhr falsch geht. Hierauf wird spter genauer eingegangen. + +\begin{figure}[htbp] + \centering + \includegraphics{images/client-server-protokolle} + \caption{Client/Server Protokolle} + \label{fig:ClientServerProtokolle} +\end{figure} + +Neben den normalen Uhren sind auch die Vektor-Zeitstempel sowie die logischen Uhren von Lamport von Interesse. Jeder Prozess besitzt zustzlich einen Vektor-Zeitstempel fr seine Vektorzeit, sowie einen Lamport-Zeitstempel fr seine Lamportzeit. Fr die Vektor- und Lamportzeiten gibt es hier, im Gegensatz zu der normalen Zeit, keine globalen quivalente. Konkrete Beispiele zu den Lamport- und Vektorzeiten werden spter in Kapitel 3.11.1. behandelt. + +\subsubsection{Ereignisse} + +Eine Simulation besteht aus der Hintereinanderausfhrung von endlich vielen Ereignissen. Beispielsweise kann es ein Ereignis geben, welches einen Prozess eine Nachricht verschicken lsst. Denkbar wre auch ein Prozessabsturzereignis. Jedes Ereignis tritt zu einem bestimmten Zeitpunkt ein. Ereignisse mit selber Eintrittszeit werden vom Simulator direkt hintereinander ausgefhrt. Den Anwender des Simulators hindert dies jedoch nicht, da Ereignisse aus ihrer Sicht parallel ausgefhrt werden. + +\subsubsection{Protokolle} + +Eine Simulation besteht auch aus der Anwendung von Protokollen. Es wurde bereits erwhnt, dass ein Prozess die Rollen von Servern und/oder Clients annehmen kann. Bei jeder Server- und Clientrolle muss zustzlich das dazugehrige Protokoll spezifiziert werden. Ein Protokoll definiert, wie ein Client und ein Server Nachrichten verschickt, und wie bei Ankunft einer Nachricht reagiert wird. Ein Protokoll legt auch fest, welche Daten in einer Nachricht enthalten sind. Ein Prozess verarbeitet eine empfangene Nachricht nur, wenn er das jeweilige Protokoll versteht. + +In Abbildung \ref{fig:ClientServerProtokolle}. sind 3 Prozesse dargestellt. Prozess 1 untersttzt serverseitig das Protokoll ``A'' und clientseitig das Protokoll ``B''. Prozess 2 untersttzt clientseitig das Protokoll ``A'' und Prozess 3 serverseitig das Protokoll ``B''. Das heit, dass Prozess 1 mit Prozess 2 via Protokoll ``A'' und mit Prozess 3 via Protokoll ``B'' kommunizieren kann. Die Prozesse 2 und 3 sind zueinander inkompatibel und knnen voneinander erhaltene Nachrichten nicht verarbeiten. + +Clients knnen nicht mit Clients, und Server nicht mit Servern kommunizieren. Fr eine Kommunikation wird stets mindestens ein Client und ein Server bentigt. Diese Einschrnkung kann aber umgangen werden, indem Prozesse ein gegebenes Protokoll sowohl server- als auch clientseitig untersttzen (vgl. Broadcast Protokoll in Kap. 3.3.). + diff --git a/LaTeX/chapters/introduction.tex b/LaTeX/chapters/introduction.tex deleted file mode 100644 index 214d7fa..0000000 --- a/LaTeX/chapters/introduction.tex +++ /dev/null @@ -1,64 +0,0 @@ -\chapter{Einleitung} - -\section{Motivation} - -In der Literatur findet man viele verschiedene Definitionen eines verteilten Systems. Vieler dieser Definitionen unterschieden sich untereinander, so dass es schwer fllt eine Definition zu finden, die als Alleinige als die Richtige gilt. Andrew Tanenbaum und Marten van Steen w\"{a}hlten fr die Beschreibung eines verteilten Systems die folgende lockere Charakterisierung: - -\cite{Tanenbaum} \textit{``Ein verteiltes System ist eine Menge voneinander unabhngiger Computer, die dem Anwender wie ein einzelnes, kohrentes System erscheinen''} - -Der Anwender muss sich nur mit dem lokalen, vor ihm befindlichen Computer auseinandersetzen, whrend die Software des lokalen Computers die reibungslose Kommunikation mit den anderen beteiligten Computern des verteilten Systems sicherstellt. - -Diese Diplomarbeit soll den Anwendern die Betrachtung von verteilten Systemen aus einer anderen Perspektive erleichtern. Hierbei wird nicht die Sichtweise eines Endbenutzers eingenommen, sondern es sollen die Funktionsweisen von Protokollen und deren Prozesse in verteilten Systemen begreifbar gemacht und gleichzeitig alle relevanten Ereignisse eines verteilten Systems transparent dargestellt werden. - -Um dieses Ziel zu erreichen soll, insbesondere f\"{u}r Lehr- und Lernzwecke an der Fachhochschule Aachen, ein Simulator entwickelt werden. Mit dem Simulator sollen Protokolle aus den verteilten Systemen mit ihren wichtigsten Einflussfaktoren anhand von Simulationen nachgeblidet werden k\"{o}nnen. Gleichzeitig muss fr eigene Experimente ein groer Spielraum zur Verfgung stehen, wobei es keine Beschrnkung auf eine feste Anzahl von Protokollen geben darf. Es ist also wichtig, dass es dem Anwender ermglicht wird eigene Protokolle zu entwerfen. - -\section{Grundlagen} - -Fr das Grundverstndnis werden im Folgenden einige Grundlagen erlutert. Eine Vertiefung findet erst in den spteren Kapiteln statt. - -\subsubsection{Client/Server Modell} - -\begin{figure}[htbp] - \centering - \fbox{\includegraphics{images/client-server}} - \caption{Client/Server Modell} - \label{fig:ClientServer} -\end{figure} - -Der Simulator basiert auf dem Client/Server-Prinzip. Jede Simulation besteht in der Regel aus einen teilnehmenden Client und einen Server, die miteinander ber Nachrichten kommunizieren (s. Abbildung \ref{fig:ClientServer}.). Bei komplexen Simulationen knnen auch mehrere Clients und/oder Server mitwirken. - -\subsubsection{Prozesse und deren Rollen} - -Ein verteiltes System wird anhand von Prozessen simuliert. Jeder Prozess nimmt hierbei eine oder mehrere Rollen ein. Beispielsweise kann ein Prozess die Rolle eines Clients einnehmen und ein weiterer Prozess die Rolle eines Servers. Die M\"{o}glichkeit einem Prozess die Client- und Serverrolle gleichzeitig zuzuweisen ist ebenso gegeben. Ein Prozess k\"{o}nnte auch die Rollen mehrerer Server und Clients gleichzeitig einnehmen. Um einen Prozess zu kennzeichnen besitzt, jeder eine \textbf{eindeutige} Prozess-Identifikationsnummer (PID). - -\subsubsection{Nachrichten} - -In einem verteilten System mssen Nachrichten verschickt werden knnen. Eine Nachricht kann von einem Client- oder Serverprozess verschickt werden und kann beliebig viele Empfnger haben. Der Inhalt einer Nachricht hngt vom verwendeten Protokoll ab. Was unter einem Protokoll zu verstehen ist, wird spter 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 beteiligte Prozess eine eigene lokale Uhr. Sie stellt die aktuelle Zeit des jeweiligen Prozesses dar. Im Gegensatz zu der globalen Uhr knnen lokale Uhren eine falsche Zeit anzeigen. Wenn die Prozesszeit nicht global-korrekt ist (nicht der globalen Zeit gleicht, bzw. eine falsche Zeit anzeigt), dann wurde sie entweder im Laufe einer Simulation neu gestellt, oder sie geht wegen einer Uhrabweichung falsch. Die Uhrabweichung gibt an, um welchen Faktor die Uhr falsch geht. Hierauf wird spter genauer eingegangen. - -\begin{figure}[htbp] - \centering - \includegraphics{images/client-server-protokolle} - \caption{Client/Server Protokolle} - \label{fig:ClientServerProtokolle} -\end{figure} - -Neben den normalen Uhren sind auch die Vektor-Zeitstempel sowie die logischen Uhren von Lamport von Interesse. Jeder Prozess besitzt zustzlich einen Vektor-Zeitstempel fr seine Vektorzeit, sowie einen Lamport-Zeitstempel fr seine Lamportzeit. Fr die Vektor- und Lamportzeiten gibt es hier, im Gegensatz zu der normalen Zeit, keine globalen quivalente. Konkrete Beispiele zu den Lamport- und Vektorzeiten werden spter in Kapitel 3.11.1. behandelt. - -\subsubsection{Ereignisse} - -Eine Simulation besteht aus der Hintereinanderausfhrung von endlich vielen Ereignissen. Beispielsweise kann es ein Ereignis geben, welches einen Prozess eine Nachricht verschicken lsst. Denkbar wre auch ein Prozessabsturzereignis. Jedes Ereignis tritt zu einem bestimmten Zeitpunkt ein. Ereignisse mit selber Eintrittszeit werden vom Simulator direkt hintereinander ausgefhrt. Den Anwender des Simulators hindert dies jedoch nicht, da Ereignisse aus ihrer Sicht parallel ausgefhrt werden. - -\subsubsection{Protokolle} - -Eine Simulation besteht auch aus der Anwendung von Protokollen. Es wurde bereits erwhnt, dass ein Prozess die Rollen von Servern und/oder Clients annehmen kann. Bei jeder Server- und Clientrolle muss zustzlich das dazugehrige Protokoll spezifiziert werden. Ein Protokoll definiert, wie ein Client und ein Server Nachrichten verschickt, und wie bei Ankunft einer Nachricht reagiert wird. Ein Protokoll legt auch fest, welche Daten in einer Nachricht enthalten sind. Ein Prozess verarbeitet eine empfangene Nachricht nur, wenn er das jeweilige Protokoll versteht. - -In Abbildung \ref{fig:ClientServerProtokolle}. sind 3 Prozesse dargestellt. Prozess 1 untersttzt serverseitig das Protokoll ``A'' und clientseitig das Protokoll ``B''. Prozess 2 untersttzt clientseitig das Protokoll ``A'' und Prozess 3 serverseitig das Protokoll ``B''. Das heit, dass Prozess 1 mit Prozess 2 via Protokoll ``A'' und mit Prozess 3 via Protokoll ``B'' kommunizieren kann. Die Prozesse 2 und 3 sind zueinander inkompatibel und knnen voneinander erhaltene Nachrichten nicht verarbeiten. - -Clients knnen nicht mit Clients, und Server nicht mit Servern kommunizieren. Fr eine Kommunikation wird stets mindestens ein Client und ein Server bentigt. Diese Einschrnkung kann aber umgangen werden, indem Prozesse ein gegebenes Protokoll sowohl server- als auch clientseitig untersttzen (vgl. Broadcast Protokoll in Kap. 3.3.). - diff --git a/LaTeX/chapters/titelseite.tex b/LaTeX/chapters/titelseite.tex new file mode 100644 index 0000000..4cbae22 --- /dev/null +++ b/LaTeX/chapters/titelseite.tex @@ -0,0 +1,119 @@ +% Diploma thesis template 2005 +% author: lukas.silberbauer(at)gmx.at +% based upon "Diplomarbeit mit LaTeX" by Tobias Erbsland +% published under the terms of +% ---------------------------------------------------------------------------- +% "THE BEER-WARE LICENSE": +% wrote this file. As long as you retain this notice +% you can do whatever you want with this stuff. If we meet some day, and you think +% this stuff is worth it, you can buy me a beer in return. +% ---------------------------------------------------------------------------- + +\selectlanguage{german} +\begin{titlepage} % enlarge page + \pagestyle{empty} + \setlength{\topmargin}{0pt} + \setlength{\headheight}{0pt} + \setlength{\headsep}{0pt} + \setlength{\footskip}{0pt} + \begin{center} + \begin{figure}[ht] + \centering + \includegraphics{images/fhac_logo.png} + \label{fig:tulogo} + \end{figure} + + \vspace*{1cm} + + {\Huge\bf DIPLOMARBEIT \\[1cm]} + {\Large\bf {\maintitle} \\} + + {~\\Durchgefhrt an der} + + {\large Fachhochschule Aachen\\} + {\large Fachbereich Elektrotechnik und Informationstechnik} + + {Eupener Str. 70\\} + {D-52066 Aachen\\~\\} + + {mit Erstpr\"{u}fer und Betreuer } + {\large Prof. Dr.-Ing. Martin Omann} + + {und Zweitpr\"{u}fer} + {\large Prof. Dr. rer. nat. Heinrich Fassbender} + + {durch\\} + {\large\bfseries Paul C. B\"{u}tow\\[0.3cm] } + {\large Matr.Nr.: 266617\\} + {Matthiashofstr. 15\\} + {D-52064 Aachen\\} + \end{center} + + \vspace*{0.5cm} + + \begin{flushleft} + {Aachen, \today \\} + \end{flushleft} + +\end{titlepage} + +\thispagestyle{empty} + ~ ~ +\newpage + +\vspace*{2cm} +\textbf{\LARGE Erkl\"{a}rung} +\vspace*{1.5cm} + +Ich versichere hiermit, dass ich die vorliegende Arbeit selbstst\"{a}ndig verfasst und keine anderen, als die im Literaturverzeichnis angegebenen Quellen benutzt habe. + +Stellen, die w\"{o}rtlich oder sinngem\"{a} aus ver\"{o}ffentlichten oder noch nicht ver\"{o}ffentlichten Quellen entnommen sind, sind als solche kenntlich gemacht. + +Die Zeichnungen oder Abbildungen in dieser Arbeit sind von mir selbst erstellt worden oder mit einem entsprechenden Quellennachweis versehen. + +Diese Arbeit ist in gleicher oder \"{a}hnlicher Form noch bei keiner anderen Pr\"{u}fungsbeh\"{o}rde eingereicht worden. + +Aachen, \today \\ + +\vspace*{2cm} +\textbf{\LARGE Geheimhaltung} +\vspace*{1.5cm} + +Diese Diplomarbeit darf weder vollst\"{a}ndig, noch auszugsweise ohne schriftliche Zustimmung des Autors, des betreuenden Referenten bzw. der Fachhochschule, Aachen vervielf\"{a}ltigt, ver\"{o}ffentlicht oder Dritten zug\"{a}nglich gemacht werden. + +\newpage + +\thispagestyle{empty} + ~ ~ +\newpage + +\vspace*{2cm} +\textbf{\LARGE Danksagungen} +\vspace*{1.5cm} + +Ohne die Hilfe folgender Personen w\"{a}re die Anfertigung dieser Diplomarbeit in diesem Mae nicht m\"{o}glich gewesen. Daher m\"{o}chte ich mich bedanken bei: + +\begin{itemize} + \item Prof. Omann als 1. Pr\"{u}fer sowie Prof. Fassbender als 2. Pr\"{u}fer + \item Andre Herbst + \item Carrie Callahan + \item Claudia Steudter + \item Florian B\"{u}tow + \item J\"{o}rn B\"{u}tow + \item Jochen Demmer + \item Leslie B\"{u}tow +\end{itemize} + +Auch vielen Dank an die Open Source Gemeinde, denn diese Diplomarbeit wurde ausschlielich mit Hilfe von Open Source Software angefertigt. + +\newpage +\thispagestyle{empty} + ~ ~ +\newpage + +\tableofcontents + +\listoffigures + +\listoftables + diff --git a/LaTeX/chapters/titlepage.tex b/LaTeX/chapters/titlepage.tex deleted file mode 100644 index 4cbae22..0000000 --- a/LaTeX/chapters/titlepage.tex +++ /dev/null @@ -1,119 +0,0 @@ -% Diploma thesis template 2005 -% author: lukas.silberbauer(at)gmx.at -% based upon "Diplomarbeit mit LaTeX" by Tobias Erbsland -% published under the terms of -% ---------------------------------------------------------------------------- -% "THE BEER-WARE LICENSE": -% wrote this file. As long as you retain this notice -% you can do whatever you want with this stuff. If we meet some day, and you think -% this stuff is worth it, you can buy me a beer in return. -% ---------------------------------------------------------------------------- - -\selectlanguage{german} -\begin{titlepage} % enlarge page - \pagestyle{empty} - \setlength{\topmargin}{0pt} - \setlength{\headheight}{0pt} - \setlength{\headsep}{0pt} - \setlength{\footskip}{0pt} - \begin{center} - \begin{figure}[ht] - \centering - \includegraphics{images/fhac_logo.png} - \label{fig:tulogo} - \end{figure} - - \vspace*{1cm} - - {\Huge\bf DIPLOMARBEIT \\[1cm]} - {\Large\bf {\maintitle} \\} - - {~\\Durchgefhrt an der} - - {\large Fachhochschule Aachen\\} - {\large Fachbereich Elektrotechnik und Informationstechnik} - - {Eupener Str. 70\\} - {D-52066 Aachen\\~\\} - - {mit Erstpr\"{u}fer und Betreuer } - {\large Prof. Dr.-Ing. Martin Omann} - - {und Zweitpr\"{u}fer} - {\large Prof. Dr. rer. nat. Heinrich Fassbender} - - {durch\\} - {\large\bfseries Paul C. B\"{u}tow\\[0.3cm] } - {\large Matr.Nr.: 266617\\} - {Matthiashofstr. 15\\} - {D-52064 Aachen\\} - \end{center} - - \vspace*{0.5cm} - - \begin{flushleft} - {Aachen, \today \\} - \end{flushleft} - -\end{titlepage} - -\thispagestyle{empty} - ~ ~ -\newpage - -\vspace*{2cm} -\textbf{\LARGE Erkl\"{a}rung} -\vspace*{1.5cm} - -Ich versichere hiermit, dass ich die vorliegende Arbeit selbstst\"{a}ndig verfasst und keine anderen, als die im Literaturverzeichnis angegebenen Quellen benutzt habe. - -Stellen, die w\"{o}rtlich oder sinngem\"{a} aus ver\"{o}ffentlichten oder noch nicht ver\"{o}ffentlichten Quellen entnommen sind, sind als solche kenntlich gemacht. - -Die Zeichnungen oder Abbildungen in dieser Arbeit sind von mir selbst erstellt worden oder mit einem entsprechenden Quellennachweis versehen. - -Diese Arbeit ist in gleicher oder \"{a}hnlicher Form noch bei keiner anderen Pr\"{u}fungsbeh\"{o}rde eingereicht worden. - -Aachen, \today \\ - -\vspace*{2cm} -\textbf{\LARGE Geheimhaltung} -\vspace*{1.5cm} - -Diese Diplomarbeit darf weder vollst\"{a}ndig, noch auszugsweise ohne schriftliche Zustimmung des Autors, des betreuenden Referenten bzw. der Fachhochschule, Aachen vervielf\"{a}ltigt, ver\"{o}ffentlicht oder Dritten zug\"{a}nglich gemacht werden. - -\newpage - -\thispagestyle{empty} - ~ ~ -\newpage - -\vspace*{2cm} -\textbf{\LARGE Danksagungen} -\vspace*{1.5cm} - -Ohne die Hilfe folgender Personen w\"{a}re die Anfertigung dieser Diplomarbeit in diesem Mae nicht m\"{o}glich gewesen. Daher m\"{o}chte ich mich bedanken bei: - -\begin{itemize} - \item Prof. Omann als 1. Pr\"{u}fer sowie Prof. Fassbender als 2. Pr\"{u}fer - \item Andre Herbst - \item Carrie Callahan - \item Claudia Steudter - \item Florian B\"{u}tow - \item J\"{o}rn B\"{u}tow - \item Jochen Demmer - \item Leslie B\"{u}tow -\end{itemize} - -Auch vielen Dank an die Open Source Gemeinde, denn diese Diplomarbeit wurde ausschlielich mit Hilfe von Open Source Software angefertigt. - -\newpage -\thispagestyle{empty} - ~ ~ -\newpage - -\tableofcontents - -\listoffigures - -\listoftables - diff --git a/LaTeX/diplomarbeit.pdf b/LaTeX/diplomarbeit.pdf index 51273e7..b3eaad9 100644 --- a/LaTeX/diplomarbeit.pdf +++ b/LaTeX/diplomarbeit.pdf @@ -1485,8 +1485,8 @@ endobj 404 0 obj << /Producer (GPL Ghostscript 8.61) -/CreationDate (D:20080813170010Z00'00') -/ModDate (D:20080813170010Z00'00') +/CreationDate (D:20080813230247Z00'00') +/ModDate (D:20080813230247Z00'00') >> endobj 405 0 obj @@ -1536,17 +1536,16 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 411 0 obj << -/Length 1357 +/Length 1351 /Filter /FlateDecode >> stream -xڍWo6_G X"EioŰtك1kYN-GɲEx;Hßb:2eGk{;}EMGt.ś< -V湊" GIRiX$՜ǯ]X:əy..2rtnT -煙K/o3TS2?D#}vDjuyG[Bf?k&EqKqI8u&iVum㡩z k*cag) Y A$5H GH4 hzkbq`'" BЎsܹvLx{K&Keg@5u1` -7d^ =Q {wIna( IMP-H,^*bkV+[׸uoIYڮ#onm ֌S --@Ȭ] -"T"/`/69m{rL -#}?Tlip s\B^k"֖󒖻n(yW}kBWX2= ]"ۅm_mdooD;2#;QDxU7VB{,Ũҟ&[l!X~Œ |y7Tљ|H{Ry*/j}xPRi3|mY4TW.zuTl$ycx [b=#9!ϙ!mLoQ Mwkt1s{:4^h% m\ˈ lsGmDڞc1#v@nM J}17* (l*ayjGp^ V,9 +%ߒqN$ڋiђs@{U:HH@=NhEtbtbpfG $5Q R>?ڃP 7Jw +1a.7RՀU=wV]BH{ǗWlFIi7 Um#C$M9پr%ۄ =-wڧ*t2ʠ<ZZN{DR雙F29O/0KxR@FߞHC 0IUݛi .P=toZMVX* ַ +rp}In7}T~ilwoj> endobj 415 0 obj @@ -1615,16 +1614,18 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 420 0 obj << -/Length 1698 +/Length 1701 /Filter /FlateDecode >> stream -xڍXK8 WUUVU -A 6["ihWd͟.U)Ӭ4G /K5df|~ <ɦ;:֐kIAT\porn)Ms6eDuh+@~$CBkw؈?!*XeQŗ hI( rܝgp pLfK8L<-L&J8 Ƽ 0faQb)yj~p"3*{T/ ``@hļz˒ "hQ36x2AURm2gM>4fr. &x,/v\JJ~TJ'ꏺε̃*qKǶ -nU R~QE0'm1kTjM0ݰkJ(m95SOlw "<N#i `̀XrVu8/ h1km(8 =`,܅_xP< Z;Aw) z`p1؎:e4uG tUƩuR_'l(΂G&v>;5@L8e=y1^֌7b+_)9 ;S^a6 -k9S%1tRc741endstream +xڍˎ6Q Eyv7m(=Ab6H}g8D[r6X`5y_H#<^ ;(aZڕ#^ԏ/L"cyDׅSF/ŹT\4 B\ŜϕU\ ,eI"~M(JX'b%B$YS蟆,"8gi +sRWmn5SfB!ڣ"ٜh8$j2 +Veȃ. Qm.[TC 88 4kF{]o(/E8Jj;& 4GUgh?P ‡Bkt`,)@͈@ pliUz({o0(8]`jm*F#1R5v_mkEm1\&҇MX5p]h4洺)Wlڮohl}'CdxUg :Z_zG137 ν>t%l.ʒޘxA"AfK݌et1,s#j*:*R H>hOWZ"!Y97;"x ]AM!P +_)<hu6>dJ"3DYS/hI(1bԝx'P +pLfͧ_L2Яla2laU6XP@51.j,faV`I yl~'.x՘k Wn*̤Љ$b<߯DEX^ޟFXVWJ`UU폎!YF b F{FjnLEk]]lGY{K_Z&!%VL__ڳTkť7Iwˣ;KFl,ڝ"dbEH]I ˉ ^~!a!QE6;F 7A)*;b:OucRoo Emxಅ4"g l +f.cfgxKps f0.X&|S1"ljVMϟ3{ +Ys"4%]qFFaN`״18`՚8wÆ{+UiŤRg 0D"¥/2 AP`ڝ3N <)g#@`GS<[4Š8NQ43qAx݉ afWng=k]aipJh !-6Y,M#%8l=>vqjTnq:ɣ8 5NT +آ\u DU4JYM<˚TE+1g&{?4s|-k?y)rnʴoc??SP1.endstream endobj 419 0 obj << /Type /Page @@ -2266,19 +2267,20 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 485 0 obj << -/Length 2294 +/Length 2295 /Filter /FlateDecode >> stream -xڭYKs6W8S%"x\rԮ-o@V|($'Jo7p(U~Aß24/(+ 3Ua+<6x~w{TE9+TG SIvy}SlGSc+qC|Uq.GCLu-黍{O/#~<݋H4ߧ)IE,Ml(Ŝ"Opϳ@<&QsL)MY:^E8CڑX)LEy#H0sP!&cw`JG -dyVn.;gOXg$sLIT*rA.\ߥR,@8M9)IY`= b!vV!g?΃QqΊLhzʉ0{79\sW=_vM"J*Xµ^>y~E V+Zs>[*cLAtS3bA%J -&rLP L*-'r(=7-Q0A1UhtIWQ~HO7~eLͅB]P8v4X}7vOkW]][4櫑Ǿk,V}43~WWumhض2c=x7j 2g I ƌdLp_W-F E%_}ÖxgsCODHrX G890`n NnFW=P뚲!n Ktg۸^w0s~])sίfJA*;rƌֶ`-EX]P@(.!@CfZ9‹hFOZWu)k?X<"ZX<ڭ{}g,5ӘUSub@&ʛ'07pXc 5\wO Ǡa X`b mZyt1@ l>F`'нyƶCeT'z)#WUnHL9(\í'o i0S2/ )?i87Dn/ػBܧqI Gl;E"0"N9m`Xh`ե(v];&QӶûK#H+wt!&6^ -af;G ʬo\nД{t-ʧni%=ZLK5*1`;%p_1| ,;7@FqL{62BԋD'Q%fel9%[lA>7naqfdnLvB ,+V*V U܆L\/ ږ߀~T Wֳ=q䦽; ~֏\1 -n 5t#ԷcUv840ǻ/0]Ogl pӇt1TCu\k|] 'n f_h|NxWFT7]8+ G"uZ)7A|?0? H~mnu~G88՚GIM1^{(xɌoXrt N, -$שoh4w"miO2K2>H - `PGP~(ZC7IzHO@W-Tv3GÐ@^ô`ΐ*2f*# .{qOiemN@gTDH&zt sY-tђu=mM*|[ eJgj, =ZE*k;VV($b{EЫ)@δD?c0Li(ǦqK7ycrv[;,jmEvK.@p^bVA$>JE/HsiЏMOa0+ 7gj?5 _jUߣj_T tMNd<2p[6 -C~1Y?UJϿxbGl,G܆N@9y^'Q=7?!0Jql}GHج p/Hi P,?7aG*tKckEu*?4‡B4D7N/sendstream +xڭYKs6W8S%"rKWNڵMU8ŠD)F7f8Jvn0@C_nP2O:* + (`W26p~w{T(TA%B%فOM,_b&QЯe*( -3-Rw׵LV6SZAwQ}r ?rdz۽Ik*/I://ҎtJ g*E9r tJ8dPI(Y!,/׍Te:D% +?9DDE,*BT΃Q,%=VJdi$tJ`i0{|zk+2?΃QE(2%)'Q +sY$]VʴhQR)HEQNg']Er+%:WJE2QI|)ai ErA%J +&rLP"V:ȡܴ@K\0G LTYѵ:wb'A_~i"~O8t*)o=j.D5s{7=NJsƮM3sߍ:V]][4V#AmK}vuWY=?hZg q+вmeƾ{`u`8 IH ƌdw_[}ۍT-,H2HQ=^[ɞ'9et"BL\18rɹ`[w`pr֖4Zה q\ ?ƕmf{i\ڋ5)sίJA*;rƌֶ`ۭEX]P@(.!@CfZ9‹p4#Umʚ'#ፅӮ&- $4Nȫ2Qlla5$r=AYڲyXH u?]"OgeٚzM]<I q$Lc9!uXּ:G>Kڽ@~NȘ88b )!,;lsR^ZgKQػ(vLvwmwwW't].0ͨ82ˍ RCxo1fi6w[h e>|VzJ N W29fq4!8G=Ri!PHƨRf41 zs,KDfG+ق|o qݶ 4Zݘ6>Y)hWNѵ9Ubb4TeRsL T3qUh[B~JHXP 7\Yf{aM{w@>-\1n 5t#Է1*)& |sM0 k8t@R 7}(8pACx^7ϵ!1+XZb䡕/zS?9Ѳ3۲@uXOZC̾Uge([N;ƋO><@kniߑ!ND?&V{eFIr<zLp'GreO% ]􍢠Nrr?*DWFoK3E`S|s(^!M@n,Pr%fBCI7C>h(] Cj TxiÜ!å7,T8$>=ݖK!يlCSs?t r`Kh:rJcV֮] 7Cڎw~08~hj-Qw>>8 avIylt/L$'#؝D`ona$bwd-ʻy +B4H|#RHsyǦ'X]~?<5X0á~_Sg +yrR 3BDG ! +ec+O:dk'sQ ;gct]>J?66>u8ϹΛ %<@SxKLo-di +> NGP2+E=COxg-{CC& +,0]{Iz iu$Jql}GH>lVts8 R2v326ď&[w_+HKf^RW"M+\Ws.&endstream endobj 484 0 obj << /Type /Page @@ -2341,7 +2343,7 @@ endobj /D [484 0 R /XYZ 74.4095 616.6478 null] >> endobj 26 0 obj << -/D [484 0 R /XYZ 74.4095 337.2708 null] +/D [484 0 R /XYZ 74.4095 337.3784 null] >> endobj 483 0 obj << /Font << /F63 220 0 R /F28 173 0 R /F26 170 0 R >> @@ -2451,18 +2453,16 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 501 0 obj << -/Length 1821 +/Length 1818 /Filter /FlateDecode >> stream -xڭXs6 _GbER}K/itm njE]Kn;$ei] ҈Ea{i.{XBl -Cwoe,OȻ{D3λ'bUf` Cz7_܇V-V0籯vځQ ݇qx~]gf,B%9:S"8*Y:Xo7y~ Z2'J-.53?5]Qnz9!a#a]JPNŮT_k85YRFZ? -=` OY.!B.•KռpO1V!qaskCWc*mTGݸ*]9J0/$asT66x *ʰPd,D}%H<3pA[N54g(sCPFdeL2,ϲ y_hC)hɩD|$O6۔n]猀 ~`@|,g"$y徽z i7}8,at-4Ԫh87[pzȽV(p&W4xY%,/Df25) V#$#k{:*k(M̵ćQrUM@ gB!ҥѵ-8u Ha{&eR;[1}rtu~5m<ǎ abAhxrVt%8)P;-;55xc,,u; h\;#CHC¬ -CzDqؗjHK-FP=%M"_"4nu -(Djp?M:vYG0^pxL]ە^K1`i -SS7(0N0 `9ZY0ц|PQg5VU`x)0_hľ6%9zM2PW$ѾNBːr(aS_p2Xƭ+ <Կ3ey9 qͧ,MFSSD -"Ne"p`\N-p򅞟F%0!qدñù-F>iaq,qi[ԵSl05a(S@퐖 ,o;MqZUuօ=~辅Pk I7mߨ=qrcug ?e$ Ok%1$kϜ/endstream +xڭXݓ6߿B̊>MrIۙv{A^32oez+Ms)˖tnh3=7TUzaya mHrSwm;ޙ3ZJ#mYGT<{[P[Xu 0>+|1E ,+15ʗb + U"?A@dw +a#&R[xi3XX it鋵Db5 7p{,ڴm'цWa%4жG'e. ~y[枞/Rp 1z8o%pm'! +&ziXNp)v鈯Rn}9\ ؍Y&ie<ؤy욨 ;YYô NjzM;iyn! Cz=}hBCr TόOWVɆF֏7nG8_Ӧq+@|R1HQUMhZ/|nvLB`{8l > endobj 510 0 obj << -/Length 1447 +/Length 1427 /Filter /FlateDecode >> stream @@ -2530,7 +2530,9 @@ xڭWK LBץyTb/ϳK1]MoPIBK4WP]KyUֲ}(IUw纪,FY]/tp$Rp%˲h.rŢLfVNgRfp2rRU ` =FKl]7lUYZL%#Cj=Vj +z>hX#+S4wώv%.FسkjŹyIB_[hn 9MFM <j -=A8;a뜌½j2Pͮ^b38,w7_@y4=&9 ndž i]:v!KS^sogFWxƲbrSX|(!{g i lUi)ݝvJBBo|+猁f!oQju:x`vE\@j66:~KL[NlzMTvsZC(*~.nl?>$uyh`4|e{"VK'ЮEKq 0^S6=D-ߏ;t}%E, ^lRcɿ,"lءiLϋ~wŌEUWʻ;XwU}{ӌT?d*umL=)5l|MhpI1H~ (==?H&:lq0t&.SF5G݈BF^s3@pC(f~i5IlFg* i lUi)ݝvJBBo|+猁qnzo37x $,@j6.{f"20yR=YΩ1"NQijAA%f^ ߈ +5Mf` (BW zC-FRwxaN|?T&Yr թIYNYZE&٦CH}^ +w?-vpLnTzqRj4*|Mh/ȥ~%=4?H&:lq0t&.S:5G݈BF^si 3>@pC(f~E5HylFg&ebrSlbзtޒՌz`˛"Ma}gOg&L8`l_S endstream endobj 509 0 obj << /Type /Page @@ -2694,22 +2696,17 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 515 0 obj << -/Length 2236 +/Length 2237 /Filter /FlateDecode >> stream -xڵْ6}rUKHylN*}mZҶ$OW$uN6Ad{M;(xf_s7>_Oښsz?B$ qA4|:f;=(6b9[;p]c\+}v]sAFz%f'Z ӳx<}ɘ0׉Ð9 )2 -'"&Dނ=o}2UZ#!8^&ꚾE^F tbbqU!bD5Maal&ڃl0D"'a<-w[M+j Vd~ao:+Bk_ -q`k)v[ (0+z$vJwg[ SP -u!(J/#%Mҹy$:؂f(n|}fv;"uU_XQ=Ȑ!yIK!/li!܇Vkߧթ|md 9lcpoZWȑI vU JKl!C{. - &*⥷M,?<0JؒkN-`DZM@zT REЧ1r;BRշC3(۾JUP8C UtC<T_)`^ictTRkM@_*O3m] -gYC,.%uVdH Y{#v];f-L|m 6~(+#2aiT#wYiPqQU=~<8DfE]bh k"aO<b;M>iYvF<)ne+r*1f2`.f @)99NO)D|:/}l6E="@UShX2+8Kzyy -+ֹR'$Won --Ն}]-L'Q{A~|de$sbǃ0 óEs h׵jI=\Oξ -5>PrЇr4bDwwN݌5CZ/nF>)p=#kAl7xMĹ Ak}X3y;.荹Dϰ݊U&z ћh' y9aG78Fv3״akƱVh/&Ey]>ducaH | -nyq@"vZv(ϼ@sDA&O&-E1̂@4[<[b.H2#`fڂ`1o[_> /#NA>H)!&280M@IMs0|:@ M/FҨIp%N,tҝB`ZAqV>X%p/S!ƧRQ.cSQg'7Xf|˔C>iy.}inoOcW{jcw!`d WM$l;h%&Vo@]1ѵ+P Us$E*/ u-&3Ŀ^\L !5=ZM:S݂fx1P7z|x5Ҟ<}|E$wc:s]~=kNg! -ԭ.?8E4ӗTP#z # )sjKINIj*Ι1L'H=K>-V )T oz56.WyM5Az!V~U>uZh ڰr=(  M41.̵;%_O$9G/&&3|RX;1̍t|FF#3 Ņd]gendstream +xڵk +gVDo{wk$fɦ%uHĿARvIfEƅ&MMp^ ԗ^f0_ v/z# ѲIrHlks70D ޷>%\}iUF<)ne+r0fep(?LғKπ&@)q]ZC |H\mR㇯i(?YI.TΎ(^I"tTS*ԵV5BJaTeb+pk)|(\+~9)S.YJy<' 4( ~qh5> endobj 573 0 obj << -/Length 1468 +/Length 1466 /Filter /FlateDecode >> stream -xڕW_o6ϧ D,),n>#s@[t~wX' ЮZXזЧŭu݋@WQQ"ϘJz[)W9+N+XR«ᰎʢk ֕mJZȶxʣDӣjkzր͢Ydk[n@u}=nG \[nIDŃEƊ$8!`' ĠzLT\R;(Nz}g~ȃϏRӔccFv6rwAL #o="!PMcwG7>1--b2ڮ#³iWÝ";"901ubN}xnM1EIs$6{{lm:d`H*Ro]Qi!̙ky{2ΜC xu^ w032!a`sn8i6t@!p|+@@÷t82hčjB&-~A^ho0/o!C2bTU)*x߼@@Mϕk*BzJgv -"cY&Yolw@ ^eaYfjn߸nzO'7$# 'L(H1z31k9"+X"#(y㐰̳pHu΀ xlg 9[yC pd"⢎PL 2CY2zJ%ӘQiSAxh2K{ow'H!/2_P,Ӊ -yA0.^yMh.(_<P򱩠%R%0nTm{4t}|5Cwnz7 yQJ4ĥ\|9@)&˳f0jհs2Wɝ3op9S^q>WbA?} E!ИL3.b}.9>6#s@[GȲb0`t‡di)VyaAj{JW~'$Ʉa@MFr +!"WP "˄]_{)_F$,Oz9CAq"$R@_IC4j9"jZ#Vh8WѴQcx)_ +RJMBVҙ'\un[LHw^9(1@yzyVmT8:FȬѝ6Cћ,|?$ĝd9w΁L~| \'x`F7CY(?YϏ\ʦ zi*Q[eӻLXI3'sr*n4Rr)K(XGLH==KYoL_]qIJ5mǐ!qO=r ,zV'&xӃh"=z:؜U5vL4(D⪽;bns8 AIp5(BY;Q{Q\/1V /el$xzd4vO-B2;$mS΢Q*0UVHg` / e +Of/eIףcȬA\<"yyLzfUS!ჭ'VU`4RVfoEp=z(|e`VO1,4G2eyzcsg)PxO\ j޽|i^F K&q맓òmST{;{PU*W{7tBY#׾˩Ff E.-J4Q#ϲq޶;σ('"|dQArɄgJԠs:]`H] b FqƂ]`a\{1| -涩`1.CnQ,mתVCrb5a<7dfeaIJ5(eH~,LIQJDP"V] +˿'gLC3uLmқ\2CW#/TeY_0CKrVP+g.#!fdj@Lo+>5 C<8Et_@Nx5"xFJJsIIq.qY4r; ,ü(EEAx޶xus&Ms S=Qg=9Y{w<}7=îU+V.qJ +UEn&bY{`3+`/Y.8i]_f4.Do-هo^g2'Xv?*0Vsu+_spc]M={A$TDez耛gy/Z}.{?)/>g OJ0*+^[r/KCw6 74 5endstream endobj 572 0 obj << /Type /Page @@ -3236,16 +3236,15 @@ endobj /ProcSet [ /PDF /Text ] >> endobj 582 0 obj << -/Length 1371 +/Length 1365 /Filter /FlateDecode >> stream -xڽXKoF Q Xy?zsHZnm @dxzWHr חdm4-|X!?r8$,#N% K aY' \,iXⴖM¹%*b)5/YfTe(MϪ][r6U$/y-&ȿÜq눕TjE"$8]Isf `(fcmz1L̓%UY=t-#?3[OFX:L!S{wnP`1kfM@ -ʉUWԩWps0!U@B[ft巑X{ֈ+ -o7:y("$պ6ɟdM33k,q-H'E'ى64KB= yxjoE}}>0}yy?o -_6QФ8R#䰫j#KSZ2]ͥ\׷׷ ㊥E嫵5f]C)Eb|`K&ƷUᣘGIySaHHEnnҸp*LOZ11_{LVyD=2tʊd ڂhC>* vZWAfSGٵ1@Ի(fIAxI\@/@D vB'u-=U~Y`7E:oؕabPɬE:zE*mQet@UWiN_,l̯f:1k(!Lx_R=pӴNLu(O uzbTzNS]tnϿ7*!q,^?P>@muYuݷ$94.A AN515U%6s8*A`BN@x0J -g^9Rx4t۶Ra Z@:Xi38ƺ^7 NN~fnP -_ 3"ËE"Ӗ* C1}ľ&Ӣ/AVy>K6]?5Pt@V"S=gik/֎YE@:CH[Ly$YxH_LL+xwR cendstream +xڽXOF> /7R*hA$[;Mgf6>@M+n<3;_;;[XB%FIJ@0\o4YY \.iXⴖM¹%*dr!5/YfTe(Mϫ][r6e*o|Q.o/@j_HMqFf=a.ܸN'1ScxM&t1\gK UD1a0aqP;fEKAT{tV*oCE qQ2PIUvNj 4jmQ" >/>| +T->(ad.8⏡;8QNB +Z_oLaH`w '<* JZ(6&pG12|[l!Hsƭ#VRj3>w& ϙ%ZC1C4;Os׫ac\-MkoAi܁B\ddK\,k̩3701kf)('V(Q?ESDəϣSÆV nIjӕFbO`X8#j(hk8iT$w[ vĵ$+ĸ):N[a(#W+_Ƃ}},ۧ .~ZQ)|D[,%ą%UUka8ꠘB6aE|RTVbmQfQoDdj!;!Q~~XCi[ΪQWu#祿$c%"7Tidi=ܴ:ד:Ud!>&+Ӽl>2Lʊd ւЂ8kɓт},U\m#{_Mu~>*ǒQj% %Qxc@8(_7&Nt[4{{٫N~]?7lEhؕacP6ɬU9fC*mUetPo60iI_.,̯fU05&^闌~M6\4S:= +b4zNnߛ*ҡ}8"j qw!Px[b]uݚ#mIEİ r @~Ks !@tp敀 VhmjuJ Z:x[gz ,DN~*=<0f"DeNj"ӖC1 +")eZ~U^בdE~ A;JtK8k/0i=\ew3CrpYxvH_LCL+xwZaUoYendstream endobj 581 0 obj << /Type /Page @@ -3904,25 +3903,22 @@ endobj /ProcSet [ /PDF /Text /ImageC ] >> endobj 589 0 obj << -/Length 2977 -/Filter /FlateDecode ->> -stream -xڽZߏ۸~߿6fştsmR^kV֖|)Ӓlo78BǙG$$WLeVOr+asM0_dQxJx󧟌&?O(XiyPqSպl.b*ll~m3M뵣}kW5O>yE -cP+e&gy*xfASa&I[hͯeȾ _#cZ13#=74fQk?e+4i쩚B,gN<9-ݼۻFc\cTy c.5G\ xQ,q͊4*NY09XK& uęv66*GiP uv|_ts -}U/iHT/`m{vƽɇ%rX.,#<*a=BqCxpy)Sv̦τbN# 眂l/!<8<R֟w3MeM[T6m1$ w+Xvغ.0ʙT#m ʹT0QwrZE*]G$σPlIJ'uPwnDwO7Eg`ÀIky<.` -XY6?$1-18I48+@Lo"yFTqԖ>s} /ȡ!(˘w!Xf.?yl!N7;N#rWk wewG ?{ EM3W}C)ҭ>IcJ)u[ ?mvenÊ~Բ1 -s>VۋHZч >F8պs/oqРq?بٷ(аY$Ds:sB)7]FAݫ7_mM8nFVmC~ MPuV>d&TEA(x>QZfk)OcՓr=Ιi{_/ؠHZWc.-;ІȈn -(Zj -[b!-(m`4Q*4 yBV@6D&_`n<4U1,5P uiف6o`2VHKtxn@͖]ihSQ!BIhΕF)ǾV;J9sne@Őv{*E?IjN- ,r<Y-u5/C^˲KٌJ&/nᨋ`}6Hi];ZSbzB,f"۴fbuF,OO  -Nh0z=%}r$t#F_.)]Mf -82,99I#׃ +Rh S~K8w8߶nA_PjӾ~lqy@{weariH8[[E%de}[$nH?ŅE*s`|^)\foOʰ;mC |]v ^Ѕ_4 -Š|jbb`] [<3 ˙ A-ᶺ-,sIA¼btqsz}"B+ʴUQ+[G ˊ3'}5n.2љdz6z At7-7~3cThsxHǮAGI 1nH",o Lp/(I %@k)С89vN>)/v%FxėKY`r"e3xb[" -"_%33^.T}i>d88b{|9h -?%B(b^5G/7*9qBr* 65 ,|=04`T-M a15=+^?,pE$pRg S -KHs7gN&ơ qH zٸ@[w+!ƪTl^} =B/Tt")Ct Io :8 9z!$cվ&gg[:u@O) %V !P(:'R"V':k=>L?zZ `U˨t,uh]%\6O>Oa* [G&cPבӣJH'\K}7gNtH2Xez Q²CmGr2]c[iI^],SFWމ3??>]endstream +/Length 2980 +/Filter /FlateDecode +>> +stream +xڽZߏ۸~߿6fştsmr!-=h׌-o-_)Ӓlo78BǙG$$WLeVOr+asM0_dQxJx󧟌&?O(XiyPqjz6y1l6Y6}۶ǙȦؾ^P㵫Aݼ"c1e2LiO3c