Operating Systems  I   (Bachelor) -  SoSe 2014

Lab 3:  Remote Shell

 

Abgabetermin: Montag, 09.06.2014, 09:00 Uhr

 

Lernziele. 

Aufgabenstellung.

Implementieren Sie einen Server, der über das Netzwerk Kommandos entgegennimmt und diese ausführt. Der Server soll dazu über ein TCP-Port erreichbar sein. Er soll mehrere Verbindungen von unterschiedlichen Clienten entgegennehmen und verarbeiten können.

Implementieren Sie einen Clienten, der sich mit dem Server verbindet und eine Eingabe (Kommandozeile) zur Verfügung stellt. In der Kommandozeile des Clienten soll der Benutzer kommandos, eingeben können, welche auf dem Server ausgeführt werden. Dabei gibt es zwei Arten von Kommandos:

Bei Programmen soll die Standardausgabe des server-seitig gestarteten Programms an den Clienten geleitet werden.

Zusatzaufgabe.

Implementieren Sie die Kommandos "get" und "put". Mit den Kommandos "get" und "put", soll der Client eine Datei zum Server hochladen / herunterladen können, ähnlich ftp.

Analysieren Sie das Laufzeitverhalten Ihres Systems. Verbinden Sie sich dazu mit unterschiedlich vielen (2-6) Clienten mit dem Server. Führen Sie nun folgende Experimente durch:

Viele lange dauert sie Ausführung des Programms bzw. das Herunterladen in Abhängigkeit von der Anzahl der Clienten?

Nutzen Sie für die Implementierung folgende Vorlage lab-3.tar.

Abgabe der Lösung.

Quelltexte als .tar-Datei (make pack)

Hinweise.

Ressourcen.