Abt. Verteilte Systeme 17.11.98

Fakultät für Informatik

Universität Ulm

 

4. Übungsblatt zur Vorlesung

"Verteilte Systeme II"

 

Wintersemester 98/99

 

 

 

  1. Verteilter gemeinsamer Speicher

 

  1. Worin unterscheiden sich Message-Passing und Distributed-Shared-Memory (DSM) bezüglich:
  1. Erklären Sie

 

  1. Programmieraufgabe: Display-Server auf DSM-Basis

 

Erstellen Sie einen Display-Server, der Nachrichten(Textzeilen) via UDP entgegen nimmt und diese am Bildschirm darstellt. Ein entsprechender "Minimalklient" zum Abschicken der Nachrichten ist ebenfalls zu erstellen.

 

Der Server besteht aus 2 Threads. Der erste nimmt über die UDP-Socketschnittstelle Display-Nachrichten der Klienten entgegen und schreibt diese in einen gemeinsam genutzten Speicherbereich. Ein zweiter Thread gibt diesen Speicherinhalt periodisch im Abstand von einigen Sekunden auf den Bildschirm aus.

 

Der erste Thread des Display-Servers nimmt Benutzereingaben entgegen und versucht, diese in einen Read-Only-Speicherbereich zu schreiben. Bei diesem Versuch wird Thread 1 von einer Signal-Handler-Routine unterbrochen. Der Signal-Handler wiederum setzt den Speicherbereich auf Read-Write, worauf Thread 1 seinen Schreibversuch erfolgreich beenden kann. Der 2. Server-Thread gibt den Speicherinhalt am Bildschirm aus und setzt die Page danach wieder auf Read-Only.

 

Hinweis: Diese Aufgabe ist die Grundlage einer einfachen DSM-Implementierung, welche im nächsten Übungsblatt kommt.

 

Hilfestellung: Ein Beispielprogramm für die Nutzung des mmap() Aufrufs findet sich auf den WWW-Seiten zur Vorlesung.