Inception no es que haya sido una gran película, pero tampoco fue un desastre, e independientemente de esto, dio muchísimo que hablar. Se trata de una película que tiene bastante en la historia para profundizar, y un excelente ejercicio cerebral sobre la misma, fue traducir su trama al Lenguaje C, que como saben, es el lenguaje de programación más popular para crear software de sistemas. El autor del código fuente fue un tal karthick18 y se llevó unas 1900 líneas de código.

Fragmento del código fuente que simula la trama de Inception
¿Escuchó alguna vez sobre el problema de la cena de los filósofos? Como muchas cosas en las Ciencias de la Computación, esto lleva al eminente Edsger Dijkstra, quien originalmente planteo el problema para el caso de unidades de cinta magnética en 1965.
Aquí un resumen:

Aquí un resumen:
Cinco filósofos se sientan alrededor de una mesa, cada uno tiene un plato de pasta frente a él. Entre cada recipiente de pasta hay un tenedor. Un filósofo puede hacer una de dos cosas: pensar o comer. Para comer, debe usar los tenedores que están tanto a la izquierda como a la derecha de su plato. Si no consigue ambos utensilios al mismo tiempo, no le queda más remedio que ponerse a pensar y esperar otro momento para intentar comer.
Este planteamiento demuestra muchos problemas relacionados con la concurrencia: los filósofos podrían literalmente morirse de hambre si ninguno libera los recursos (el tenedor) para que otro los utilice. Una implementación ingenua de solución, podría "bloquear" a todos los filósofos y entonces cada uno quedarse con un solo tenedor. Las simulaciones de este problema se escriben a menudo usando "mutexes" para los tenedores e hilos para los fiósofos.
Ese estilo de resolución, con el uso de mutexes, es usado en la implementación del código de Incepción: hay mutexes que representan cada nivel de sueño, así como a todos los "lucid dreamers". Hay "colas", los "dreamers" hacen cosas simultáneamente,... El código tiene un número razonable de comentarios, aunque si el lector no está familiarizado con los hilos, podría encontrarse bastante confundido.
Totalmente friki y genial.
Ese estilo de resolución, con el uso de mutexes, es usado en la implementación del código de Incepción: hay mutexes que representan cada nivel de sueño, así como a todos los "lucid dreamers". Hay "colas", los "dreamers" hacen cosas simultáneamente,... El código tiene un número razonable de comentarios, aunque si el lector no está familiarizado con los hilos, podría encontrarse bastante confundido.
Totalmente friki y genial.

La siguiente imagen, es una captura de la pagina en donde se encontrar el código fuente. El enlace está en la segunda fuente de información de este post, y el mismo que coloco acá por comodidad:
https://github.com/karthick18/inception
Platforma de trabajo: Linux en x86 (32 bits).
Para compilar: descargar todo el código en un mismo directorio y ejecutar make
Para ejecutar: Para ejecutar: ./inception
Platforma de trabajo: Linux en x86 (32 bits).
Para compilar: descargar todo el código en un mismo directorio y ejecutar make
Para ejecutar: Para ejecutar: ./inception


