System-Failure System-Failure - Computadora que no se cuelga

Si hay algo que nos puede fastidiar bastante es que nuestro *smartphone* o nuestro ordenador personal se queden colgados, por ejemplo, por un fallo en una aplicación que estamos ejecutando. Quizás a nivel personal es algo que, aunque molesta, no tiene demasiada importancia pero una situación de bloqueo en un sistema crítico es algo que puede tener un gran impacto. Basándose en un esquema que intenta emular la aleatoriedad de la propia naturaleza, un equipo de investigación de la Escuela Universitaria de Londres está trabajando en una computadora que nunca se quedaría colgada puesto que sería capaz de reprogramarse y auto-repararse para evitar una situación de bloqueo.

La idea es que ante una inminente situación de bloqueo, por ejemplo, ante unos datos que se han corrompido, el sistema sea capaz de recuperarse por sí mismo y reparar los datos dañados para prevenir el fallo; un hecho de especial importancia para sistemas de gran criticidad como los que forman parte de un avión o sistemas de control más críticos, por ejemplo, en una central nuclear o, incluso, que un avión no tripulado que ha sido dañado en combate sea capaz de reprogramar sus sistemas y adaptarse a la nueva situación.

### ¿Cómo puede reprogramarse un computador?
El modelo que está siguiendo el equipo de la Escuela Universitaria de Londres es el del gran computador que encontramos en la naturaleza: el [**cerebro**](http://alt1040.com/tag/cerebro). La base de este trabajo de investigación es modelar el proceso natural que siguen las neuronas para establecer conexiones y activarse; un proceso que, a nivel macroscópico, también vemos en el comportamiento de los enjambres de insectos que funcionan, prácticamente, como si fuesen una unidad.

Según comentaba Peter Bentley, uno de los responsables del proyecto, la gran diferencia entre una computadora y un ser vivo es cómo se ejecutan los procesos. Las computadoras trabajan de manera secuencial, es decir, ejecutan una instrucción tras otra (y aumentan este ratio con la computación en paralelo); sin embargo, en la naturaleza el funcionamiento es descentralizado y sigue una distribución aleatoria con tolerancia a fallos y capacidad de adaptación a los cambios.

### ¿Cómo adaptar un computador a los cambios?
El computador en el que trabajan mantiene una memoria que contiene datos e instrucciones sensibles al contexto en el que se encuentra, es decir, tiene instrucciones con lo que debe hacer si la temperatura aumenta o si baja demasiado, por citar un ejemplo. Cada uno de estos contextos se ejecuta en paralelo y, en vez de seguir un contador de programa secuencial (como se haría en un computador), la ejecución de estos contextos está sujeta a un proceso pseudoaleatorio que imita la aleatoriedad de la naturaleza.

Como fruto de este proceso, en cada momento, se evaluarán una serie de condiciones de contorno dentro de una combinación que servirá para obtener una acción como suma de todas estas "acciones en paralelo". Si en cada uno de estos sistemas almacenamos la misma copia de código, nos encontramos con un sistema ultra-redundado en el que la activación de las condiciones de contorno servirá para ejecutar el programa original, aunque se haya dañado alguna parte del sistema.

Precisamente, este el punto en el que se encuentra esta investigación puesto que pretenden que el sistema sea capaz de reescribir el código a ejecutar en respuesta a los cambios del entorno, usando para ello un aprendizaje previo que lo vuelva inmune a fallos si, por ejemplo, una zona de la memoria está dañada (lo cual, en un computador convencional, nos provocaría un error, por ejemplo, un *kernel panic*).

Una investigación, sin duda alguna, fascinante.

Participa en la conversación

24 Comentarios

Deja tu comentario

  1. «que un avión no tripulado que ha sido dañado en combate sea capaz de reprogramar sus sistemas…»

    Perdón por la expresión, pero los drones y la guerra me tienen las bolas llenas.

    1. No es por defender los conflictos bélicos, pero sin la investigación militar no habría Internet, satélites ni computadores personales, mucho menos tablets o smartphones

      1. si el dinero que se dedica a a investigacion militar se dedicara a la investigacion y desarrollo (R&D) seguiriams teniendo internet , todas las cosas que mencionas e incluso mas

      2. AAA, si el dinero que se usa en investigacion militar se usara en otra cosa no daria el mismo resultado por que falta la «necesidad». La industria militar crea esa necesidad. No tendriamos nada.

      3. entiendo tu punto Roberto pero creo que la necesidad la generan los comerciales y la publicidad, si no preguntale a cualquier iphonero o mac-ero por aqui

  2. interesante, he colgado windows, unix, linux, y hasta ahora solo android me aguanta. Recuerdo mis clases de SO y los diversos algoritmos para evitar cuelgues, pero es mas facil decir que hacer.

    1. Android tiene kernel Linux adaptado a dispositivos moviles y como cualquier distribucion basado en este va a tener los mismos efectos.

  3. debo decir que un mega virus metamorfico con kernel monolitico suena tan genial que creo que soñare con el. jajajajaja

    1. «kernel panic» es general e incluso hace referencia mas a un fallo grave en sistemas Unix que en Windows. No veo el motivo de dicha correccion.

      1. No leiste bien, dije que la gente «entenderia» mas «pantallazo azul» que es ampliamente conocido por windouseros que «kernel panic»

      2. si no preguntale a cualquier wuindosero que es un pantallazo azul y te lo podran explicar, y preguntales que es un kernel o kernel panic y no sabran de que les hablas, ¿capichi?

  4. un sistema q se reprograma en tiempo real para responder a determinadas situaciones suena mucho a un virus con caracteristicas metamorficas, es muy interesante llevarlo a tal magnitud (un SO completo)

    1. Venia a decir lo mismo =D Ahora en serio, sería un desafío bastante grande que un ordenador se autoreprograme algo que rozaría la inteligencia artificial. supongo que el mayor de los problemas es que al reprogramarse siga cumpliendo la misma función y no altere su programa. (algo parecido a la pelicula Stealth, la amenaza invisible)

    2. Como mínimo, este sistema debería ser capaz de parchar el código binario de la aplicación que causa errores fatales. Algo que dudo mucho que sea bien visto por los fabricantes tradicionales de aplicaciones.