PPT-Folie
Eine Lösung mit größtmöglicher Parallelität verwendet ein verfeinertes Modell:
- Jeder Philosoph hat die möglichen Zustände THINKING, HUNGRY , EATING .
- EATING kann er nur werden, wenn er HUNGRY ist und seine beiden Nachbarn nicht EATING sind.
- Die zugehörigen Abfragen müssen unter wechselseitigem Ausschluß erfolgen; hierzu dient ein globales binäres Semaphor mutex .
- Jeder Philosoph hat zudem ein eigenes allgemeines Semaphor, mit dem er sich selbst blockiert, wenn er seine Gabeln nicht bekommen konnte. Damit bleibt sein Bedarf angemeldet.
- Dieses Semaphor wird von einem Nachbarn wieder freigegeben, wenn dieser fertig ist und auch der andere Nachbar gerade nicht ißt.