Biblioteca Virtual

REGRESAR

El problema del año 2000 (Y2K)

Por:  Lic.  Salvador de Paz Martínez

Seguramente usted ya habrá oído, leído o comentado a cerca de este fenómeno que desde hace un buen tiempo ha dado de que hablar, así también algunas interrogantes sobre las consecuencias que trae consigo. Y es que el problema realmente es muy serio si nos referimos a la economía global ya que todas las empresas, desde las pequeñas hasta las grandes corporaciones han tenido que dedicar una buena parte de sus economías en prepararse para la llegada del próximo año. Caso contrario muchas se verán afectadas en menor o mayor grado de lefectos surgidos producto de los resultados en muchos sistemas electrónicos que utilicen tecnologías basadas en microprocesadores digitales y que tienen que ver con el manejo de fechas para su correcta funcionalidad.
 

¿Que es Y2K?

Para usted, amigo o amiga que por alguna razón se ha interesado con este tema, y que no había profundizado mucho permítame comenzar a partir de estas líneas definiendo el significado de estas tres letras que resumen lo que a continuación he recopilado. En verdad, Y2K son abreviaciones que así como se definió el término "bit" (Binay Dígit, de donde se toma la b y la it para representar la mínima cantidad de información que un computador puede representar), también artísticamente estas letras se pueden explicar así:

Y significa "year", 2 (número decimal) y K que significa un multiplicador por 1000, de esta forma obtenemos la frase "Year 2 000", ¿bueno verdad?.

¿Cómo se inició el fenómeno?

Para entender mejor esto, hagamos un poco de historia: los años transcurridos desde 1951 a 1958, se ha conocido como de la "primera generación de Computadoras", las cuales utilizaban tubos al vacío, que normalmente ocupaban grandes espacios para su instalación, demandando enormes cantidades de energía eléctrica para su funcionamiento. Estas máquinas eran operadas a través de cartulinas con marcas especiales a las que perforaban y que por tal se llegaron a conocer como "tarjetas peforadas", también se conocían como "tarjetas hollerith" o "punch card", bueno, luego almacenaban la información en unos tambores cilíndricos que a su vez giraban rápidamente, y sobre éste había un dispositivo que colocaba unas "marcas" magnéticas.

Obviamente al hacer mención de lo anterior, nos refiriendo a características desarrolladas por la compañía IBM (International Business Machines) que en años anteriores ya había desarrollado algunos modelos utilizando el método de tarjetas perforadas, dicho diseño tomó gran popularidad en el año 1953 con el modelo IBM 701, y luego éste fué superado por el modelo IBM 650 en el año 1954. Dichas tarjetas estaban conformadas por líneas de núemros a las que perforaban de determinadas posiciones y que contenían información con la cual las computadoras deberían trabajar, capacidad: 80 o 90 columnas para información, esto bligaba

a ser uso óptimo de los diferentes formatos y recursos disponibles para ese entonces. Posteriormente vendría una serie cambios y mejoras en estos equipos hasta la llegada de la segunda generación de computadoras, que se definió con el desarrollo del transistor durante los años de 1959-1964 lo cual provocó un rápido y creciente desarrollo en esta área, juntos las mejoras en el "hardware", también mejoró los programas de computación.

El COBOL (Common Business-Oriented Lenguage) desarrollado por el oficial de marina, Grace Murray Hoper (1952), ya era de disponibilidad comercial. Por consiguiente, ya se había definido una sintaxis cuando se trataba de almacenar datos concernientes a fechas y horas, para el caso, se utilizó el formato "yymmdd" que utilizaba seis espacios para almacenar las últimas dos cifras del año, dos para el mes y otras dos para el día. He aquí el inicio del problema!

Pero…eran los años 60s!!!!….. nadie se preocupó del problema al que conllevaría dicha limitación, total, la tecnología era mejorada cada día y seguramente alguien se encargaría de superarlo. Así llegó la tercera generación (1964 – 1971) que estubo marcada por el desarrollo de los circuitos intergados, mejora que dió lugar a la compatibilidad con mayores equipos, multiprogramación (capacidad de trabajar con más de una aplicación o tarea simultáneamente), y se desarrollaron los diseños basados en minicomputadoras, pero, el formato de la fecha siempre continuó.
 

La cuarta generación, desde 1971 a la fecha, en la que se desarrolló el microprocesador, los chips de memoria y la microminiaturización que permitieron la fabricación de las microcomputadoras y con estas las computadoras personales que hasta la fecha han sido las de mas utilización para las empresas hasta el hogar, gracias a las mejoras de los procesadores utilizados por la compañía intel que desde sus incios se fabricaban con la familia 8080 (que por cierto, en estos modelos era necesario poner la fecha y hora mnualmente) y que para nuestros propósitos de dar a conocer de la problemática se toma como ejemplo.
 

Las computadoras personales, y muchos otros diseños llevan internamente un circuito intergado de memoria de solo lectura conocido como ROM, el cual contiene un programa que detalla paso a paso los procedimientos iniciales que el microprocesador ejecuta uno a uno hasta hacerlo disponible a nosotros los usuarios, y que nos permite instalarle un programa llamado sistema operativo con el cual interactuamos a través de comandos o selecciones con un mouse (sistemas operativos en ambiente gráfico). Dicha unidad ROM es una memoria que además se encarga de "leer" desde un circuito llamado "reloj de tiempo real" (conocido también como reloj de tiempo real o RTC (real time clock)) para disponer de forma actual el estado de del tiempo así como de la fecha. Estos datos se disponen para que a su vez, el sistema operativo tome dicha lectura la cual estará disponible para nosotros a través de un artificio conocido como reloj virtual, que se encargará de continuar con el cálculo de la fecha.
 

Pues bien, como dicho ROM ( mejor conocido como BIOS abreviado del término Basic Input-Output System) tiene reservado el mismo formato del que hablamos arriba, conlleva a limitar el almacenamiento o manejo de fechas que sobrepasan la cuenta arriba del número 1999, para lo cual, mcuhos de esos microprocesadores limitan la cuenta al pasar de dicha cifra, volviéndo a 00, lo cual a su vez provoca un regreso al año 1900 que como consecuencia impide el càlculo correcto del año 2000 que es lo deseable.

 
Los formatos de fecha manejados desde el RTC y el sistema operativo son representados de forma diferente, en el RTC la fecha se representa en formato de dos dígitos para año/mes/día, y en el sistema operativo, como DOS, la fecha es mantenida como días a partir de 1980/01/01 , el cual se convierte a cuatro dígitos en el formato año/mes/día cuando un programa consulta a éste. Cuando DOS arranca, normalmente inicia su fecha actual leyendo la fecha existente en el RTC y convirtiendo éste a los días a partir de 1980/01/01. DOS mantiene la fecha mientras el sistema esté funcionando, mientras que el RTC lo hace aún cuando el equipo no esté encendido, pero éste no mantiene el dato correspondiente al milenio. En el RTC el año que precede al 99 es el 00, y el del milenio se mantiene sin cambios, así el año comienza desde 1900; en DOS, el año 1999 cambiará a 2000.
 

Conforme a la situación en aquellos primeros momentos, se emplean sólo 8 bits para el almacenamiento empaquetado de la fecha, lo que permite únicamente guardar los dos últimos dígitos. El registro de las otras dos cifras correspondientes a la centuria se hizo en la memoria no volátil (CMOS), concretamente en la dirección 32h, de forma estática; es decir siendo en principio de forma permanente "19".

De esta forma la fecha sería siempre "19AA", independientemente de cual fuese el valor "AA" proporcionado por el RTC.

La nueva arquitectura PS/2 siguió el mismo criterio, pero cambio la localización de los dos dígitos correspondientes a la centuria a la dirección 37h, con lo que la forma de obtener la fecha completa es prácticamente la misma.

En los siguientes apartados se denominará en general a este conjunto simplemente RTC, cuando no existan dudas de interpretación.

Este es el problema que plantea el hardware en relación con el año 2000.

El Sistema Básico de Entrada/Salida (BIOS)

Conocido normalmente por sus siglas en inglés: BIOS (Basic Input/Output System), es el programa, residente normalmente en la memoria ROM, que controla las interacciones básicas entre los diferentes elementos del hardware y el software.

Al encender el ordenador personal se empieza a ejecutar el BIOS y una de las acciones que lleva a cabo es el registro de la fecha del sistema, obteniéndola a través de la información contenida en la memoria CMOS y la proporcionada por el RTC.

El comportamiento concreto de un BIOS puede variar según su fabricante y versión, pudiendo ocurrir que:
Sea capaz de cambiar correctamente de fecha si el ordenador está encendido justo en la transición del año 1999 al 2000, pero que no lo haga en posteriores puestas en marcha.
No sea capaz de proporcionar la fecha correcta en el paso de 1999 al 2000, pero que en cambio dé una fecha adecuada si se pone en marcha el equipo en cualquier otro momento ulterior.

Mantenga una fecha correcta en cualquier circunstancia.

Además de tener una fecha correcta sea capaz de actualizar directamente la memoria no volátil CMOS, bien automáticamente en tiempo real o al menos en la primera vez que se vuelva a encender el equipo después de 1999 y antes del 2079, bien mediante intervención manual.

El motivo de considerar el año 2079 como límite es la forma en que manejan el año los API del MS-DOS. Concretamente lo hacen en forma relativa tomando como base el año 1980; es decir, por ejemplo, el año 1985 sería el año 5 y para su correcta identificación y expresión habría que sumarle 1980.

En consecuencia, esta fecha límite de 1980 es la que se puede emplear en un sencillo algoritmo, que incorporado al BIOS dentro de la función "Leer la fecha del RTC", permitirá la citada actualización automática.

En cuanto a la actualización por el BIOS de los dos dígitos de centuria en la memoria no volátil, no es realmente el método mejor, ya que requiere que se ejecute el BIOS para que tenga efecto, supuesto naturalmente que además el BIOS soporta la correspondiente función. Sin embargo la solución teóricamente más correcta de construir un RTC que fuese capaz de efectuar dicha actualización directamente, manteniendo por razones de compatibilidad el byte de centuria en las posiciones 32h o 37h, dependiendo de la arquitectura que se empleara en el equipo, resulta más cara y parece por ello haber sido desechada normalmente por la industria.

Observaciones muy similares pueden hacerse en relación con la consideración del año 2000 como bisiesto.

Estos son, por tanto, dos de los problemas que plantea una parte del software básico (firmware) en relación con el año 2000.

El Sistema Operativo (OS)

Puede definirse como el programa de control del ordenador que planifica y ordena las tareas a ejecutar, gestiona los almacenamientos y maneja las comunicaciones con los componentes periféricos. Su componente principal, denominado el "núcleo" (kernel), permanece activo permanentemente. El Sistema Operativo, o en inglés OS (Operating System), presenta una interfaz básica de usuario, que aparece al menos cuando no hay ninguna aplicación ejecutándose, y con él deben ser capaces de "comunicarse" las aplicaciones para que puedan funcionar.

Los Sistemas Operativos tienen su propio "reloj" de fecha y hora, que inicializan partiendo del BIOS o de los datos del RTC y la memoria no volátil CMOS.

De forma similar a la comentada anteriormente en relación con el BIOS, en algunas versiones modernas, o mediante actualizaciones de las antiguas, diversos Sistemas Operativos son capaces de manejar correctamente su fecha, así como de eventualmente trasladar esos valores correctos a la memoria no volátil CMOS y, en último extremo, al BIOS, aún recibiendo inicialmente unos valores erróneos del BIOS o la citada memoria no volátil CMOS.

De no ser así, este sería otro problema que plantearía el software básico.

Esquema gráfico

El siguiente diagrama muestra de forma genérica el comportamiento descrito de los tres "relojes" que coexisten normalmente en un ordenador personal.

Es conveniente reiterar que no todos los BIOS son capaces de actualizar directamente y en todos los casos los dos dígitos de la centuria en la memoria no volátil y que lo mismo sucede con los Sistemas Operativos, por lo que este esquema representa un caso particular con un funcionamiento en principio correcto, pero permite ilustrar de forma resumida lo comentado en los tres puntos anteriores.

Las Redes de Área Local (LAN)

La existencia, hoy en día habitual, de LAN (Local Area Network) puede complicar aún más el problema, ya que la actualización de la fecha en los Puestos de la red es posible se realice directamente desde el Servidor de la misma, con lo que una perfecta adecuación del ordenador personal de un puesto resulta inútil, salvo que eventualmente trabaje de forma aislada, si no lo está también el correspondiente Servidor, al que son aplicables las consideraciones hechas en puntos anteriores. En sentido inverso, si no se adecua el ordenador personal del puesto de trabajo, confiando en que el proceso de conexión con el Servidor proporcionará una fecha correcta, y en algún momento del año 2000 o posteriores el ordenador personal se arranca sin conexión a la red, casi con seguridad al menos la fecha del RTC será errónea.
 

A lo largo de los últimos 30 años, los sistemas informáticos se han convertido en un elemento indispensable para el funcionamiento de la sociedad moderna. Por su capacidad de almacenar grandes cantidades de datos y trabajar a alta velocidad, los sistemas informáticos se han convertido rápidamente en herramientas indispensables para el mundo industrializado. Casi todas las empresas utilizan los sistemas informáticos como su herramienta habitual para la contabilidad, soporte de ventas, registros de personal, fabricación y distribución de productos. Las entidades financieras y las organizaciones del sector servicios los utilizan para todas sus transacciones. Las Administraciones Públicas los utilizan como soporte a todas sus actividades y en las relaciones con los ciudadanos: prestaciones sociales, sistema de salud, gestión fiscal, etc.

Existen tres causas por las cuales los sistemas automatizados pueden fallar o realizar tratamientos erróneos:

Empleo de formatos de fecha para el año con sólo dos posiciones.

Diseño y funcionamiento de los relojes y sistemas internos.

Consideración equivocada del año 2000 como no bisiesto.

El problema del año 2000 no sólo afecta a los sistemas informáticos sino también a muchos servicios básicos como por ejemplo el control de tráfico aéreo, las centralitas telefónicas, equipamiento médico, el control de stocks, o la red de distribución de la electricidad ya que todos ellos utilizan ordenadores o incorporan microprocesadores para su funcionamiento.

En 1996 el número de sistemas empotrados en el mundo superaba los 7.000 millones. Cualquiera de ellos podría verse afectado por el Efecto 2000. Según algunas estadísticas sobre el problema del año 2000, el 5% de los sistemas empotrados simples una vez probados fallan. En sistemas empotrados más sofisticados, la media de fallos está entre el 50 y el 80%. En entornos productivos, el porcentaje está en torno al 15%. (Información suministrada por el Gobierno del Reino Unido de su campaña "Millennium Bug").
 

¿Qué son los sistemas empotrados?

Los sistemas empotrados son microprocesadores (chips) o dispositivos electrónicos incorporados en componentes de aparatos o equipos. Todos los ordenadores contienen microprocesadores, pero además se encuentran en equipos utilizados en oficinas, factorías, plantas de proceso, maquinaria, automoción y en los hogares. Con frecuencia estos microprocesadores operan, controlan, protegen o monitorizan procesos vitales para la organización. Si el microprocesador consulta o procesa fechas o tiempos puede verse afectado por el Efecto 2000. Los sistemas empotrados tienen especial importancia en áreas tales como Salud y Seguridad. Algunos aparatos con sistemas empotrados pueden ser: aire acondicionado, vídeos, centralitas telefónicas, alarmas y sistemas de control de tráfico, aparatos biomédicos.

Se pueden agrupar en tres grandes grupos:

No programables: en su fabricación han sido diseñados para realizar una función determinada y no se puede modificar. Ello implica en la mayoría de los casos es necesaria su sustitución para resolver el problema del año 2000.

Programables: su diseño permite variar la función o funciones iniciales para las que fue fabricado, permitiendo su adaptación al año 2000.

Programables sólo en ROM (Read Only Memory): se programan durante el proceso de fabricación mediante técnicas láser y posteriormente no pueden ser reprogramados, por lo que para resolver el problema del año 2000 es preciso sustituirlos.

¿Dónde podemos encontrar sistemas empotrados?

Los sistemas empotrados controlan gran cantidad de procesos que abarcan desde el sector de la producción al de servicios, no escapándose ninguno de ellos a su influencia.

Según los sectores involucrados podemos distinguir los siguientes grupos:

Sistemas biomédicos: desde equipos de diálisis a equipos monitorización fetal y todo tipo de equipos médicos y hospitalarios hasta equipos de fabricación de productos médicos y equipos de laboratorio.

Los sistemas de telecomunicación habitualmente usan microprocesadores para controlar el tiempo y las fechas, por ejemplo: GPS (Global Positioning System), centralitas telefónicas, faxes, correo electrónico o videoconferencia, entre otros.

Las infraestructuras críticas, energía, agua, transportes también pueden verse afectadas por el Efecto 2000 ya que los aparatos que controlan su funcionamiento contienen microprocesadores. Se debe prestar especial atención a procesos básicos como los suministros energéticos (petróleo, carbón, gas), transportes (aviación, ferrocarriles) y agua.

En los Edificios también podemos encontrar sistemas empotrados en electricidad, sistemas de climatización, sistemas de seguridad, y sistemas de control de acceso.

Los servicios municipales tampoco se escapan de la influencia de los sistemas empotrados en los sistemas de alumbrado, depuración de aguas, riego o control de tráfico.

¿Cómo funcionan los sistemas empotrados?

En cuanto a su funcionamiento, los sistemas empotrados más simples son capaces de realizar una única función y los más complejos, requieren de programas de aplicación cuyo objetivo final es la realización de un juego de funciones muy variado.

Los sistemas empotrados presentan una problemática diferente del resto de los sistemas, dado que son inseparables del software y del hardware en el que están funcionando, y en algunos casos de difícil detección, por lo que es complicado determinar o solucionar sus problemas. Cuando los usuarios de Tecnologías de la Información tienen problemas de hardware o software, son capaces de encontrar solución por sus propios medios o de acudir e informar del asunto al suministrador, pero éste no suele ser es el caso de los microprocesadores y dispositivos que contienen sistemas empotrados, el usuario final desconoce en muchos casos incluso su existencia y en el supuesto de que los conozca no es capaz de buscar una solución.

 

De este tema hay mucho material donde usted puede ampliar más sus conocimientos, le invito a que visite la lista de los lugares mencionados a continuación allí encontrará mayor información que van desde la descripción de las versiones de programas, utilidades para verificar si su computador supera este problema así como la implementación de planes de contingencia que le ayudarán en su hogar o su empresa.

 
Esta información ha sido publicada sólo para propósitos educativos a los visitantes de este sitio.
 

Otros enlaces de interés:

ww.nstl.com
www.intel.com
www.microsoft.com
www.ibm.com/ibm/history/story

REGRESAR