next up previous contents index
Next: 5.6.1 Logische Uhren Up: 5 PVM Parallel Virtual Previous: 5.5 Produzenten Konsumenten Beispiel

5.6 Verteilte Semaphore

   Als nächstes Problem wollen wir mit PVM und Pthreads verteilte dezentrale Semaphore implementieren. Das Problem entsteht wenn mehrere verteilte Prozesse auf eine gemeinsame (externe) Resource mit mutual exclusion zugreifen wollen. Als Alternativen zur Lösung gibt es

  1. Ein Prozess verwaltet den Semaphor und teilt den anderen Prozessen mittels send und receive den Zustand des Semaphores mit.
  2. Jeder Prozess macht eine lokale Buchführung über den Zustand des Semaphores und die Zustandsinformation wird (auch mittels send und receive) in einem synchronisierten Zustand gehalten.

Die 1. Variante hat den Vorteil, daß sie sehr einfach zu implementieren ist. Der Nachteil besteht aber darin, daß ein Ausfall des Verwaltungsprozesses zum Zusammenbruch des ganzen Systems führt. Der Nachteil der 2. Variante besteht in dem größeren Kommunikationsoverhead der zur Verwaltung des Semaphors notwendig ist. Aber da alle Informationen dezentral verwaltet werden, ist es leichter ein Protokoll einzubauen, das den Ausfall eines Prozesses erkennt und es den anderen erlaubt weiter zu arbeiten. Zur Lösung der 2. Variante benötigen wir einige Vorbereitungen.





parallel@rz.uni-mannheim.de
Mon Okt 28 14:38:25 PST 1996