En el artículo de Dijkstra "Programador humilde" , menciona que dio a algunos voluntarios un problema para resolver:
“He realizado un pequeño experimento de programación con voluntarios realmente experimentados, pero apareció algo bastante inesperado y bastante inesperado. Ninguno de mis voluntarios encontró la solución obvia y más elegante. Tras un análisis más detallado, esto resultó tener una fuente común: su noción de repetición estaba tan estrechamente relacionada con la idea de una variable controlada asociada que se intensificaría, que fueron bloqueados mentalmente para que no vieran lo obvio. Sus soluciones fueron menos eficientes, innecesariamente difíciles de entender, y les llevó mucho tiempo encontrarlas ”.
¿Cuál fue el problema que Dijkstra le dio a los voluntarios? ¿Cuáles fueron las soluciones?
fuente
Respuestas:
El "problema de los filósofos gastronómicos" fue el problema presentado.
Esto tiene sus raíces en los sistemas concurrentes y es una pregunta universitaria típica que se presenta cuando se discute la concurrencia.
Creo que se han desarrollado 4 o 5 algoritmos "oficiales" para resolver el problema, pero una búsqueda rápida en Google para "Problema de los filósofos gastronómicos" le dará una gran variedad de resultados.
Para obtener detalles sobre este problema de Standford U, visite: http://academicearth.org/lectures/dining-philosopher-problem
El artículo de la wikipedia se encuentra en: http://en.wikipedia.org/wiki/Dining_philosophers_problem
Una solución de MSDN Magizine se encuentra en: http://msdn.microsoft.com/en-us/magazine/dd882512.aspx
Si lee la versión original del documento en las notas al pie de la página 866, dice: "Actas del Congreso de la IFIP 1965, 213-217." Soluciones de un problema en el control de programación concurrente ".
El problema en la concurrencia y los recursos compartidos es el "Problema de los filósofos gastronómicos". :-)
Espero que ayude.
fuente