Betriebssysteme · Institut für Systemarchitektur · Fakultät Informatik · TU Dresden

Studienbegleitendes Praktikum -- Remote Procedure Call




Remote Procedure Call

Termin

Die Lösung für diese Aufgabe ist bis zum 04.02.2007 einzureichen.

Aufgabe 4

Diese Übung soll Sie mit der Programmierung mit dem Sun-RPC-Mechanismus vertraut machen. Ziel der Übung ist es, Sie davon zu überzeugen, wie einfach Client-Server-Programmierung mit einem RPC-Mechanismus ist.

Die Aufgabe besteht darin, ein Client-Server-System zu programmieren. Der Server-Prozeß soll zwei Integer-Werte vom Client entgegennehmen und deren Summe zurückliefern.

  1. Schreiben Sie eine Spezifikationsdatei für den RPC vom Client zum Server.

    Benutzen Sie das Programm rpcgen (auf ganymed), um Client- und Server-Stubs zu erzeugen.

    Hinweise:
    • Denken Sie sich eine zufällige Protokollnummer zwischen 0x40000000 und 0x5fffffff aus. Zum einen ist dieser Bereich für Nutzerapplikationen reserviert, und zum anderen garantiert die »Zufälligkeit«, daß Ihr RPC-Server nicht mit dem RPC-Server eines Kommilitonen kollidiert.)
  2. Schreiben Sie die Server-Prozedur.

  3. Schreiben Sie das Clientprogramm.

  4. Übersetzen und linken Sie die Module des Server- und des Client-Programms.

    Hinweise:
    • Verwenden Sie den C-Compiler gcc zum Compilieren und Linken des Programms.
    • Unter Solaris müssen Client und Server mit folgenden Systembibliotheken gebunden werden: "-lrpcsvc -lnsl"
  5. Starten Sie den Server-Prozeß. Testen Sie das Client-Programm.
  6. Vergessen Sie nach dem Testen nicht, den Server-Prozeß mit "kill prozeß-id" zu beenden.

    Hinweise:
    • Die Prozeß-ID des Servers finden Sie mit dem Programm /usr/ucb/ps heraus. Achtung: Wenn Sie /usr/ucb/ps ohne Argumente starten, wird der Server nicht angezeigt, da er nicht mehr an das aktuelle Terminal gebunden ist. Sie müssen also ps mit erweiternden Optionen aufrufen, um den Server-Prozeß zu finden (siehe Online-Manual).
    • (Unter Solaris gibt es zwei Versionen von ps -- eine SysV- und eine BSD-Variante. Ich empfehle die BSD-Variante um sicherzustellen, daß diese verwendet wird, empfielt es sich, statt nur "ps" den vollständigen Pfadnamen "/usr/ucb/ps" anzugeben.)

Eine vollständige Lösung besteht aus den (funktionstüchtigen) Quelldateien für RPC-Spezifikation, Server-Prozedur und Clientprogramm sowie einem Makefile, welches Regeln für das Bauen (Generieren der Stubs, Übersetzen der Quelldateien, Linken) und Testen (make test) Ihrer Lösung enthält.

Material

Online-Ressourcen:
  • Manual-Seiten der Programme
  • rpcgen
Norman Feske, http://os.inf.tu-dresden.de/~nf2/
9. Oct 2006
· Copyright © 2001-2022 Operating Systems Group, TU Dresden | Impressum ·