Seite 1 von 2

Fragen zu Lab1

Verfasst: 15. Nov 2012 16:49
von Daki
Hallo, allerseits!

In der Aufgabenstellung heißt es: "Your model must not prevent a philosopher from thinking or eating."

Frage: Darf ein Philosoph sich selbst vom Essen abhalten?

Grüße

Daki

Re: Fragen zu Lab1

Verfasst: 15. Nov 2012 16:58
von Nathan Wasser
Nein. Der Philosoph kann vom Essen abgehalten werden, weil er keine zwei Gabeln aufheben kann, aber durch sonst nichts. Es sollte immer die generelle Möglichkeit bestehen, dass ein Philosoph, ob er gerade isst oder nicht, so bald wie möglich (wieder) essen kann.

Re: Fragen zu Lab1

Verfasst: 15. Nov 2012 17:08
von tbecker
Kann der Philosoph denn mit einer Gabel in der Hand denken?

Re: Fragen zu Lab1

Verfasst: 15. Nov 2012 17:32
von Daki
Nathan Wasser hat geschrieben:Nein. Der Philosoph kann vom Essen abgehalten werden, weil er keine zwei Gabeln aufheben kann, aber durch sonst nichts.
Es heißt aber ferner: "The philosopher has problems with picking up two forks simultaneously, which means they always picks up one fork first, then the other one. (So an atomic block for picking up two forks is not allowed.)"

Wir stellen uns das in der Situation schwierig vor, Deadlocks zu verhindern, wenn sich kein Philosoph dazu bereit erklärt, nicht essen zu wollen. Würde ein Philosoph von sich aus sagen, "ich esse nicht" (und dies z.B. damit zeigt, dass er eine Gabel wieder zurücklegt), dann würde er zwar sich selbst vom Essen abhalten, aber auch Deadlocks verhindern. Oder gibt es tatsächlich noch andere Lösungen?

Daki

Re: Fragen zu Lab1

Verfasst: 15. Nov 2012 19:05
von Nathan Wasser
Es gibt tatsächlich auch andere Lösungen.

Re: Fragen zu Lab1

Verfasst: 15. Nov 2012 19:06
von Nathan Wasser
tbecker hat geschrieben:Kann der Philosoph denn mit einer Gabel in der Hand denken?
Um auf die zugrundelegende Frage zu antworten: Natürlich kann es sein, dass ein Philosoph eine Gabel hält und auf die andere warten muss.

Re: Fragen zu Lab1

Verfasst: 16. Nov 2012 16:36
von Yakumo500
Aber es kann ja durchaus sein, dass jeder Philosoph die linke Gabel in die Hand nimmt (hintereinander natürlich) und dann auf die rechte wartet -> Deadlock.
Was soll dann in so einem Fall passieren?

Re: Fragen zu Lab1

Verfasst: 16. Nov 2012 16:40
von Nathan Wasser
Yakumo500 hat geschrieben:Aber es kann ja durchaus sein, dass jeder Philosoph die linke Gabel in die Hand nimmt (hintereinander natürlich) und dann auf die rechte wartet -> Deadlock.
Was soll dann in so einem Fall passieren?
Es soll gar nicht erst dazu kommen.

Re: Fragen zu Lab1

Verfasst: 16. Nov 2012 17:39
von Yakumo500
Danke für die Antwort. Dann hätte ich aber noch eine Frage:
Kann man den einzelnen Philosophen Anweisungen geben? Also z.B. sowas wie jeder Philosoph nimmt zuerst die linke Gabel und erst dann die rechte Gabel?

Re: Fragen zu Lab1

Verfasst: 16. Nov 2012 19:09
von Nathan Wasser
Jeder Philosoph ist ein eigenständiger Mensch, der keine Anweisungen befolgt - kein übergeordneter Prozess darf den Philosophen sagen was sie tun sollen - sondern sich so individuell wie er will verhält.

Jetzt hört auf mit den Fragen und fangt an mit dem Lösen. :)

Re: Fragen zu Lab1

Verfasst: 19. Nov 2012 12:51
von slashafk
Ist es eigentlich so, dass es immer die maximal mögliche Anzahl an Philosophen essen darf,also im falle N=5 2 Philosophen essen dürfen? Oder immer nur einer?

Re: Fragen zu Lab1

Verfasst: 19. Nov 2012 13:14
von dimitrov89
Es muss kein Problem sein 2 Philosophen zu essen, aber nicht 3. :D

Re: Fragen zu Lab1

Verfasst: 19. Nov 2012 14:43
von Nathan Wasser
Es dürfen soviele Philosophen gleichzeitig essen wie durch die Gabeln gestattet. Also für das Beispiel mit 5 Philosophen - wie schon erkannt - nicht mehr als 2. Es müssen aber nicht zu jedem Zeitpunkt genau zwei Philosophen essen, es darf auch mal nur einer essen oder auch gar keiner.

Re: Fragen zu Lab1

Verfasst: 19. Nov 2012 22:39
von slashafk
Werden die Gabeln genauso zufällig und nicht glechizeitig wieder zurückgelegt, wie sie aufgehoben wurden?

Re: Fragen zu Lab1

Verfasst: 20. Nov 2012 19:59
von tacu
was soll denn in die abgabe dann alles mit rein? alle asserts die uns so eingefallen sind? was ist mit weiteren ausgaben? haben uns noch einige prints eingebaut damit wir den code leichter testen konnten, aber das macht den code an sich unübersichtlicher.

wenn die asserts drin bleiben sollen: sollen die dann auch mit jedem N funktionieren?