• Keine Ergebnisse gefunden

Verteilte Systeme — ¨Ubungsblatt 4

N/A
N/A
Protected

Academic year: 2022

Aktie "Verteilte Systeme — ¨Ubungsblatt 4"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Verteilte Systeme — ¨ Ubungsblatt 4

Prof. Dr. Oliver Haase

In dieser Aufgabe geht es darum, den verteilten Algorithmus von Ricart und Agrawala zum gegenseitigen Ausschluss zu programmieren.

Die abstrakten Klassen DistributedSystem, Process und Message zur Simulation eines verteilten Systems, in der die ’Prozesse’ als nebenl¨aufige Threads in derselben virtuel- len Maschine ablaufen und nachrichtenbasiert miteinander kommunizieren, sind bereits vorgegeben.

Außerdem gegeben sind die KlassenRADistributedSystem,RATrigger,RARequest und RAResponse.

Zur Vervollst¨andigung der L¨osung m¨ussen Sie lediglich die fehlende Klasse RAProcess als Subklasse der vorgegebenen Klasse Prozess implementieren, was konkret bedeutet, dass Sie Methoden zum korrekten Bearbeiten von Nachrichten der Typen RATrigger, RARequest und RAResponse programmieren m¨ussen. Beachten Sie dazu folgende Hin- weise:

• Zum Abwarten der ben¨otigten (n -1)RAResponse-Nachrichten bietet sich die Klasse CountDownLatch an.

• Wenn ein Prozess den Lock erh¨alt, dann soll er ihn f¨ur 3 Sekunden halten und danach wieder freigeben.

• Nach dem Ricart-Agrawala-Algorithmus verz¨ogert ein Prozess das Aussenden einer RAResponse-Nachricht unter Umst¨anden. F¨ur das Abwarten der entsprechenden Bedingung k¨onnen Sie das Methoden-Paarwait()undnotify()bzw.notifyAll() verwenden.

Wenn Sie das vollst¨andige Programm laufen lassen, dann sollten Sie in etwa folgende Ausgabe erhalten:

1

(2)

Viel Spass & gutes Gelingen!

2

Referenzen

ÄHNLICHE DOKUMENTE

Sei (V, σ) ein

(nach Staatsexamensaufgabe Fr¨ uhjahr 2001)... (nach Staatsexamensaufgabe

Momentan jongliert Schnebulus nur mit einem einzigen Kegel (und keinem Ball, keinem Te- traeder und keinem W¨ urfel). Schnebulus w¨ urde gerne die folgenden vier

Erg¨ anzen Sie den ThreadPooledPrimeServer um einen weiteren Thread, der dem Be- nutzer ¨ uber eine grafische Eingabemaske die M¨ oglichkeit gibt, den Server zu beenden.. Sobald

Erg¨ anzen Sie diese gegebenen Klassen um die beiden weiteren Klassen LeafDirectory und CompositeDirectory als Implementierungen der Schnittstelle Directory, so dass die

In dieser Aufgabe geht es darum, den Bully-Algorithmus zum W¨ ahlen eines neuen Anf¨ uhrers zu programmieren.. Dazu sollen Sie die Klassen DistributedSystem, Process und Message,

• Schreiben Sie eine Klasse RmiForumServer, in deren main–Methode Sie ei- ne Instanz der Klasse ForumServer erzeugen, der sie im Konstruktor ein RmiModelReceiver-Objekt mitgeben,

• Schreiben Sie eine Klasse CorbaForumClient, in deren main–Methode Sie ei- ne Instanz der Klasse ForumClient erzeugen, der sie im Konstruktor ein CorbaModelForwarder-Objekt