Startseite Verteiltes & Paralleles Rechnen Speisende Philosophen — Deadlock & Nebenläufigkeit

🍝 Speisende Philosophen — Deadlock & Nebenläufigkeit

Fünf Philosophen teilen sich fünf Gabeln: Greifen sie naiv nach beiden, kommt es zum Deadlock. Schalten Sie Ressourcenreihenfolge, einen Schiedsrichter-Kellner oder begrenzte Plätze um und beobachten Sie, wie das klassische Nebenläufigkeitsproblem gelöst wird.

Verteiltes & Paralleles Rechnen3DMittel60 FPS
dining-philosophers ↗ Eigenständig öffnen
ZIEHEN · SCROLLEN · KLICKEN — direkt im Simulationsfenster steuern.

Über diese Simulation

Diese Simulation lässt fünf Philosophen an einem runden Tisch zwischen Denken, Warten und Essen wechseln, während sie um fünf gemeinsame Gabeln konkurrieren. Ohne Schutzmechanismus führt die naive Strategie unweigerlich zu einem Deadlock, bei dem alle fünf für immer auf eine Gabel warten.

🔬 Was gezeigt wird

Fünf Agenten greifen nach zwei benachbarten Gabeln, um zu essen. Je nach gewählter Strategie (naiv, Ressourcenreihenfolge, Kellner-Arbiter, begrenzte Plätze) endet das System im Deadlock oder läuft dauerhaft weiter.

🎮 Bedienung

Wählen Sie eine Strategie aus dem Dropdown und beobachten Sie den Zustand jedes Philosophen (Denken/Wartend/Essend) in Echtzeit. Bei der naiven Strategie führt jeder Durchlauf früher oder später zum Stillstand.

💡 Wussten Sie schon?

Dijkstra formulierte das Problem 1965 ursprünglich mit fünf Computern, die um Bandlaufwerke konkurrierten — erst später wurde es zur bekannten Geschichte mit Philosophen und Spaghetti umformuliert.

Häufig gestellte Fragen

Was ist das Problem der speisenden Philosophen?

Das Problem der speisenden Philosophen ist ein klassisches Nebenläufigkeitsbeispiel von Edsger Dijkstra: Fünf Philosophen sitzen an einem runden Tisch, zwischen je zwei liegt eine Gabel, und zum Essen braucht jeder Philosoph beide benachbarten Gabeln. Greift jeder naiv zuerst nach der linken Gabel, warten am Ende alle auf die rechte — ein klassischer Deadlock.

Wie behebt man den Deadlock?

Übliche Lösungen sind: eine feste Ressourcenreihenfolge (z. B. immer erst die Gabel mit der niedrigeren Nummer aufnehmen), ein Schiedsrichter (Kellner), der nur einer begrenzten Anzahl Philosophen gleichzeitig Zugriff erlaubt, oder eine Begrenzung der Sitzplätze auf n-1.

Wie bediene ich diese Simulation?

Schalten Sie zwischen der naiven Strategie und den Lösungen (Ressourcenreihenfolge, Kellner-Arbiter, begrenzte Plätze) um und beobachten Sie, wie Philosophen zwischen Denken, Warten und Essen wechseln — bei der naiven Strategie frieren irgendwann alle im Wartezustand ein.

Warum ist dieses Problem in der Informatik so wichtig?

Es veranschaulicht die vier notwendigen Bedingungen für einen Deadlock (gegenseitiger Ausschluss, Halten-und-Warten, keine Verdrängung, zirkuläres Warten) und dient als Standardbeispiel beim Entwurf von Betriebssystemen, Datenbank-Sperrmechanismen und verteilten Systemen.

Ähnliche Simulationen