¿Qué significa el problema de los filósofos comensales?
El problema de los filósofos comensales es un ejemplo clásico en informática que se utiliza a menudo para ilustrar los problemas de sincronización y las soluciones en el diseño de algoritmos concurrentes.
Ilustra los retos de evitar un estado del sistema en el que no es posible avanzar, un punto muerto. El problema fue creado en 1965 por E. W. Dijkstra. Presentado como un ejercicio de examen para estudiantes, el problema ilustra una serie de ordenadores que compiten por el acceso a los periféricos de una unidad de cinta. La formulación conocida hoy en día fue una revisión posterior de Tony Hoare.
Definición del problema de los filósofos comensales
El problema de los filósofos comensales es una ilustración de un punto muerto, un estado en el que varios procesos están esperando un único recurso que está siendo utilizado por otro proceso, y de las soluciones a este tipo de problemas. La formulación actual del problema de los filósofos fue creada por Tony Hoare, pero el problema fue formulado originalmente por Edsger Dijkstra en 1965.
El enunciado del problema de Tony Hoare trata de cinco filósofos que deben comer y pensar alternativamente. Los cinco están sentados en una mesa redonda con un plato de espaguetis y tenedores colocados adyacentemente entre los filósofos. Un tenedor sólo puede ser utilizado por un filósofo a la vez. Sin embargo, para comer, se necesitan dos tenedores: el de la izquierda y el de la derecha.
Un filósofo puede coger un tenedor disponible, pero no se le permite comer a menos que tenga ambos tenedores, el izquierdo y el derecho. Hay que señalar que comer no está limitado por la cantidad posible de espaguetis que queden o por el espacio del estómago. Se supone que hay una oferta y una demanda infinitas de espaguetis.