https://github.com/matthprost/philosophers
Philosophers is a C Epitech project
https://github.com/matthprost/philosophers
Last synced: 4 months ago
JSON representation
Philosophers is a C Epitech project
- Host: GitHub
- URL: https://github.com/matthprost/philosophers
- Owner: matthprost
- Created: 2017-03-21T12:28:31.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-07-21T18:44:47.000Z (almost 8 years ago)
- Last Synced: 2025-01-11T14:22:23.640Z (5 months ago)
- Language: C
- Homepage:
- Size: 38.1 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Philosophes
===========L'objectif de ce projet et d'apprendre l'utilisation de multi-threads en C.
Sujet
-----Plusieurs philosophes sont autour d'une table et possèdent chacun une baguette.
Un philosophe peut:
- Dormir
- Manger
- Réfléchir
En sachant qu'un philosophe peut uniquement manger s'il possède deux baguettes, réfléchir avec une seule baguette et dormir avec ou sans baguette.Chaque philosophe possède un certain nombre de grain de riz qui est défini en argument au démarrage. Lorsqu'un philosophe mange, le nombre de grain de riz -= 1. Lorsqu'un philosophe arrive à 0 grains de riz alors tous les autres doivent arrêter de manger et le programme doit également s'arrêter.
Un philosophe doit manger avant de dormir puis réfléchir.
On obtient donc l'ordre suivant: [manger -> dormir -> réfléchir] en boucle.L'objectif principal est d'équilibrer au maximum les actions manger, dormir et penser pour essayer d'obtenir un ratio de 1:1:1.
Utilisation
-----------```
$> make
$> ./philosophe -p X -e Y
```
X = nombre de philosophes et Y = nombre de grain de riz par philosophe