Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
Hacía tiempo que no ponía una entrada tan friki pero me ha parecido tan curiosa que no he podido resistirme. Inception (Origen en España) no me ha parecido la gran película que todos esperábamos que fuera pero tampoco me pareció un desastre. Independientemente de esto, dio muchísimo que hablar. Además de la minicrítica, la metí dentro de un post sobre el cine y los sueños y llevé a cabo un paralelismo con la informática. Se trata de una película que tiene bastante miga y toda esa miga ha sido traducida a C, que como sabéis es el lenguaje de programación más popular para crear software de sistemas. El culpable ha sido karthick18 y ha llevado unas 1900 líneas de código…

Flipante. Todo el código está subido a Github y no tiene desperdicio. Lo encontré en The Change Log donde además plantean algo muy interesante para explicar cómo se ha implementado el código de Inception: el problema de la cena de los filósofos.
Cinco filósofos se sientan alrededor de una mesa y pasan su vida cenando y pensando. Cada filósofo tiene un plato de fideos y un tenedor a la izquierda de su plato. Para comer los fideos son necesarios dos tenedores y cada filósofo sólo puede tomar los que están a su izquierda y derecha. Si cualquier filósofo coge un tenedor y el otro está ocupado, se quedará esperando, con el tenedor en la mano, hasta que pueda coger el otro tenedor, para luego empezar a comer.
Si dos filósofos adyacentes intentan tomar el mismo tenedor a una vez, se produce una condición de carrera: ambos compiten por tomar el mismo tenedor, y uno de ellos se queda sin comer.
Si todos los filósofos cogen el tenedor que está a su derecha al mismo tiempo, entonces todos se quedarán esperando eternamente, porque alguien debe liberar el tenedor que les falta. Nadie lo hará porque todos se encuentran en la misma situación (esperando que alguno deje sus tenedores). Entonces los filósofos se morirán de hambre. Este bloqueo mutuo se denomina interbloqueo o deadlock.
El problema consiste en encontrar un algoritmo que permita que los filósofos nunca se mueran de hambre.
Se trata de un problema muy conocido propuesto por Dijkstra en 1965 y que se suele usar para representar los problemas de la sincronización de procesos en un Sistema Operativo. Esto lleva a diversas soluciones como «Por turno cíclico», «Colas de tenedores» o «El portero del comedor». Realmente interesante a la par que friki 🙂
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
La pelicula Inception (Origen) explicada en código C « Ubuntu Life
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
Inception (Origen) explicado en lenguaje C
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
procuradores en puente genil
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
casi me ha dejado igual que el final de la peli, algo perdido 🙂
saludos
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
José
Hola buenas!
me ha gustado mucho el artículo, aunque conocía a Dijkstra (de la facul) no conocía este problema.
Aún así, me mosquea algo… si son 5 filósofos, cómo puede ser posible que dos filósofos adyacentes sean bloqueados no dejando ninguno libre? Suponiendo que sean bloqueos dos a dos, uno siempre está libre.
Felicidades por el blog!
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
Luismito
Cada filosofo tiene un tenedor a la derecha y a la izquierda. Necesitan los dos para comer. Imagina que todos cojen el de su izquierda; ninguno podrá cojer el de su derecha, por que ya está ocupado. Por lo tanto todos se quedaran con su tenedor, sin poder comer… infinitamente
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
Jorge
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
A mi tampoco me entusiasmó la pelicula, y creo que la razón fué el increible hype que se desató, con las consiguientes expectativas que se genera uno. No hay nada peor que ir a ver una pelicula con alguna idea preconcebida.
Por cierto, si que te ha quedado un articulo friki 🙂
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/customer/www/pisitoenmadrid.com/public_html/blog/wp-content/plugins/ultimate_ga_1.6.0.php on line 524
¿Se puede explicar una peli con código? Si, y aquí está la prueba