Dining Philosophers

Das Problem der "Dining Philosophers" ist ein Fall der klassischen Schule über die gemeinsame Nutzung von Computersystemressourcen. Es geht um die Prozessplanung und Ressourcenallokation auf diese. Dies wurde durch Edsger Dijkstra angesetzt.

Das Problem

Die Situation ist folgende:

  • Fünf Philosophen sind um einen Tisch;
  • jeder der Philosophen vor ihm Spaghetti;
  • auf der linken Seite von jedem Gericht ist Spaghetti Gabel.

Ein Philosoph hat nur drei mögliche Zustände:

  • Denken auf unbestimmte Zeit;
  • Hunger;
  • essen, für eine feste und endliche Zeit.

Äußere Zwänge werden dafür benötigt:

  • wenn ein Philosoph hungrig ist, wird er in den Zustand zu versetzen "hungrig" und warten, bis die Gabeln sind kostenlos;
  • zu essen, ein Philosoph braucht zwei Gabeln: eine, die seiner eigenen Platte gelassen wird, und, was recht ist;
  • wenn ein Philosoph kann nicht eine Gabel greifen, bleibt er hungrig für eine bestimmte Zeit, die darauf warten, sein Versuch zu erneuern.

Das Problem ist, um einen Zeitplan von Philosophen, so dass sie alle essen können, die jeweils wiederum finden. Die Bestellung wird durch die Lösung auferlegt werden, mit der von Dijkstra Semaphore oder Courtois mit Zähler berücksichtigt.

Erläuterungen

  • Die Philosophen, wenn sie alle in der gleichen Weise und naiv, starker Risiko wirken die sich in einer Situation der Sackgasse. In der Tat nur, dass jeder begreift seine Gabelung links, und dann jede Warte seiner rechten Gabel ist für keine von ihnen konnte essen, für die Ewigkeit.
  • Wir sind der Ansicht, dass ein Philosoph, der stirbt in einer Phase des "denkenden" unendlich bleibt. Es ergibt sich somit ein Problem: Was ein Philosoph, der mit seiner Gabel in der Hand stirbt?
  • So viel komplexeres Problem als die Luft ist eine der interessantesten unter den verteilten Systemen Probleme.

Lösungen

  • Eine der Hauptaufgaben zu diesem Problem ist, dass die Semaphore, die ebenfalls von Dijkstra vorgeschlagen.
  • Eine andere Lösung ist jeder Philosoph eine Zeit der Reflexion über Zufallsausfall zu geben.
  • Es gibt Kompromisse, die die Anzahl der Philosophen durch diese Situation die Mühe gemacht zu begrenzen. Einschließlich eines einfachen Havender basierend auf der hierarchischen Verfahrens, begrenzt die Anzahl der Philosophie auf einer Seite und zwei auf der anderen beeinflußt.

Die Lösung Chandy / Misra

Im Jahr 1984 KM Chandy und J. Misra schlug eine neue Variante, eine beliebige Anzahl n von Agenten von einem beliebigen Namen mit einer Anzahl m von Ressourcen identifiziert. Das schlanke, generisches Protokoll ist wie folgt:

  • Für kann jedes Paar von Philosophen den gleichen Bereich zu gelangen, wir zuerst geben es je nachdem, was die kleinste Namen hat. Das gesamte Sortiment wird entweder sauber oder schmutzig. Anfänglich sind alle die Gabeln verschmutzt.
  • Wenn ein Philosoph zu essen will, muss er die Bereiche der beiden Nachbarn zu erhalten. Für jedes Band fehlt, eine Anfrage sendet er höflich.
  • Wenn ein Philosoph, der eine Hand Gabel hört einen Antrag auf es,
    • oder der Bereich ist sauber und das Sorgerecht.
    • oder der Bereich verschmutzt ist, reinigen Sie es und hat es gegeben.
  • Nach ein Philosoph hat dem Essen fertig haben beide Gabeln verschmutzt. Wenn ein anderer Philosoph einen Antrag auf eine ihrer Bereiche ausgestellt hatte, reinigt es und gibt.

Lösung in der Peer-Fall

In dem Fall, besteht auch eine einfache Lösung. Philosophen werden nach ihren Platz am Tisch gezählt. Und eine, die Philosophen mit einer geraden Anzahl von ersten Gabel haben ihre linke und rechte und deren Gegensatz die Philosophen mit einer ungeraden Anzahl.

Beweis für die Genauigkeit der Lösung

Betrachten wir den Fall eines Philosophen, der erste nimmt den linken Gabel. Wenn er es zu nehmen, bleibt es nur, um ihn auf die rechte Abzweigung zu nehmen. Es kann dauerhaft blockiert werden, wenn das Recht hält der Philosoph ist, dass er isst. So ist unsere Philosophen niemals blockieren.

Verstehen dieser Lösung ist einfacher, am Beispiel der Anwesenheit von zwei Philosophie.

(0)
(0)
Kommentare - 0
Keine Kommentare

Fügen Sie einen Kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Zeichen übrig: 3000
captcha