¨Ubungen zu â Modellierung verteilter Systemeâ
¨Ubungen zu â Modellierung verteilter Systemeâ
¨Ubungen zu â Modellierung verteilter Systemeâ
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Aufgabe 3 Programmieraufgabe: Synchronisation von Prozessen<br />
• Bäckerei-Problem<br />
Beim Betreten des Geschäfts erhält jeder Kunde eine Wartenummer. Der Kunde mit der kleinsten<br />
Nummer wird als nächster bedient. Da es keine Garantie gibt, dass zwei Kunden nicht die gleiche<br />
Wartenummer kriegen, wird im Falle zwei gleicher Nummern der Prozess (Kunde) mit dem<br />
kleinsten Namen als erster bedient. Das bedeutet, wenn P i und P j die gleiche Nummer erhalten<br />
und i < j, dann wird der Prozess P i als erstes bedient.<br />
– Schreiben Sie ein Programm in Pseudo-Code für das Backery-Problem.<br />
Hinweis: Da die Prozessnamen einzigartig und total geordnet sind, ist der Algorithmus<br />
komplett deterministisch.<br />
– Schreiben Sie ein Programm für das Backery-Problem, indem Sie binäre Semaphoren benutzen.<br />
– Optional: Schreiben Sie ein Programm in Java, dass den gleichen Sachverhalt umsetzt und<br />
vergleichen Sie die 2 Programme.<br />
• Das Philosophen-Problem<br />
Fünf Philosophen sitzen gemeinsam an einem runden Tisch, an dem sie unabhängig voneinander<br />
von Zeit <strong>zu</strong> Zeit essen. Jeder Philosoph hat rechts neben seinem Teller nur eine Gabel, benötigt<br />
aber <strong>zu</strong>m Essen zwei Gabeln, also auch die seines linken Nachbarn. Aus diesem Grund können nicht<br />
alle Philosophen gleichzeitig essen, sondern sie müssen sich bezüglich ihrer kritischen Abschnitte<br />
Essen synchronisieren.<br />
– Geben Sie eine Programmlösung unter Verwendung der P- und V-Operationen an, bei der es<br />
<strong>zu</strong> keinerlei Verklemmungen kommen kann.<br />
Hinweis:<br />
∗ Die Philosophen sollen als Prozesse modelliert werden<br />
∗ Jeder Philosoph kann sich in einem der folgende drei Zustände befinden (denkend, hungrig<br />
und essend)