3. el número increíblemente simple que hace colapsar las computadoras

7
Página 1 de 7 El número increíblemente simple que hace colapsar las computadoras Por Chris Baraniuk - BBC El martes 4 de junio de 1996 se recordará por siempre como un día oscuro para la Agencia Espacial Europea (AEA). El primer vuelo no tripulado del cohete Ariane 5, cargado con cuatro costosos satélites científicos, se convirtió en una bola de fuego y humo 39 segundos después de empezar. Se estima que la explosión significó una pérdida de US$370 millones. ¿Qué pasó? No hubo falla mecánica ni acto de sabotaje. No: el lanzamiento terminó en desastre gracias a un simple error de software. Una computadora superada por la matemática: esencialmente, porque se vio abrumada por un número más grande de lo que se esperaba. ¿Cómo es posible que una computadora quedara aturdida por números? Pues resulta que tales errores son responsables de una serie de desastres y percances en años recientes, que han terminado en la destrucción de cohetes, el extravío de naves espaciales y el lanzamiento de misiles fuera de objetivo.

Upload: jordy-ruiz

Post on 08-Jul-2016

217 views

Category:

Documents


1 download

DESCRIPTION

el numero increíble que colapse a los computadores y sistemas de software.

TRANSCRIPT

Page 1: 3. El Número Increíblemente Simple Que Hace Colapsar Las Computadoras

Página 1 de 7

El número increíblemente simple que hace

colapsar las computadoras

Por Chris Baraniuk - BBC

El martes 4 de junio de 1996 se recordará por siempre como un día oscuro

para la Agencia Espacial Europea (AEA).

El primer vuelo no tripulado del cohete Ariane 5, cargado con cuatro costosos

satélites científicos, se convirtió en una bola de fuego y humo 39 segundos

después de empezar.

Se estima que la explosión significó una pérdida de US$370 millones.

¿Qué pasó? No hubo falla mecánica ni acto de sabotaje. No: el lanzamiento

terminó en desastre gracias a un simple error de software. Una computadora

superada por la matemática: esencialmente, porque se vio abrumada por un

número más grande de lo que se esperaba.

¿Cómo es posible que una computadora quedara aturdida por números? Pues

resulta que tales errores son responsables de una serie de desastres y percances

en años recientes, que han terminado en la destrucción de cohetes, el extravío

de naves espaciales y el lanzamiento de misiles fuera de objetivo.

Page 2: 3. El Número Increíblemente Simple Que Hace Colapsar Las Computadoras

Página 2 de 7

¿Qué los provoca y cómo ocurren?

Imagínate que tratas de representar el valor de, digamos, 105.350 kilómetros

en un odómetro con un valor máximo de 99.999.

El contador volverá al valor de 00.000 y contará a partir de ahí hasta 5.349, el

saldo restante.

Esta es la misma especie de

inexactitud que condenó al fracaso

el lanzamiento del Ariane en 1996.

Más técnicamente, se le llama

"desbordamiento de entero"

(integer overflow, en inglés).

Significa que los números son

demasiado grandes para el sistema

de almacenamiento, lo que puede

ocasionar el mal funcionamiento.

Lanzamiento fallido

La investigación del incidente del Ariane encontró que un proceso que había

quedado en el software de una generación anterior de cohetes, el Ariane 4,

había capturado una lectura inesperadamente alta de la velocidad lateral del

nuevo y más rápido vehículo.

El Ariane 5 siguió funcionando parcialmente con software de una generación

anterior, que no pudo con la velocidad del modelo más nuevo.

El software del Ariane 5 no pudo manejar esa cifra. Una secuencia de

autodestrucción se inició. Un par de segundos después, el cohete era historia.

Esta clase de problemas surge con una frecuencia sorprendente. Se sospecha

que la razón por la cual la Nasa perdió contacto con la sonda espacial Deep

Impact en 2013 fue que llegó a un límite de enteros.

Hace poco se informó que el Boing 787 puede estar afectado por un problema

similar.

Page 3: 3. El Número Increíblemente Simple Que Hace Colapsar Las Computadoras

Página 3 de 7

La unidad de control que maneja la distribución de energía a los motores de la

nave entran en modo de respaldo automáticamente –y apagan los motores- si

se la deja encendida por más de 248 días.

Hipotéticamente, los motores podrían apagarse de repente incluso en mitad de

un vuelo. Aunque se han dado a conocer muy pocos detalles –la Autoridad

Federal de Aviación (FAA, por sus siglas en inglés) y Boeing declinaron la

oportunidad de dar su opinión para este artículo-, algunos observadores

aficionados han destacado que 248 días (contados en centésimas de segundos)

equivalen al número 2.147.483.647, lo cual es muy significativo.

¿Y por qué? Sucede que 2.147.483.647 es el valor positivo máximo que puede

almacenarse en un procesador de 32 bits, comúnmente instalado en muchos

sistemas de computación.

Límite intrigante

Los números son infinitos, así que ¿por qué escoger un almacenamiento tan

limitado?

La respuesta es que, tradicionalmente, las computadoras han exigido

eficiencia para todo. El espacio que se usaba para almacenar información solía

ser mucho más costoso de lo que es ahora y procesar valores más grandes

tomaba más tiempo.

Las computadoras demandan eficiencia para todo. Pero a veces es difícil

anticipar los problemas a futuro.

Si te mantenías dentro de ciertos límites, el software funcionaba mejor. Los

sistemas de dirección de un cohete hacen muchas cuentas críticas muy rápido,

así que cualquier número de sobra realmente importa.

El problema con eso es que, como demostró el Ariane 5, tales limitaciones no

siempre son percibidas como problemáticas de antemano.

"Tenemos que reconocer que con el software siempre manejamos una realidad

aproximada", explica Bill Scherlis, un experto de la Carnegie Mellon

University. "Siempre hay una negociación entre el costo de lograr una

representación más exacta y el beneficio de la eficiencia".

Page 4: 3. El Número Increíblemente Simple Que Hace Colapsar Las Computadoras

Página 4 de 7

El matemático Douglas Arnold, de la Universidad de Minnesota, incluye el

incidente del Ariane 5 en una página web titulada "Algunos desastres

atribuibles a mala computación numérica".

Arnold también resalta un caso de 1991 en el que un misil Patriot falló en su

intento de interceptar un ataque de misiles Scud iraquíes contra unas barracas

del ejército estadounidense durante la Guerra del Golfo.

Un error de desbordamiento impidió que el sistema de defensa Patriot no

pudiera hacer seguimiento a un misil Scud en un incidente durante la Guerra

del Golfo.

En este caso, un error de desbordamiento causó que el sistema de defensa no

pudiera seguir la trayectoria del misil Scud, que viajaba a una velocidad de

1,7km/s, y en su lugar escaneara el espacio aéreo a más de 500 metros de

distancia del objetivo.

Como resultado, el Scud cayó sobre las barracas, con saldo de 28 soldados

muertos y 98 personas heridas.

Error de Gangnam

No todos los problemas de desbordamiento son tan destructivos como estos

ejemplos, pero con frecuencia crean efectos inesperados.

Por ejemplo, en el videojuego Civilization, un error imprevisto ocasionó que

el pacífico personaje de Gandhi se volviera hostil.

Cuando los jugadores escogían una cierta modalidad de juego, el valor que

definía la agresividad de Gandhi se echaba para atrás hacia el cero, y de ahí

seguía retrocediendo hasta dar el valor máximo.

En consecuencia, Gandhi amenazaba a los jugadores con armas nucleares cada

vez que aparecía, lo que hizo reír a muchos de ellos.

En diciembre, se informó que Gangnam Style, el video más popular de todos

los tiempos en YouTube, había "roto" el contador del sitio web.

Aparentemente, el contador había sido programado para llegar solo hasta

2.147.483.647 (de nuevo, el valor positivo máximo de un procesador de 32

bits).

Page 5: 3. El Número Increíblemente Simple Que Hace Colapsar Las Computadoras

Página 5 de 7

Resultó un buen truco publicitario para YouTube, que actualizó el contador.

El nuevo máximo está muy por arriba de los nueve cuatrillones.

Psy rompió el contador de YouTube, que tuvo que ser actualizado.

Con frecuencia es este tipo de supuesto, que inicialmente se piensa razonable,

lo que causa problemas más adelante.

El desbordamiento más sonado de la historia, que muchos recordarán, fue el

cacareado "error del milenio". Aunque generalmente se lo considera un fiasco,

el Y2K causó algunos dolores de cabeza.

Con el Y2K, el problema era más simple. ¿Qué pasa cuando uno registra los

años sólo con los últimos dos dígitos? 1900 se vuelve lo mismo que 2000.

Mucha gente se dio cuenta de que esto causaría confusión en los sistemas de

computación que almacenaban valores anuales de esta manera. Al final, no

cayeron aviones del cielo, pero hubo algunas consecuencias interesantes.

Por ejemplo, el equipo de detección de radiación de la localidad japonesa de

Ishikawa colapsó a medianoche; 150 máquinas de apuestas de un hipódromo

de Delaware fallaron, y varios sitios web dieron como nueva fecha "1 de enero

de 19100".

Doce años después, en un incidente similar, una mujer sueca de 1905 de

nombre Anna Eriksson recibió una carta que la invitaba a comenzar en el

jardín de infantes porque el software había sido diseñado para contactar a los

individuos nacidos en "07" (2007, no 1907).

La incapacidad para reconocer correctamente el año llevó a que millones de

tarjetas de débito y crédito no pudieran usarse en Alemania el día de Año

Nuevo de 2010.

El año 2038

Hace unos 15 años, al programador William Porquet se le ocurrió pensar por

anticipado en otra fecha crucial: las 3.14.07 de la mañana, GMT, del martes

19 de enero de 2038.

¿Qué sorpresa nos reservan los números para el año 2038?

Page 6: 3. El Número Increíblemente Simple Que Hace Colapsar Las Computadoras

Página 6 de 7

Ese será el momento en que el número de segundos que habrán pasado desde

el 1 de enero de 1970 excederá el valor máximo de muchos registros de fecha

y hora de muchos computadores hoy.

Como en el caso del error del milenio, si no nos preparamos podemos terminar

en colapso.

"Escribí por primera vez sobre el asunto en 1999", comenta Porquet. "Adquirí

el dominio 2038.org, primero como una travesura. Pero luego me di cuenta de

que hay algunos problemas reales".

A Porquet le preocupan partes viejas de software a las que nadie presta ya

atención en redes bien establecidas. Cuántas de ellas seguirán operando en 23

años y qué consecuencias tendrá eso es algo que nadie sabe.

"Muchos sistemas de computación -señala Porquet- podrían fallar en forma

predecible. Pero lo harán de modos impredecibles".

Error en el tiempo

Markus Kuhn, un científico de computación de la Universidad de Cambridge,

explica que los errores relacionados con la fecha crean interés porque sus

consecuencias son impredecibles, pero también porque "no son inesperados",

y la gente puede especular sobre lo que puede pasar cuando el día temido

amanezca.

Kuhn piensa que el problema de 2038 será menos significativo que el Y2K

porque el error del milenio preparó a la industria de la computación para hacer

las correcciones necesarias.

Los expertos esperan que hayamos aprendido las lecciones del Y2K.

De hecho, ese es el plan de William Porquet. "Espero que sea algo que me

saque de un semi retiro por una gran cantidad de dinero", dice medio en serio,

medio en broma.

Para Kuhn, el problema interesante no es el error de desbordamiento en sí,

sino otro que ocurrirá el próximo mes de junio.

El año 2015 será un segundo más largo que 2014 gracias a una medida tomada

para corregir la discrepancia entre el tiempo astronómico (el que se basa en el

Page 7: 3. El Número Increíblemente Simple Que Hace Colapsar Las Computadoras

Página 7 de 7

movimiento de rotación de la Tierra) y el tiempo atómico (el método más

exacto de medición del tiempo).

La última vez que eso pasó fue 2012, y ocasionó el colapso de muchas

computadoras. Afortunadamente, dice Kuhn, esta vez estaremos mejor

preparados.

Parece que, sin importar lo que hagamos, ciertos números y cálculos siempre

van a confundir a las computadoras, causando errores o cosas peores.

"Hemos aprendido mucho de la experiencia del Y2K y otros eventos

similares", dice Scherlis. "Pero en realidad siempre estamos haciendo

aproximaciones y teniendo que hacer negociaciones en el terreno de la

ingeniería. Eso nos acompañará para siempre".