11.10.2013 Aufrufe

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

6. Verteilte Berechnungen<br />

Philosoph <br />

repeat<br />

denken;<br />

hungrig werden;<br />

nimm Gabel ;<br />

nimm Gabel ÑÓ ;<br />

essen;<br />

lege Gabel zurück;<br />

lege Gabel ÑÓ zurück<br />

until false.<br />

Philosoph mit Semaphoren<br />

repeat<br />

denken;<br />

hungrig werden;<br />

down ();<br />

down ( );<br />

essen;<br />

up ();<br />

up ( <br />

until false.<br />

Verklemmungen möglich!<br />

Verklemmungsfreie Philosophen: Idee<br />

N Philosophen, eine Semaphore ausschluss zum Synchronisieren der Gabelaufnahme<br />

Prozedur prüfe testet ob beide Nachbarn essen; falls nicht aktiviert Philosoph<br />

für Essensphase<br />

je Philosoph eine Semaphore phil umd die Blockade <strong>und</strong> das Aktivieren zu<br />

realsieren<br />

Aktivierung: Philosoph aktiviert (wenn möglich) beide Nachbarn sobald er fertig<br />

gegessen hat<br />

Verklemmungsfreie Philosophen: Varablen<br />

128<br />

int zustand [N];<br />

(* denkend, hungrig, essend *)<br />

semaphor ausschluss = 1;<br />

(* Synchronisation aller Philosophen *)<br />

semaphor phil [N] = 0;<br />

(* Blockade eines Philosophen *)

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!