El efecto 2038, el caos que está por llegar

Cuando hablamos de fechas futuras como es el año 2038, parece que lo que planteamos es ciencia-ficción, sin embargo todo llegará, y debemos estar preparados para el llamado “efecto 2038”.

Los que somos más mayores, conocemos el famoso efecto 2000 (Y2K) que auguraba grandes catástrofes debido a los problemas que se plantearían en los ordenadores en el cambio de siglo al trabajar solo con 2 dígitos en las fechas para los años.

Relojes inteligentes

¡ Ahora desde 9 € !

Pasaron tan terribles fechas y todo siguió funcionando correctamente (gracias a Dios).

Pues bien, haciendo cuentas vemos que para 2038 vamos a tener un problema más gordo si cabe. (esperemos eso sí con las mismas consecuencias que el efecto 2000)

El problema es el siguiente. Según la norma IEEE 1003 muchísimos ordenadores, bases de datos, sistemas de control, etc. almacenan las fechas siguiendo el criterio de tomar como inicio de los tiempos el 1 de enero de 1970 y guardar los segundos transcurridos desde ese momento hasta la actualidad.

Bien por poner un ejemplo en los sistemas de 32 bits, el valor mayor que puede almacenar es un número de 31 bits (más un bit para el signo).

Haciendo unos simples cálculos vemos que en binario con 31 bits el número mas grande que podemos representar es el 2147482648 y siguiendo la norma de el modelo de fecha citado si al 1 de enero de 1970 le sumamos esos segundos podemos llegar como máximo al 19 de enero de 2038 a las 03:14:07. A partir de ahí el contador no funciona, ya que se haría negativo y por tanto reflejaría la fecha de 13 de diciembre de 1901.

Lo bueno de esto es que aún falta mucho para esa fecha, pero sin duda llegará. Para esa fecha lo normal es que todos los sistemas (o al menos la mayoría), trabajen con 64 bits o sabe Dios a donde evolucionaremos, con lo que ese problema no debería producirse, pero al día de hoy es aún una posibilidad.

Así pues solo el tiempo nos dirá si tenemos que  sufrir o no el “efecto 2038”.

Cloud_Computing Fundamentos_C_plus Fundamentos_C_sharp Fundamentos_javascript

Deja un comentario.

Tu dirección de correo no será publicada.


*