La cena de los filosofos
En 1965, Dijkstra planteó y resolvió un problema de sincronización llamado el problema de la cena de los filósofos o los filósofos comensales, este paso serun problema clásico de las ciencias de la computación para representar los problemas de sincronización de los procesos de un sistema operativo o en el compartimiento de recursos.
El problemaconsiste en una mesa en la cual se sientan cinco filósofos de origen chino estos pasan su tiempo pensando o comiendo, de forma alternativa, de un gran de bol de arroz que se encuentra en la mesa. Paraello, los filósofos necesitan tomar un par de palillos, uno que se encuentra a su izquierda y otro a su derecha. El problema es que no hay palillos para todos, de manera que a cada lado de cada filósofose encuentra solamente un palillo. Hasta que un filósofo no tiene los dos palillos no puede empezar a comer y si este quiere pensar deja los palillos de donde los agarro, dejando de comer. Existe laposibilidad que ocurra un bloqueo mutuo, en caso que todos los filósofos cogen uno de los palillos, puesto que jamás podrán coger el otro palillo, que esta ocupado por otro filósofo, produciendo unaespera indefinida; relacionado con la computación esto produciría un bloqueo en el sistema o un deadlock. Además se considera que cada filósofo es un freno para el que esta a la par, ya que, le impidecomer al que esta a la derecha e izquierda de él, comparando este caso con un sistema operativo cada filósofo es un proceso y los palillos son recursos, se necesita una buena administración de procesospara evitar concurrencias y paralelismo.
Un pequeño análisis sobre este problema se plantearía así:
Debe haber un máximo de filósofos comiendo para aprovechar al máximo los palillos o mejordicho los recursos. En este caso serían dos filósofos comiendo por que solamente hay cinco palillos y los otros tres pensando.
Se debe de tener cuidado con los filósofos contiguos no...
Regístrate para leer el documento completo.