<aside>
El dilema de la cena de los filósofos es un problema clásico de las ciencias de la computación propuesto por Edsger Dijkstra en 1965 para representar el problema de la sincronización de procesos en un sistema operativo.
</aside>
En este proyecto se resuelve una versión de este dilema (explicado en el enunciado).
Por lo que el objetivo final será:
- Entender los principios básicos para hilar procesos
- Aprender como crear hilos y trabajar con mutex
<aside>
<img src="/icons/info-alternate_blue.svg" alt="/icons/info-alternate_blue.svg" width="40px" />
El proyecto completo se puede encontrar en mi página de GitHub: AMarqs/philosophers
</aside>
Enunciado
Descripción
Aquí tienes una lista de cosas que deberías conocer si quieres superar este proyecto:
- Uno o más filósofos se sientan en una mesa redonda. En el centro de la mesa se encuentra un gran bol de espaguetis.
- Los filósofos solo pueden comer, pensar, o dormir. Mientras están comiendo, no pueden pensar ni dormir; Mientras están pensando, no pueden dormir ni comer; Y, por supuesto, mientras están durmiendo, no pueden comer ni pensar.
- También hay tenedores en la mesa, tantos tenedores como filósofos.
- Porque coger y comer espaguetis con un solo tenedor puede ser incomodo, los filósofos deben tomar el tenedor de la derecha y el de la izquierda, uno en cada mano.
- Cuándo un filósofo termine de comer, dejará los tenedores en la mesa e inmediatamente empezará a dormir. Una vez se despierte, empezará a pensar nuevamente. La simulación se detendrá cuando un filósofo muere por inanición.