EL ÁBACO Los chinos (3000 AC –3500 AC) desarrollaron el ábaco con el cuál podía desarrollar cálculos complejos en forma rápida. Es uno de los primeros dispositivos mecánicos para contar fue el ábaco. Este dispositivo es muy sencillo, consta de cuentas ensartadas en varillas que a su vez están montadas en un marco rectangular. Al desplazar las cuentas sobre varillas, sus posiciones representan valores almacenados, y es mediante dichas posiciones que este representa y almacena datos. A este dispositivo no se le puede llamar computadora por carecer del elemento fundamental llamado programa. MÁQUINA SUMADORA En el siglo XV hallamos el que podemos calificar como el primer antecedente de la calculadora: el diseño de una máquina sumadora realizado por Leonardo Da Vinci (1452-1519). Una máquina de sumar es un tipo de calculadora, generalmente especializada para los cálculos de contabilidad. En los Estados Unidos, las máquinas sumadoras muy viejas generalmente fueron construidas para leer en dólares y céntimos. REGLETAS DE NAPIER En 1614 el escocés John Napier (1550-1617) desarrolló los logaritmos que permitieron reducir complejas multiplicaciones y divisiones en sumas y restas. Ideó un dispositivo basado en varillas cifradas que contenían números y era capaz de multiplicar y dividir en forma automática, regletas de Napier. También ideó un dispositivo una calculadora con tarjetas que permitía multiplicar, recibiendo ésta el nombre de estructuras de Napier. Constituyó un dispositivo intermedio entre el ábaco y las primeras calculadoras mecánicas. RELOJ CALCULANTE Con la difusión de las ruedas dentadas en el siglo XVII se desarrollaron varias máquinas capaces de sumar, restar, multiplicar y dividir. Hacia el año 1623 el científico alemán Schickard ideó una calculadora mecánica denominada reloj calculante, que funcionaba con ruedas dentadas y era capaz de sumar y restar, pero no se pudo montar en aquella época. A principios del siglo XX fue construida según el diseño de su autor, por ingenieros de IBM. Fue considerada la primera máquina de calcular de origen mecánico. PASCALINA Otro de los inventos mecánicos fue la Pascalina inventada por Blaise Pascal (1623 - 1662) de Francia. Era una máquina de sumar y restar. El motivo impulsor de Pascal fue ayudar a su padre, un recaudador de impuestos, en su tarea. La máquina resultó un éxito en cuanto a su funcionamiento y fue reconocida en toda Europa, sin embargo, su fabricación y venta fracasó económicamente, debido a su alto costo de elaboración y reparación. Resultaba más barato contratar personal para hacer cuentas que comprar la pascalina y mantenerla en funcionamiento. MÁQUINA UNIVERSAL Pocos años más tarde, el filósofo y matemático alemán Gottfried Wilhelm von Leibniz (1646-1716) mejoró la máquina de Pascal construyendo la máquina universal, capaz de sumar, restar, multiplicar, dividir y extraer raíces cuadradas, caracterizándose por hacer la multiplicación en forma directa, en vez de realizarla por sumas sucesivas, como la máquina de Pascal. TELAR DE JACQUARD Ya en el siglo XIX, en el año 1805, el francés Joseph Marie Jacquard construyó un telar automático que realizaba un control perfecto sobre las agujas tejedoras, utilizando tarjetas perforadas que contenían los datos para el control de las figuras y dibujos que había que tejer. Se puede considerar al telar de Jacquard como la primera máquina mecánica programada. La máquina resultó un éxito al aumentar la productividad del sector. MÁQUINA DIFERENCIAL El matemático inglés y profesor de la Universidad de Cambridge Charles Babbage (1792-1871) diseñó dos máquinas de calcular que rompían la línea general de las máquinas de aquella época por su grado de complejidad. La primera de ellas fue la máquina diferencial o máquina de diferencias. Sus aplicaciones más importantes fueron la resolución de funciones y las tablas de dichas funciones. La construcción resultó más larga y cara de lo previsto y se interrumpió en 1842, momento en el cual el gobierno retiró su apoyo económico. MÁQUINA ANALÍTICA En 1833 comenzó a diseñar su segunda máquina, denominada máquina analítica. , capaz de realizar todas las operaciones y con posibilidad de ser programada por medio de tarjetas perforadas. Ambos equipos eran totalmente mecánicos: usaban ejes, engranajes y poleas para poder ejecutar cálculos. Por este motivo los diseños funcionaba n en teoría, pero en la práctica las maquinarias y herramientas de fabricación de la época eran imprecisas y no pudieron construir las piezas con la necesaria exactitud. Los planos y modelos de ambas máquinas sirvieron como puntos referenciales de muchos de los conceptos de computación aplicados hoy en día, y para muchos, Charles Babbage es considerado el padre de las computadoras. En 1991 el Museo de Londres construyó un modelo de máquina diferencial basado en los planos originales de Babbage, llegando a un prototipo de dos metros de altura, tres metros de largo, más de cuatro mil piezas y un peso cercano a las tres toneladas. Ada Byron, hija del poeta inglés lord Byron, fue la primera persona que realizó programas para la máquina analítica de Babbage, de tal forma ha sido considerada la primera programadora de la historia. En la década de los 80, el Departamento de los Estados Unidos desarrolló un lenguaje en honor a la condesa, al cual nombró ADA. MÁQUINA DE TABULAR En 1854, el ingeniero sueco Pehr George Scheutz, apoyado por el gobierno de su país, construyó una máquina diferencial similar a la de Babbage, denominada máquina de tabular, que tuvo un gran éxito y se utilizó fundamentalmente para la realización de cálculos astronómicos y la confección de tablas para las compañías de seguros. También, en 1854, el matemático inglés George Boole desarrolló la teoría del álgebra de Boole, que permitió a sus sucesores el desarrollo matemático del álgebra binaria y con ella la representación de circuitos de conmutación y la aparición de la llamada “Teoría de los circuitos Lógicos”. MÁQUINA CENSADORA En 1885, el norteamericano y funcionario de la oficina del censo de Estados Unidos Herman Hollerith vio cómo se tardaba 10 años en realizar el censo anual de su país y observó que la mayoría de las preguntas del censo tenían como respuesta un sí o un no, lo que le hizo idear en 1886 una tarjeta perforada para contener la información de las personas censadas y una máquina capaz de leer y tabular dicha información. Construyó su máquina censadora que fue capaz de reducir el trabajo manual a la tercera parte. Con lo cual el censo de 1890 tardó tan solo tres años, perforándose un total de 56 millones de tarjetas. En 1895 incluyó en su máquina la capacidad de sumar con el fin de utilizarla en la contabilidad de los Ferrocarriles Centrales de Mueva York. Luego del éxito para tabular datos censales y durante la primera mitad del siglo XX, las tarjetas perforadas tuvieron una significativa importancia. Se desarrolló toda una serie de máquinas denominadas genéricamente EAM, que incluía diferentes dispositivos como: Perforadoras de tarjetas Verificadoras de tarjetas Lectora de tarjetas Clasificación de tarjetas Máquina de contabilidad, con unidad impresora. GENERACIONES DE COMPUTADORAS Los cambios tecnológicos producidos han originado una clasificación de las computadoras en generaciones: PRIMERA GENERACIÓN Durante 1936 y 1939 el ingeniero alemán Zuse construyó la primera computadora electromecánica binaria programable. Sin embargo solo se fabricó un prototipo llamado Z1. En 1940 Zuse terminó su modelo Z2, la cual fue la primera computadora electro-mecánica funcional del mundo. En 1941 fabricó su modelo Z3. Sin embargo esta computadora fue destruida a causa de la guerra, Entre 1945 y 1946 creó el “Plan de cálculos”, predecesor de los lenguajes modernos. El matemático húngaro, John Louis Von Neumann realizó importantes aportes a las computadoras de la primera generación. Asesoró a Eckert y Machly, creadores de la ENIAC y que construyeron además la UNIVAC en 1950. Durante esa década trabajó como consultor para la IBM colaborando con Howard Aiken para la construcción de la Mark I. La ABC empezó a ser concebida por el profesor Atanasoff a partir de 1933, formulando la idea de usar el sistema de números binarios para su funcionamiento. Con la ayuda de Berry, entre los años 1937 y 1942 construyó su prototipo. Fue la primera computadora electrónica digital, aunque sin buenos resultados. Entre los años 1943 y 1946 se construyó la computadora ENIAC. La Collosus (1941) usaba miles de válvulas y 2.400 bombas de vidrio al vacío. La Mark I es la primera computadora construida por IBM a gran escala. Medía 15 metros de largo, 2,40 metros de alto y pesaba 5 toneladas. La almirante Grace Hooper creó el lenguaje Flowmatic y en 1951 produjo el primer compilador. En 1960 presentó su primera versión del lenguaje Cobol. En 1946 se construyó la ENIAC. Medía 2,40 metros de ancho por 30 metros de largo y pesaba 80 toneladas. Podía resolver 5.000 sumas y 360 multiplicaciones por segundo. La computadora EDVAC construida en 1949 fue el primer equipo con capacidad de almacenamiento de memoria e hizo desechar a los otros equipos que tenía que ser reconfigurados cada vez que se usaban. La UNIVAC fue diseñada con propósitos de uso general pues ya podía procesar problemas alfanuméricos y de datos. Características principales: Válvulas (tubos al vacío). Alto consumo de energía. El voltaje de los tubos era de 300 v y la posibilidad de fundirse era grande. Almacenamiento de la información en tambor magnético interior. Un tambor magnético disponía de su interior del ordenador, recogía y memorizaba los datos y los programas que se le suministraban mediante tarjetas. Lenguaje de máquina. La programación se codifica en un lenguaje muy rudimentario denominado (lenguaje de máquina). Consistía en la yuxtaposición de largo bits o cadenas de cero y unos. SEGUNDA GENERACIÓN En 1948 se inventó el primer transistor. Un transistor contiene un material semi-conductor que puede cambiar su estado eléctrico cuando es pulsado. En las computadoras funcionan como un swicht electrónico o puente. Estos avances tecnológicos permitieron el reemplazo de los tubos de vacío por los transistores, siendo éstos más económicos, debido al menor consumo eléctrico y la mayor durabilidad de los componentes, de menor tamaño y mucho más velocidad de cómputo. Entre estas máquinas se destacaron las series IBM 1400 y 1700, la UNIVAC 1107, el Honeywell 400 y el 800 y el CDC 3600. El mercado tuvo como líder en equipos entregados a IBM Características principales: Transistor. El componente principal es un pequeño trozo de semiconductor, y se expone en los llamados circuitos transistorizados. Disminución del tamaño. Disminución del consumo y de la producción del calor. Su fiabilidad alcanza metas imaginables con los efímeros tubos al vacío. Mayor rapidez ala velocidades de datos. Memoria interna de núcleos de ferrita. Instrumentos de almacenamiento. Mejora de los dispositivos de entrada y salida. Introducción de elementos modulares. Lenguaje de programación más potente. TERCERA GENERACIÓN En 1958, aparecen los circuitos integrados, capaces de realizar las funciones de cientos de transistores. Los circuitos integrados consistían en el encapsulamiento de una gran cantidad de componentes: resistencias, condensadores, diodos y transistores, conformando uno o varios circuitos con una función determinada, sobre una pastilla de silicona o plástico. La miniaturización se extendió a todos los circuitos de la computadora, apareciendo las minicomputadoras. La primera computadora que utilizó circuitos integrados fue la serie IBM 360. En esta etapa se inició el teleproceso, es decir, la utilización de terminales remotas vinculadas a un equipo central por algún medio de comunicación. Características principales: Circuito integrado, miniaturización y reunión de centenares de elementos en una placa de silicio o (chip). Menor consumo. Apreciable reducción de espacio. Aumento de fiabilidad. Teleproceso. Multiprogramación. Renovación de periféricos. Compatibilidad. Ampliación de las aplicaciones. La minicomputadora. CUARTA GENERACIÓN La integración de circuitos siguió su avance, dando paso a lo que se conoce como LSI (integración a gran escala). En 1971 aparece el microprocesador, consistente en la integración de toda CPU. Se fabricaron microcomputadoras y computadoras personales. Se comenzó a utilizar el diskette como unidad de almacenamiento externo. Aparecieron una gran variedad de lenguajes y las redes de transmisión de datos. Se desechan las memorias internas de los núcleos magnéticos de ferrita y se introducen memorias electrónicas, que resultan más rápidas. Al principio presentan el inconveniente de su mayor costo, pero este disminuye con la con la fabricación en serie. QUINTA GENERACION La quinta generación de computadoras, también conocida por sus siglas en inglés, FGCS (de Fifth Generation Computer Systems) fue un ambicioso proyecto propuesto por Japón a finales de la década de 1970. Su objetivo era el desarrollo de una nueva clase de computadoras que utilizarían técnicas y tecnologías de inteligencia artificial tanto en el plano del hardware como del software,1 usando el lenguaje PROLOG2 3 4 al nivel del lenguaje de máquina y serían capaces de resolver problemas complejos, como la traducción automática de una lengua natural a otra (del japonés al inglés, por ejemplo). Como unidad de medida del rendimiento y prestaciones de estas computadoras se empleaba la cantidad de LIPS (Logical Inferences Per Second) capaz de realizar durante la ejecución de las distintas tareas programadas. Para su desarrollo se emplearon diferentes tipos de arquitecturas VLSI (Very Large Scale Integration). El proyecto duró once años, pero no obtuvo los resultados esperados: las computadoras actuales siguieron así, ya que hay muchos casos en los que, o bien es imposible llevar a cabo una paralización del mismo, o una vez llevado a cabo ésta, no se aprecia mejora alguna, o en el peor de los casos, se produce una pérdida de rendimiento. Hay que tener claro que para realizar un programa paralelo debemos, para empezar, identificar dentro del mismo partes que puedan ser ejecutadas por separado en distintos procesadores. Además, es importante señalar que un programa que se ejecuta de manera secuencial, debe recibir numerosas modificaciones para que pueda ser ejecutado de manera paralela, es decir, primero sería interesante estudiar si realmente el trabajo que esto conlleva se ve compensado con la mejora del rendimiento de la tarea después de paralelizarla.