From 78f355313412084991466586d66c5ca2fa92f1c1 Mon Sep 17 00:00:00 2001
From: Thorsten Töpper <atsutane@freethoughts.de>
Date: Sat, 15 Jan 2011 20:46:05 +0100
Subject: Dokumentation für Aufgabe 2 und 3 geschrieben.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 doku/doku.tex | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

(limited to 'doku/doku.tex')

diff --git a/doku/doku.tex b/doku/doku.tex
index e6efca5..ebdd9ca 100644
--- a/doku/doku.tex
+++ b/doku/doku.tex
@@ -92,6 +92,66 @@ dem Bildschirm aus. Dass die Ausgabe tatsächlich sofort erfolgt wird via
 
 Dieser Prozess hat ebenfalls per se keine freizugebenden Resourcen.
 
+\clearpage
+\section{Aufgabe 2}
+
+Aufgabe 2 verlangte die Prozesskommunikation mittels Pipes zu implementieren.
+Die \texttt{pipe} Funktion erstellt eine Datei und liefert zwei Deskriptoren,
+einen zum Schreiben und einen zum Lesen. Der Umgang mit dieser Datei geschieht
+mit den selben Funktionen wie sie auch zum Lesen von Dateien im Dateisystem
+genutzt werden.
+
+\subsection{Kommunikationsstruktur}
+
+Nach Start des Programmes werden drei Pipes erstellt, jeweils eine zur direkten
+Kommunikation zwischen zwei Prozessen. Aus Gründen der Bequemlichkeit entschlossen 
+wir uns die erstellten Deskriptoren in einem globalen Array zu erstellen und den
+Zugriff beim Programmieren mit einem enum und zwei defines zu vereinfachen. Die
+vom Prozess nicht benötigten Pipes werden direkt nach Start des selbigen geschlossen.\\
+
+\begin{center}
+\begin{tabular}{|l|l|}
+\hline
+	\textbf{Schreibend} & \textbf{Lesend} \\
+\hline
+	\texttt{conv} & \texttt{log} \\
+\hline
+	\texttt{conv} & \texttt{statistic} \\
+\hline
+	\texttt{statistic} & \texttt{monitor}\\
+\hline
+\end{tabular}\\
+\textit{Die verwendeten Pipes}
+\end{center}
+
+\subsection{Datenaustausch}
+Da der Datenaustausch über eine vom Kernel verwaltete virtuelle Datei erfolgt,
+haben wir uns hier - wie auch bei der Implementierung der Aufgabe 3 - der
+Einfachheit halber den Austausch der Zahlen über die Formatierung als Hexwerte
+entschieden, auch der \texttt{log} Prozess dieser Implementierung schreibt die
+Werte in ihrer Hexadezimalen Darstellung in die \texttt{log.txt}, was jedoch die
+Portabilität der Logdatei auf andere Systeme erschwert(Little-/Big-Endian).
+
+\clearpage
+\section{Aufgabe 3}
+
+Bei dieser Aufgabe wurde die Kommunikation über Message Queues zu implementieren,
+POSIX-konforme Implementierungen der grundlegenden Funktionen hierfür haben die
+angenehme Eigenschaft standardmäßig mit Locks zu arbeiten. Dies liese zwar mittels 
+der \texttt{O\_NONBLOCK} Option deaktivieren, wäre in unserem Fall jedoch 
+kontraproduktiv.
+
+\subsection{Kommunikationsstruktur}
+Ähnlich wie bei Aufgabe 2 verwenden wir hier erneut 3 Kanäle zur Kommunikation
+zwischen den Prozessen, die Queues werden nach dem Programmstart initialisiert
+und beim Start der Prozesse geöffnet. Eine Verwendung einer einzelnen Queue ist
+selbstverständlich möglich, wir haben uns dennoch dazu entschlossen schlicht das
+Modell der Pipes auf das der Queues abzubilden, am Aufbau hat sich also im Vergleich
+zu Aufgabe 2 nur wenig geändert.
+
+\subsection{Datenaustausch}
+Auch hier haben wir wenig geändert, die Zahlenwerte werden weiterhin in Hexadezimaler Form an die anderen Prozesse gesendet, der \texttt{log} Prozess schreibt die Zahlen diesmal jedoch in dezimaler Form in die Logdatei.
+
 \clearpage
 \section{Aufgabe 4}
 
-- 
cgit v1.2.3-70-g09d2

