Philosophers

Résumé: Ce projet est une introduction au threading et aux processus, et sur comment travailler sur le même espace mémoire. Vous apprendrez à manipuler des threads. Vous découvrirez les mutex, les sémaphores et la mémoire partagée.

Voici les choses à savoir si vous souhaitez réussir cet exercice :

• Des philosophes (un philosophe minimum) sont assis autour d’une table ronde au centre de laquelle se trouve un grand plat de spaghetti.

• Les philosophes sont soit en train de manger, de penser ou de dormir.

Lorsqu’ils mangent, ils ne peuvent pas penser ou dormir.

Lorsqu’ils dorment, ils ne peuvent pas manger ou penser.

Enfin, lorsqu’ils pensent, ils ne peuvent pas manger ou dormir.

• Il y a également des fourchettes sur la table. Il y a autant de fourchettes que de philosophes.

• Puisque servir et manger des spaghetti à l’aide d’une seule fourchette n’est pas chose facile, un philosophe prend la fourchette sur sa gauche et celle sur sa droite, soit une fourchette dans chaque main, afin de manger.

• Quand un philosophe a fini de manger, il repose les fourchettes sur la table et se met à dormir. Une fois réveillé, il se remet à penser. La simulation prend fin si un philosophe meurt de faim.

• Chaque philosophe a besoin de manger et ne doit pas mourir de faim.

• Les philosophes ne communiquent pas entre eux.

• Les philosophes ne peuvent pas savoir si l’un d’entre eux est sur le point de mourir.

• Inutile de préciser que les philosophes ne doivent pas mourir !