🍝 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.
Ü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.