La Frase de la Semana

Atrévete a saber

jueves, 11 de agosto de 2016

El Problema del Año 2038

De verdad no sé mucho de lenguajes de programación, pero por lo poco que sé de parámetros o normas que deben seguirse a la hora de programar, no es difícil entender el llamado problema del año 2038.
Un programa no es más que una secuencia de acciones, él no piensa, el simplemente hace lo que le dijeron que hiciera y para que se ejecuten esas secuencias el programador usa parámetros, asigna valores a variables o establece condiciones dependiendo de cómo sean esas variables. Por ejemplo, se puede saltar una línea del código, hacer o no hacer una operación dependiendo de algún resultado obtenido.
¿Qué tiene que ver esto con el problema del año 2038?
Okey, un computador o cualquier cerebro electrónico (como los que tienen los celulares inteligentes) tienen un programita que indica el tiempo. Es un contador y para que ese contador exista el programador debe haber establecido un instante de partida. Ese instante, en la mayoría de los computadores fue el 1 de enero de 1970 a las 12 de la noche. Aquí vienen elementos técnicos que no domino bien y no explicaré mucho, pero este contador cuenta (valga la redundancia) en segundos y usa un sistema de 32 bits con signo, es decir, se maneja en un rango que va desde -2.147.483.647 hasta -2.147.483.647 segundos. Con lo que, cuando se cumplan esos dos mil ciento cuarenta y siete millones cuatrocientos ochenta y tres mil seiscientos cuarenta y siete segundos los sistemas basados en este contador tendrán una falla masiva a nivel mundial. Puede pasar que el contador regrese a -2 mil millones y entonces interprete que estamos en el 1º de enero de 1901 o simplemente entre en un bucle que impida el funcionamiento del aparato.
Pues bien, del 1 de enero de 1970 al 19 de enero de 2038 hay 2.147.483.647 segundos, por lo que el caos podría ocurrir ese día, a las 3 de la madrugada con 14 minutos y siete segundos (3:14:07)… (Y vemos que el número pi o sus aproximaciones se las ingenian para aparecer siempre).
No se vislumbra aún una solución para este problema. La solución definitiva sería migrar a 64 bits, pero esto aún está en proceso. Con 64 bits el contador llegaría a casi 3 billones de años, tiempo más que suficiente para que el ser humano sea una forma de energía pura, habitando todo el Universo, y que no necesitará computadoras o quizás, lo más probable, para ese entonces, ya de nosotros no quede ni el polvo.
Aún falta bastante para que los medios comiencen a hablar del problema del año 2038. La generación nacida después del año 2000, serán los que intenten resolverlo…
De seguro no pasará nada, al igual que con el problema del año 2000.
Ah, lo olvidaba, la escogencia de la cantidad 2.147.483.647 no fue fortuita. Él es igual a 2 elevado a la 31 menos 1. Este es un número primo, determinado por Euler en 1772. Tuvo que hacer casi 400 divisiones para saber que ese número sólo es divisible por uno y por él mismo. Ahora no sé si el parámetro fue escogido por eso o fue simple casualidad.

No hay comentarios: