viernes, 13 de marzo de 2009

¿ALGUIEN RECUERDA EL Y2K?


Problema del año 2000


El problema del año 2000, conocido como efecto 2000, error del milenio, problema informático del año 2000 (PIA2000) o Y2K, es un bug o error de software causado por la costumbre que habían adoptado los programadores de omitir el año para el almacenamiento de fechas (generalmente para economizar memoria), asumiendo que el software sólo funcionaría durante los años cuyos nombres comenzaran con 19. Lo anterior tendría como consecuencia que después del 31 de diciembre de 1999, sería el 1 de enero de 1900 en vez de 1 de enero de 2000.

Potenciales efectos que este bug causaría:

Los programas que cuentan el número de años a través de la sustracción de las fechas, obtendrían una cantidad de años negativa. Por ejemplo, si una persona nació en 1977, la edad de esta persona en 2000 sería: 00-77 = -77 años.

El problema del año 19100, común en programas que cuentan el año utilizando los dos últimos dígitos y muestran los dos primeros dígitos del año como 19. Al intentar mostrar el año después del 1999, el programa muestra 19 y luego el número que sigue el 99, o sea: 19100.

Al acercarse el año 2000, surgieron muchos rumores de casos y catástrofes económicas en el mundo entero, un pavor generalizado a un eventual colapso de los sistemas basados en computadoras por causa de este problema. La corrección del problema costó miles de millones de dólares en el mundo entero, sin contar otros costes relacionados.

Existen otros problemas similares, relacionados con la representación de fechas:

En UNIX, la fecha es representada por un número entero de 32 bits con signo, que puede contar de -231 a 231-1. Este número es la cantidad de segundos desde 1 de enero de 1970. Así, el año 2038 será el último año representable por este sistema. Véase: problema del año 2038.

En sistemas más anticuados, como por ejemplo Windows en sus versiones 1.x, 2.x y 3.x, el problema radicaba en la omisión de dichos dígitos. En este caso, el problema era un poco más complejo, ya que al cumplirse el primer segundo del año 2000, sería el 01/04/1980 (es decir, el año en que se creó el MS-DOS, sistema operativo de estos entornos).
Por su parte, Apple,Inc., en 1998, había afirmado por medio de sus portavoces que sus unidades existentes, desde la clásica Apple I hasta la vigente por aquel entonces, iMac, no representaban ningún peligro, ya que sus sistemas operativos (Finder y Multifinder) representaban como último año el 2029, aunque existía la posibilidad de configurarlo.


El 1 de enero 2000

Cuando llegó el 1 de enero del 2000 los problemas eran mirados generalmente como de menor importancia. Éstos no tuvieron siempre que ocurrir exactamente a la medianoche. Algunos programas no estaban activos en ese momento y demostrarían ese error solo cuando fueran abiertos. No todos los problemas registrados estuvieron relacionados directamente a Y2K como causa; las interferencias de menor importancia en la tecnología ocurren normalmente, como cualquier persona que haya tenido que reiniciar un ordenador personal reconocerá.

Los problemas divulgados son:

En Ishikawa, Japón, un equipo de supervisión de radiación falló a medianoche, pero los funcionarios dijeron que no había ningún riesgo para el público.

En Onagawa, Japón, una alarma sonó en una planta de energía atómica dos minutos después de la medianoche.

En Japón, dos minutos después de la medianoche, Osaka Media Port, una compañía de telecomunicaciones, encontró errores en el manejo de las fechas en parte de la red de la compañía. El problema fue arreglado a las 2:43 a.m. y no se interrumpió ningún servicio.

En Japón, la red de comunicaciones móvil de NTT (NTT DoCoMo), el operador celular más grande de Japón, divulgó el 1 de enero de 2000, que algunos modelos de teléfonos móviles suprimían los nuevos mensajes recibidos, en lugar de los viejos, cuando se llenaba la memoria.

En Australia, las máquinas validadoras de billetes de autobús de dos estados no pudieron funcionar.

En Estados Unidos, 150 máquinas tragamonedas en las pistas de carreras en Delaware dejaron de funcionar.

En Estados Unidos, el observatorio naval, donde funciona el reloj principal que marca el tiempo oficial del país, tuvo una interferencia de Y2K en su sitio Web. Debido a un problema de programación, el sitio divulgó que la fecha era el 1 Enero de “19100”.

En Francia, el servicio nacional de meteorología, Meteo Francia, dijo que un error de Y2K había hecho que su página web mostrara un mapa con el parte meteorológico del sábado con fecha “01/01/19100”.

En el Reino Unido, algunas transacciones de tarjetas de crédito fueron rechazadas o fallaron en conjunto mientras que trabajaron recíprocamente ciertos sistemas.

En Italia, Telecom Italia envió los primeros dos meses de cuentas, con fecha de enero de 1900.

En Pennsylvania, Estados Unidos, una computadora de la biblioteca de una escuela primaria cobró al cuerpo estudiantil excesivamente por tener prestados los libros durante 100 años.

En algunas webs de empresas de transporte, algunos paquetes figuraban que habian tardado 17.101 años (19.100 menos 1.999) más algun día, y éstos días son los que realmente se tardo en entregar.

En España, se detectaron problemas menores en dos centrales nucleares, en alguna gasolinera y en el sistema de recogida de datos de tráfico.

En muchos sitios Web del mundo, donde empleaba hora y fecha; la hora la interpretaba incorrectamente y la fecha con 1 enero 1900 o 19100. En caso de la hora, si eran las 2 de la mañana, el reloj estaba interpretado así: 92:60:14 haciendo alusión a los segundos.



Problema del año 2038


En informática, el problema del año 2038 podría causar que una parte del software fallara en ese año. El problema afecta a los programas que usen la representación del tiempo basada en el sistema POSIX, que se basa en contar el número de segundos transcurridos desde el 1 de enero de 1970 a las 00:00:00 (ignorando los segundos intercalares).

Esta representación es un estándar de facto en los sistemas tipo Unix y también en los programas escritos para muchos otros sistemas operativos debido al gran alcance del lenguaje de programación C. En la mayoría de sistemas de 32 bits, el tipo de dato time_t usado para guardar el contador de segundos es un entero de 32 bits con signo, es decir, que puede representar un rango de números entre -2.147.483.648 y 2.147.483.647 (-231 y 231-1; 1 bit para el signo, y 31 para el valor absoluto), por lo que el último segundo representable con este formato será a las 03:14:07 UTC del 19 de enero de 2038, cuando el contador llegue a 2147483647. Un segundo después, el contador se desbordará, y saltará al valor -2.147.483.648, que causará el fallo de programas que interpretarán el tiempo como que están en 1901 ó 1970 (dependiendo de la implementación), en vez de 2038. A su vez, esto causaría cálculo y procesamiento incorrecto.

No hay una forma sencilla de arreglar este problema para las combinaciones existentes de CPU/SO. Cambiar la definición de time_t para usar un tipo de 64 bits rompería la compatibilidad binaria para el software, almacenamiento de datos, y, por lo general, cualquier cosa que tenga algo que ver con la representación binaria del tiempo. Cambiar time_t a un entero de 32 bits sin signo afectaría a los programas que hacen cálculos con diferencias de tiempo.

La mayoría de sistemas operativos para arquitecturas de 64 bits utilizan enteros de 64 bits para time_t. La migración a estos sistemas está todavía en proceso y se espera que se complete antes de 2038. Sin embargo, cientos de millones de sistemas de 32 bits son utilizados todavía en 2009, muchos en sistemas integrados, y no es posible asegurar que todos ellos habrán sido reemplazados antes de 2038.

Usar un entero de 64 bits retrasaría la fecha del problema unos 290 mil millones de años.

No hay comentarios.: