Dazu kommen je zwei Transitionen für die Aktionen
- Je eine Stelle für jedes Stäbchen und
- je zwei Stellen für jeden Philosophen (er kann entweder denken oder essen)
- der Philosoph nimmt die Stäbchen und beginnt zu essen,
- der Philosoph legt die Stäbchen weg und geht zum Denken über


Die Schaltregeln für Petrinetze sichern auf diese Art und Weise, daß der Übergang vom Denken zum Essen nur dann erfolgen kann, wenn beide Stäbchen auf dem Tisch liegen. In der Programmierpraxis ist das nicht ganz so einfach. Es sind immerhin zwei Bedingungen nacheinander zu prüfen.
Grafik aus
"Nebenläufige Programme"
vom Springer-Verlag
Wenn in der Zeit, in der die zweite Bedingung geprüft wird, der Zustand der ersten verändert wird, war die ganze Prüfung umsonst. Genauso kritisch ist die Zeit zwischen Prüfung und Zugriff auf die Stäbchen. Es muß gesichert werden, daß in der Zeit, die zwischen Prüfung und Zugriff oder dem Zugriff auf das erste Stäbchen und dem Zugriff auf das zweite Stäbchen vergehen kann, kein anderer Zugriff erfolgt. Um das zu erreichen, programmiert man Schloßvariablen, Semaphore, Monitore oder läßt die Prozesse über Nachrichten miteinander kommunizieren.
zurück zur Gliederung zur 4+5. Stunde