Saltar al contenido
07/05/2011 / Pyrosphere3

El “Efecto 2000″: el problema del milenio (y III)

Llevo tiempo queriendo terminar la serie de entradas sobre el Efecto 2000 (publicaciones anteriores: I y II), de modo que hoy toca darle un final echando un vistazo a los daños causados por este molesto fallo de planificación humano, ya que hasta ahora hemos hablado de las causas pero no de las consecuencias. Y si ahora mismo no te viene a la cabeza ningún incidente producido por el fallo de un ordenador debido al Efecto 2000 es porque, en realidad, no hubo ninguno destacable. Nada de accidentes en cadena, ni interrupción de comunicaciones, ni caos en los medios de tranportes ni crisis mudial como algunos predijeron: los casos fueron más bien anecdóticos.

  • 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óviles de NTT (NTT DoCoMo), el operador de telefonía móvil más grande de Japón, divulgó el 1 de enero de 2000 que algunos modelos detelé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 de 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 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 algunas páginas web de empresas de transporte, algunos paquetes figuraban que habían tardado 17.101 años (19.100 menos 1.999) más algún día, y estos días son los que realmente se tardó en entregar.

Fuente: Wikipedia.

Como véis, ninguna catástrofe ocurrió por culpa del Efecto 2000. Ya sea porque las labores de prevención llevadas a cabo por muchísimos equipos de profesionales en todo el mundo ayudaron a solventar posibles problemas antes de que ocurriesen, o porque todo lo relativo al Y2K fuese exagerado en exceso por los medios de comunicación o el boca a boca, la inmensa mayoría de consecuencias producidas por el mismo se quedaron en poco más que meras molestias que quizás mucha gente ni notase.

Bueno, afortunadamente esto ya pasó, ¿no?

Pues la respuesta correcta es no, esto no ha terminado. Lógicamente, el Efecto 2000 como tal ya es cosa del pasado, pero no será el último problema al que tendremos que hacer frente. Quizás el que más preocupa a medio plazo a los expertos en informática es el que ya ha sido bautizado como el Problema del Año 2038, año en el que la mayoría de equipos actuales experimentarán algo parecido a lo ya ocurrido en el Efecto 2000, aunque debido a unas causas algo diferentes que las que propiciaron este último.

Veamos, internamente los sistemas operativos almacenan y representan la fecha como un número de incrementos sobre una fecha conocida, a la que se le llama la Época (Epoch en inglés). En los sistemas basados o similares a Unix (como es el caso de GNU/Linux o MacOS X, por citar los más conocidos), las fechas se almacenan como un número de 32 bits que representan el total de segundos que han pasado desde el 1 de Enero de 1970 a las 00:00:00 horas del tiempo universal (UTC). Esta fecha de referencia puede variar dependiendo del sistema, por ejemplo, en sistemas basados en Windows NT la Época es el 1 de Enero de 1601. Esto es, por supuesto, una representación interna, y los programas o el mismo sistema operativo realizan las conversiones oportunas para adaptar la fecha a la zona horaria correspondiente y las transformaciones necesarias para obtener una fecha legible por los humanos. Por ejemplo, una ristra de 32 ceros se corresponde con el Jueves 1 de Enero de 1970 a las 00:00:00 horas UTC, que sería el tiempo de referencia a partir de donde se empieza a contar. A partir, el contador de 32 bits se va incrementando en uno por cada segundo que pasa a partir de esa fecha.

Lo principal del asunto es que dicho contador sólo puede almacenar una cantidad finita de segundos, más concretamente 232 segundos. Cuando llegamos a dicha cifra y seguimos contado, ocurre un desbordamiento, y comienzan los problemas.

Animación que muestra las consecuencias del desbordamiento del contador de fecha.

Como se puede ver en la animación, el 19 de Enero de 2038, a las 3:14:08 horas UTC, los sistemas operativos basados en Unix mostrarán una fecha incorrecta, algo parecido a lo que sucedió en el Efecto 2000 que ya hemos tratado. Pero esta vez, afortunadamente, no tiene tan mala pinta, ya que la solución a este problema recomendada, ya que aunque hay algunos “apaños”, que si bien pueden aplazar algunos años el problema, también pueden acarrear otra serie de problemas con software mal escrito, es utilizar un sistema operativo en conjunto con un sistema de 64 bits (cuya explicación espero poder dar otro día), que aumenta el tamaño del contador hasta los 64 dígitos binarios, lo cual le permite almacenar una cantidad mucho más grande de segundos: básicamente, un contador de 64 bits proporciona un margen de 292 mil millones de años, tiempo más que suficiente como para que demos con una solución mejor (esperemos). Para que nos entendamos, si tienes un sistema de 64 bits, no tendrás que preocuparte por este problema al menos hasta el Domingo 4 de Diciembre del año 292.277.026.596.

Los principales problemas que puede acarrear este efecto 2038 serán algo más graves si por entonces se siguen usando computadores que sean susceptibles a este problema debido a la proliferación de sistemas informáticos en todo tipo de equipos, siendo el caso más problemático el de los computadores empotrados y dispositivos aeronáuticos, satélites, sistemas de navegación, etc., que son dificilmente reemplazables ya que se diseñan para que duren toda la vida útil del aparato del que forman parte, por lo que sería necesario tomar medidas extra para garantizar que dichos computadores no interfieren en el funcionamiento del mismo, ya que podrían ocasionar graves accidentes en caso de ser sistemas de misión crítica.

Con esto damos por terminado las tres entregas en las que tenía pensado dividir el artículo acerca del Efecto 2000, con un pequeño regalito además, dando a conocer el Efecto 2038. Porque, efectivamente, aún quedan algunos años para entonces, pero eso mismo pensaron algunos lumbreras del Y2K, y miren cómo acabamos…

Nos vemos en la próxima entrada, que espero que no sea dentro de mucho. Disculpad por este parón.

05/02/2011 / Pyrosphere3

El Pentium que no sabía dividir

Si estáis un poco al tanto de la actualidad en cuanto a hardware de consumo doméstico, seguro que os habréis enterado del pequeño problema que presenta la nueva serie de chipsets de Intel (Sandy Bridge) que afecta a los puertos SATA. Este bug o error de hardware (es un error de diseño, por lo tanto no es posible solucionarlo mediante una actualización de firmware) causa una reducción drástica de rendimiento a medio plazo en las transferencias de datos, y ha obligado a Intel a detener la producción de chipsets, descartar todos los chips fabricados hasta el momento y comenzar un programa de reemplazo de chipsets defectuosos que, según se estima, costará a los de Santa Clara la friolera de 700 millones de dólares.

Y aunque pueda parecer sorprendente, no es la primera vez que se les escapa un fallo de fabricación a los chicos de Intel. Quizás el más recordado ocurrió en 1993, cuando Intel lanzaba al mercado el primer procesador Pentium que mejoraba notoriamente su predecesor, el 80486, gracias a, entre otras mejoras, una nueva unidad de coma flotante (FPU) que llevaba consigo un pequeño defecto el cual causaba que, para ciertos valores, la operación de división no devolviese el resultado correcto. Este defecto de fabricación no salió a la luz hasta Octubre del año siguiente, cuando Thomas Nicely, un profesor de matemáticas de la Universidad de Lynchburg, usó varios ordenadores para ejecutar un programa para generar números primos, observando resultados erróneos en la máquina con el Pentium. Nicely se puso en contacto con Intel para informar del error, así como con varios compañeros para intentar reproducir los resultados. Multitud de usuarios de Internet pudieron reproducir con éxito los escenarios de la prueba, confirmando lo que Nicely descubrió por casualidad: la microarquitectura del Pentium tenía un error de diseño.

Vistas del microprocesador Intel Pentium (modelo A80501-66 SX837).

Dicho error ocasionaba que, en ciertos casos, la operación de división en coma flotante (y también la división entera, aunque con menor asiduidad) no devolviese el resultado correcto debido a un defecto en el diseño de cinco de las 1066 celdas de la lookup table que usaba el algoritmo de división SRT de la instrucción para agilizar el proceso de división y aumentar su precisión (para una explicación del algoritmo de división SRT y el defecto de fabricación del Pentium, consulta un whitepaper de Intel aquí). Cuando el algoritmo necesitaba acceder a una de estas celdas con datos incorrectos, la instrucción producía un resultado erróneo. Por ejemplo, realizar la división 4195835/3145727 en un procesador afectado devolvería 1.3337 (redondeado) cuando el resultado correcto es 1,3338 (redondeado), por lo tanto se produce un error a partir de la cuarta cifra decimal que, aunque pueda parecer insignificante a nivel doméstico, para cálculos científicos, por ejemplo, representa un error de proporciones bastante considerables, aunque contrariamente de lo que se pudiese pensar, la probabilidad de que esto sucediese era bastante baja debido a que el problema sólo se reproducía con cierto conjunto de datos de entrada: en el peor caso, un error a partir de la cuarta cifra decimal, la probabilidad era de 1 entre 360.000.000.000, siendo el caso más común, el de errores a partir de la décima cifra decimal, de “tan sólo” 1 entre 9.000.000.000.

Comenzó a correrse la voz y el llamado “bug del FDIV” (haciendo referencia a la instrucción FDIV, floating point division en ensamblador, que era la que causaba el problema aunque existían otras cuantas afectadas) se difundió con rapidez tanto por Internet como por medios tradicionales. Intel, mientras tanto, negaba la existencia de dicho error, aunque posteriormente tuvo que ceder debido a la presión de los consumidores y de varias empresas como IBM, cuyos productos competían con los Pentium por entonces. El fabricante de procesadores tuvo que reconocer el error, pero no obstante, sólo aceptaría cambiar el chip defectuoso a aquellos clientes que demostraran estar afectados por ellos, en un intento de evitar a toda costa una retirada masiva de todos los procesadores defectuosos que le haría desembolsar una gran suma de dinero. Dado que las críticas, que comenzaban a hacer mella en la imagen de la compañía, no cesaban, Intel tuvo que resignarse a ofrecer un cambio a todos los propietarios de Pentium defectuosos, aunque, para sorpresa de muchos, sólo una pequeña parte de los consumidores efectuó el cambio. Aún así, el gigante tuvo pérdidas de alrededor de 475 millones de dólares ocasionados por el coste de la recogida y posterior envío de procesadores.

Y así acaba una de las historias que a más de uno se le ha venido a la mente estos días leyendo las noticias del sector tecnológico, sobre un pequeño defecto de fabricación, improbable, pero que dañó la imagen de un gigante como Intel y que aún perdura hasta nuestros días. Porque lo importante de esta historia no fue el fallo en el diseño o en los controles de calidad de Intel, ya que al fin y al cabo, como los que hayan leído la entrada de cómo se fabrican los microprocesadores sabrán, la complejidad del diseño y los procesos de fabricación de una CPU hacen que no sea raro que dichos circuitos tengan algún pequeño fallo; fue la posición de Intel a la hora de intentar resolver el problema la que causó todo el revuelo. Y 17 años después del descubrimiento del defecto del Pentium original y con muchísimos miles de unidades más vendidas a lo largo y ancho del planeta, se descubre otro defecto en los chips de Intel. ¿Se volverá a repetir la historia?

22/12/2010 / Pyrosphere3

La tabuladora de Hollerith

Hasta ahora, todas las máquinas que han ido apareciendo en este blog eran simples calculadoras mecánicas cuya única función era realizar operaciones aritméticas de mayor o menor complejidad, que si bien servían para agilizar tareas repetitivas en algunos puestos de trabajo, nunca llegaron a marcar un antes y un después. Al menos, hasta que en 1890, el estadístico estadounidense Herman Hollerith creara la primera máquina tabuladora mecánica alimentada por tarjetas perforadas que serviría para agilizar enormemente el censo de Estados Unidos de ese mismo año.

El censo estadounidense (que debía ser realizado al menos cada diez años, según la constitución de este país) de 1880 tardó ocho años en ser tabulado a mano, y las estimaciones para el siguiente, en 1890, no eran para nada alentadoras: debido a la inmigración, se calculaba que serían necesarios al menos trece años para poder disponer del censo, lo cual era claramente inaceptable ya que estaría obsoleto nada más ser finalizado. Por tanto, la Oficina del Censo de EE.UU. organizó una competición en 1888 en las que se pedían máquinas que ayudaran a agilizar el trabajo. El ganador obtendría un contrato para fabricar sus máquinas y ponerlas en práctica, para lo cual debería ser el más rápido en procesar una parte del censo anterior.

Se presentaron tres candidatos, dos de los cuales tardaron 144,5 y 100,5 horas en completar el trabajo, respectivamente. El tercer candidato, Herman Hollerith, completó el trabajo en 72 horas y media. La eficacia del sistema de Hollerith sorprendió, y obviamente consiguió el contrato, siendo el censo de 1890 el primero del mundo en ser llevado a cabo con ayuda de máquinas. Los resultados no se hicieron esperar: gracias a las tabuladoras mecánicas, el censo se completó en tan sólo un año y con una inversión económica mucho menor de la esperada, una reducción tan drástica que ni las predicciones más optimistas esperaban.

El funcionamiento de la máquina tabuladora es bastante curioso. En la mesa de trabajo (ver imagen superior) había 40 diales que mostraban el conteo de la información necesaria para el censo, así como un pantógrafo perforador de tarjetas a la izquierda del escritorio y un lector de las mismas en el lado derecho. El lector de tarjetas perforadas disponía de una matriz de agujas que hacían contacto eléctrico con una pequeña cantidad de mercurio en los casos que se encontraba con una perforación (ver imagen abajo), lo cual mandaba una señal eléctrica a un electroimán que accionaba el dial correpondiente, sumando uno al registro en cuestión. Al terminar la jornada, se anotaban los resultados obtenidos en cada mesa de trabajo, y se reseteaban los diales a cero: la máquina quedaba lista para volver a funcionar al día siguiente.

Tras el gran éxito conseguido con el censo, Herman Hollerith vio el potencial de su invención y en 1896 fundó su propia empresa a la que llamó Tabulating Machine Company (TMC, Compañía de Máquinas Tabuladoras), que recibiría subcontrataciones de posteriores censos además de diversas compañías aseguradoras. El trabajo de Hollerith no acabó ahí, ya que siguió mejorando e inventando algunas nuevas máquinas para trabajar en conjunto con las ya existentes: de esta manera, inventó un sistema alimentador de tajetas perforadas automático, así como una perforadora de tarjetas mecánica en la que se podían llegar a perforar alrededor de 300 tarjetas por hora. Igualmente, modificó el diseño de la tabuladora original, que estaba creada específicamente para funcionar en censos, y en 1906 creó la Hollerith Type I, que introdujo lo que podríamos considerar hoy como un sistema de programación de máquinas primitivo, añadiendo un panel de conexiones que permitían modificar el comportamiento de la máquina sin para ello tener que cambiar el diseño de la misma, ampliando con ello las posibilidades de la máquina y su explotación en otros campos.

Tabuladora "Hollerith Type III", con el panel de control al descubierto.

Con el tiempo y debido al éxito de la empresa de Hollerith, Tabulating Machines Company se fusionó con otras cuatro empresas, formando la Computing Tabulating Recording Corporation, la cual más tarde, en 1924, acabaría cambiando el nombre por International Bussiness Machines (IBM), compañía que ha llegado hasta nuestros días como una de las mayores multinacionales en el sector de la informática. Herman Hollerith no sólo contribuyó a agilizar el censo de Estados Unidos. Sin él saberlo, había creado la industria del procesamiento de datos tan imprescindible en la actualidad, así como una máquina que jugarían un papel fundamental en el desarrollo de dicha industria.

12/12/2010 / Pyrosphere3

Cómo se fabrican los microprocesadores

El microprocesador o CPU (Central Processing Unit, unidad central de proceso) es el cerebro de todo ordenador. Es la circuitería encargada de coordinar todo el sistema, manejar la información que fluye a través de sus circuitos y procesar las instrucciones de los programas que cargamos en nuestro equipo, con lo que sobra decir que es uno de los componentes más importantes de todos, si no el que más. Y con tantas funciones, las conexiones eléctricas de los microprocesadores son extremadamente complejas, tanto que a día de hoy se considera que una CPU es el producto electrónico más complejo de todos cuantos existen, ya que son necesarios más de 100 pasos para fabricar una unidad, con un proceso de fabricación en el que se debe cuidar el más mínimo detalle.

En esta entrada veremos, a grandes rasgos, cómo es el proceso de fabricación de un microprocesador. Cada fabricante tiene su propio proceso de diseño y fabricación de microprocesadores, en el que se usan distintas tecnologías e incluso materiales ligeramente diferentes con el fin de mejorar el producto final, pero la mayoría de procesadores son creados siguiendo una serie de pasos básicos comunes a todos, los cuales detallaremos en esta entrada, a continuación.

Los materiales básicos

Todo el mundo ha oído hablar de que el silicio es uno de los materiales fundamentales de todos los circuitos electrónicos y, sobre todo, de la informática, y es que este material, el segundo elemento más abundante en nuestro planeta por detrás del oxígeno que podemos encontrar comúnmente en la arena de las playas, es el elemento fundamental en la composición de un microprocesador. Por supuesto, no verás camiones de Intel o AMD en tu playa más cercana recogiendo arena, ya que el grado de pureza necesaria para la fabricación de las CPU es extremadamente elevada (según Intel, de más del 99,9%), de modo que el silicio que se vaya a usar en el proceso de elaboración debe ser cuidadosamente seleccionado. Otro de los elementos que componen un procesador es un metal, que hasta hace relativamente poco era el aluminio, aunque los micros más modernos suelen emplear el cobre debido a numerosas ventajas sobre el aluminio en cuanto a conductividad, miniaturización y resistencia al paso de la corriente. También son necesarias grandes cantidades de compuestos químicos que intervienen en la fabricación de los procesadores, aunque no entraremos en demasiados detalles sobre éstos.

Fabricando la superficie de la CPU

Proceso de conversión de los productos básicos: del silicio al lingote.

Los microprocesadores, como circuitos que son, necesitan una superficie sobre la que depositar todas sus conexiones, y que además sirva como conductor. Esta superficie se crea mediante la fabricación de unas obleas (waffers en inglés), en la que se fabricarán muchas unidades y posteriormente se cortará, dando como resultado muchas unidades totalmente funcionales. La oblea se fabrica usando silicio puro, que pasa a través de una serie de procesos de purificación con el objetivo de liberar al silicio de impurezas que puedan degradar la calidad del producto final: el silicio resultante no debe contener más de un átomo de impurezas por cada mil millones de átomos de silicio. Este silicio puro se funde, y se inserta una semilla de cristal de silicio en la fundición, con el objetivo de que se vaya adheriendo al cristal y tomando la misma estructura atómica cristalina hasta formar un lingote de unos 300 milímetros de diámetro. Este lingote, posteriormente se corta en rebanadas de alrededor de un milímetro de espesor, dando lugar a las ya mencionadas obleas, que son pulidas y preparadas con diversos productos químicos para añadir sobre ellas la circuitería necesaria.

Obtención de las obleas del lingote.

Impresión de la circuitería

Los circuitos electrónicos que componen un procesador se “imprimen” en el material semiconductor mediante una técnica conocida como fotolitografía. La oblea ya preparada se recubre con una fina capa de material fotorresistente, para luego proceder a imprimir sobre ella el patrón que seguirán los circuitos usando luz ultravioleta (lo que se conoce como máscara). La luz ultravioleta da lugar a una reacción química en los lugares donde incide, que permite que esta parte de la capa anteriormente depositada pueda ser eliminada con facilidad, reproduciendo en la oblea el diseño que hayamos creado tantas veces como procesadores quepan en la oblea.

Fotolitografía: impresión mediante luz ultravioleta de patrones en una oblea para fabricación de circuitos electrónicos.

Tras el grabado de la máscara, se aplican diferentes productos químicos para limpiar los residuos generados así como la película sobrante sobre la que ha incidido la luz ultravioleta. A continuación se dopa el material con iones para conseguir la capacidad de conducir la corriente: con esto habremos conseguido crear pistas conductoras sobre la superficie que formarán transistores, los elementos electrónicos fundamentales en todo ordenador. A partir de ahora, lo que se hace es básicamente conectar entre sí todos los transistores que se han creado en la base, usando conexiones de cobre a un nivel microscópicos, que son los que dotarán de la funcionalidad al microprocesador: gracias a estas conexiones, el microprocesador será capaz de realizar las operaciones necesarias para ser un elemento funcional.

Conexiones de material conductor en un microprocesador.

Pruebas

La circuitería básica de la CPU está finalizada. Ahora queda cortar los numerosos procesadores que se fabrican en cada oblea en porciones que formarán un microprocesador independiente, y comprobar que todos y cada uno funcionen correctamente. Los que estén defectuosos, normalmente aquellos cercanos a los bordes de la oblea, se descartan. Y en este paso se clasifican por rendimiento, ya que es posible que un chip, aunque funcione correctamente, no sea capaz de llegar a la frecuencia de trabajo que se esperaba. Esta clasificación permite que puedas encontrarte CPU de la misma familia en el mercado con diferentes frecuencias, tamaños de caché e incluso, actualmente, diferentes nucleos, y por tanto, de distinto precio: en esencia, es el mismo chip, que puede que haya sido fabricado en la misma oblea que uno más caro, pero que por algunas circunstancias no es capaz de operar  al mismo nivel que éste.

Ya sólo queda empaquetar los chips y madnarlo a los distribuidores para su comercialización, que previamente habrán sido encapsulados en un formato cómodo para utilizar por el usuario final, es decir, lo que puedes ver cuando compras un procesador es sólo un paquete, el chip va dentro del mismo para protegerlo y mejorar la disipación de calor.

Con esto terminamos esta introducción al proceso de fabricación de un microprocesador. La próxima vez que vayas a la tienda a comprar una CPU, párate a pensar la maravilla tecnológica que estás adquiriendo a un precio relativamente bajo y el complicado proceso que ha tenido lugar desde que se obtivo el silicio hasta que se fabricó el chip que tienes hoy en tu ordenador.

04/10/2010 / Pyrosphere3

El “Efecto 2000″: el problema del milenio (II)

En la anterior entrada acerca del Efecto 2000, ese extraño fenómeno que amenazó a todos los habitantes de la Tierra con volver locos a todos los ordenadores del planeta, vimos qué era exactamente el Efecto 2000, y en qué consistía ese error informático que podía provocar tales consecuencias. Pero con tantísimos equipos de profesionales cualificados a los mandos de los sistemas informáticos de todo el mundo, con inversiones millonarias en sistemas de información ¿por qué nadie pensó que esto podría suceder ni hicieron nada por evitarlo?

El por qué del Efecto 2000

Algo así pensaban que podía sucederle a tu ordenador.

El “bug del milenio” tuvo su origen en su mayor parte en la falta de previsión y malas prácticas de los desarrolladores de software, bastantes años antes de la llegada de la entrada del año 2000. En cierto modo, lo que hoy se consideraría una “mala práctica”, por entonces era un mal necesario, dado que los recursos de por entonces eran escasos y sobre todo, costosos, por lo que en ningún caso se debería echar la culpa a los programadores: no tenían más remedio.

El principal problema que causó el efecto 2000, como ya comenté en la anterior entrada,  fue debido a que los programas trabajaban con sólo dos dígitos en el campo del año en las fechas, lo cual, al entrar el año 2000, ocasionó los problemas. Así que, ¿por qué no usaban cuatro dígitos para representar un año, y evitaban el problema? Pues porque no salía rentable. Imaginemos que, para representar dos enteros usamos un byte para cada uno, y que un banco que lleva todas las cuentas de sus clientes, y almacenase las fechas enteras: ¿cuántos bytes necesitaría dedicar sólo para almacenar los dígitos correspondientes al “mil novecientos”? Daros cuenta que, como mínimo, en cada anotación en la cuenta corriente tenemos varias fechas, además de las relativas a las cuentas de cada cliente y demás transacciones que el banco procesa a diario, con cientos de miles de clientes. El número de bytes necesarios para almacenar esos dos dígitos (inútiles, por cierto) iría consumiendo poco a poco la limitada capacidad de almacenamiento de los discos duros de aquella época, lo cual se traduce en la necesidad de adquirir más almacenamiento, que no era nada barato, y además en un emplazamiento físico para poder ubicar dichos discos. Como ya he dicho, por entonces almacenar la fecha completa era inadmisible, por lo tanto se optó por usar las dos cifras.

Total, ¿quién iba a pensar en los años setenta que un programa de por entonces iba a estar funcionando más de treinta años sin actualizarse? Lo que por entonces se creía que era un tiempo de vida razonable se vio ampliamente superado, ya que como los programas “funcionaban bien” no había necesidad de cambiarlos por otros que no conocían y podían comenzar a causar problemas: el software desarrollado en la década de los 70-80 nunca se hizo pensando en las consecuencias del cambio de siglo, ya que se daba por hecho que por entonces ya se habría reemplazado por otro mejorado, y no fue hasta los 90 cuando se comenzó a tener en cuenta los posibles efectos del nuevo milenio. Vista de lince, sí señor.

Pero ¿de verdad fue para tanto? ¿Cuáles fueron las consecuencias reales del Efecto 2000? Y sea como sea, menos mal que ya ha pasado y no volveremos a encontrarnos con algo parecido, ¿verdad? Pues no, el Y2K no ha acabado todavía, aunque eso lo veremos en la siguiente entrada, cuando consiga un poco de tiempo libre para escribirla.

Seguir

Get every new post delivered to your Inbox.