Direkt zum Inhalt

Freistetters Formelwelt: Verhungernde Philosophen

Ein etwas schräges Gedankenexperiment zeigt, warum jeder Computer eine Uhr braucht. Denn alles muss schön nacheinander passieren, ob bei Strings oder Spagetti.
Eine mit Spagetti umwickelte Gabel schwebt über einem sehr vollen Teller mit Spaghetti bolognese.

Die Bestimmung der korrekten Uhrzeit ist ein durchaus komplexes Unterfangen, für das jede Menge Astronomie, Physik und Mathematik nötig sind. Im Alltag haben wir allerdings meistens wenig Probleme damit. Wenn wir wissen wollen, wie spät es ist, dann schauen wir auf die Uhr. Höchstens zweimal im Jahr, zur Zeitumstellung, müssen wir uns kurz Gedanken darüber machen, ob das, was da angezeigt wird, korrekt ist oder nicht. Anderswo ist die Sache mit der Uhrzeit deutlich komplizierter:

Diese Formel beschreibt das so genannte schwache Konsistenzkriterium für Uhren. Damit sind aber nicht die Zeitmesser gemeint, die wir verwenden, wenn wir wissen wollen, wie spät es ist. Sondern »logische Uhren«, die in Computern verwendet werden. Diese Geräte machen sehr viel in sehr kurzer Zeit; viele Prozesse laufen gleichzeitig ab, und damit alles funktioniert, muss irgendetwas den Überblick behalten. Genau das macht eine logische Uhr, die aber nicht unbedingt wissen muss, wie spät es in der echten Welt ist. Es reicht, wenn sie korrekt identifizieren kann, welche Ereignisse in welcher Ordnung abgelaufen sind.

Die legendärsten mathematischen Kniffe, die übelsten Stolpersteine der Physikgeschichte und allerhand Formeln, denen kaum einer ansieht, welche Bedeutung in ihnen schlummert: Das sind die Bewohner von Freistetters Formelwelt.
Alle Folgen seiner wöchentlichen Kolumne, die immer sonntags erscheint, finden Sie hier.

Jedes Ereignis bekommt von der logischen Uhr einen Zeitstempel verpasst, und am Ende muss die oben angeführte Gleichung erfüllt sein. Wenn also ein Ereignis a vor einem Ereignis b stattfindet, dann muss der Zeitstempel C(a) auch kleiner sein als C(b). Daraus folgt nicht, dass a auch die Ursache von b sein muss; es geht vorerst bloß darum, alles vernünftig zu ordnen. Wenn es im Computer nur einen einzigen Prozess gibt, der abläuft, ist das recht einfach zu lösen.

Es kann aber auch sein, dass zum Beispiel viele Einzelrechner gleichzeitig auf einen zentralen Server zugreifen. Oder dass aus anderen Gründen mehrere Prozesse parallel nebeneinander ablaufen. Gerade dann ist es wichtig, dass das System nicht vergisst, in welcher Reihenfolge alles abgelaufen ist. Sonst kann es passieren, dass es irgendwann nicht mehr weiß, was passieren soll. Dann steht das System still, wie das berühmte Gedankenexperiment des »Philosophenproblems« demonstriert.

Das Problem mit der Gleichzeitigkeit

Fünf Philosophen sitzen im Kreis um einen Tisch herum. Jeder hat einen Teller mit Spagetti vor sich. Zwischen zwei Tellern liegt je eine Gabel; insgesamt gibt es also fünf Philosophen, fünf Teller und fünf Gabeln. Das erscheint eigentlich nicht problematisch, und man könnte allen einen guten Appetit wünschen.

Aber die Regeln des Gedankenexperiments besagen, dass jeder Philosoph zwei Gabeln braucht, um essen zu können. Was sie aber sowieso nur machen, wenn sie nicht gerade tiefgründige Gedanken haben. Irgendwann wird man jedoch auch beim Nachdenken hungrig. Dann greift sich der entsprechende Philosoph zuerst die linke Gabel, dann die rechte und isst die Spagetti. Ausreichend gesättigt, legt er das Besteck zurück und denkt weiter. Falls zufällig gerade ein anderer Philosoph die Gabeln benutzt, wird einfach gewartet, bis er fertig ist.

Das alles ist zwar sehr obskur, aber so lange kein Problem, bis nicht alle fünf auf einmal beschließen zu essen. Dann greift jeder zur linken Gabel – womit niemand mehr eine rechte Gabel zur Verfügung hat. Gemäß den Regeln wartet jeder, bis jemand anderes die Gabel wieder zurücklegt. Was allerdings nicht passiert, weswegen die Philosophen verhungern.

Man weiß nicht, was sich der niederländische Informatiker Edsger Dijkstra gedacht hat, als er dieses Beispiel 1971 erfand, um die Probleme der Kommunikation zwischen mehreren gleichzeitig ablaufenden Prozessen zu demonstrieren. Es zeigt auf jeden Fall, dass man sich Gedanken darüber machen muss, wie man die Zeit in einem Computer misst, wenn alles funktionieren soll. Und selbst wenn es nichts mit dem Thema zu tun hat: Gedanken sollte man sich meiner Meinung auch dann machen, wenn man zwei Gabeln braucht, um Spagetti zu essen!

Schreiben Sie uns!

Beitrag schreiben

Wir freuen uns über Ihre Beiträge zu unseren Artikeln und wünschen Ihnen viel Spaß beim Gedankenaustausch auf unseren Seiten! Bitte beachten Sie dabei unsere Kommentarrichtlinien.

Tragen Sie bitte nur Relevantes zum Thema des jeweiligen Artikels vor, und wahren Sie einen respektvollen Umgangston. Die Redaktion behält sich vor, Zuschriften nicht zu veröffentlichen und Ihre Kommentare redaktionell zu bearbeiten. Die Zuschriften können daher leider nicht immer sofort veröffentlicht werden. Bitte geben Sie einen Namen an und Ihren Zuschriften stets eine aussagekräftige Überschrift, damit bei Onlinediskussionen andere Teilnehmende sich leichter auf Ihre Beiträge beziehen können. Ausgewählte Zuschriften können ohne separate Rücksprache auch in unseren gedruckten und digitalen Magazinen veröffentlicht werden. Vielen Dank!

Partnerinhalte

Bitte erlauben Sie Javascript, um die volle Funktionalität von Spektrum.de zu erhalten.