Microsoft crea un “terminador” de aplicaciones para acabar con “The Halting Problem”

24 Ago 2006 en Aplicaciones

Cuando una aplicación o dispositivo se cuelga en una computadora, esa aplicación o driver no quedan congelados. Siguen trabajando pero en lo que conocemos como loop o ejecución repetida de instrucciones sin un punto de salida al siguiente paso lógico.
Microsoft ha ideado una solución basada en una estructura matemática con capacidad de examinar el código de los programas colgados o lockups.
Este programa de Microsoft Research se llama Terminator, proyecto para verificación de software. Este software examina el código de las aplicaciones en uso y aplica principios matemáticos para detectar todos los loops y asegurarse de que no haya cuelgues.
Entre los ejemplos de problemas a solucionar están los de un driver de cualquier dispositivo que continuamente trata de reiniciar una pieza de hardware que no responde sin un tiempo predeterminado de intento o el de una aplicación que intenta conectarse a una red a la que no existe conexión activa. En ambos casos no saben cuándo cesar en sus intentos.
El investigador de Microsoft, Byron Cook, nos explica que “un browser como IE o Firefox puede bloquearse y uno no sabe si ha dejado de funcionar. Es imposible saberlo. No sabemos si la aplicación está trabajando o se colgó y la mayoría de la gente fuerza a la terminación de esa aplicación.” Esto se conoce como The Halting Problem, identificado por el pionero de la computación Alan Turing, quien probó que es imposible crear una forma de garantizar que todas las aplicaciones completen su propósito en todos los casos. “Lo que a uno le gustaría es tener la seguridad de que un loop no va a dejar colgada la aplicación,” nos dice Cook.
Cook diseñó una solución matemática que aplica una prueba lógica a  las aplicaciones para verificar si retornarán el control al usuario ante un loop. Terminator está acompañado por otro programa, SLAM, diseñado especialmente para drivers de hardware.
El programador deja corriendo estas aplicaciones, por ejemplo durante la noche, y sus resultados prueban matemáticamente que los loops no van a terminar en cuelque, o bien muestran cómo puede quedar atrancado, como puede ser mediante la creación de condiciones que nunca alcanzará (olvido de agregar contadores, o agregar un incremente a ese contador.)
Cook no aclaró cuándo estará esta tecnología en herramientas de desarrollo como Visual Studio u otras de Microsoft. Microsoft utiliza a Terminator y a SLAM en su prueba de la próxima versión de Windows Vista y eso está resultando, según Cook, en drivers de mejor calidad. Muchos lockups de Windows se originan en software de terceras partes y los drivers son uno de los principales culpables. La utilización de Terminator podría entonces mejorar sustancialmente la estabilidad y performance de Windows.