Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Parte 1.- TEORÍA DEL PARALELISMO Tema 1.- INTRODUCCION Anexo 1.- HISTORIA Y EVOLUCIÓN DEL COMPUTADOR INDICE INDICE............................................................................................................................................................................................. 1 Capitulo 1.1.- HISTORIA PRELIMINAR Æ LOS PRECURSORES..................................................................................... 2 El Ábaco ........................................................................................................................................................................... 2 Los autómatas de reloj ...................................................................................................................................................... 3 John Napier (1550-1617).................................................................................................................................................. 3 Blaise Pascal (1642). ........................................................................................................................................................ 4 Leibnitz (1646-1716)........................................................................................................................................................ 4 Basil Bouda y Falcon (1728) ............................................................................................................................................ 5 Joseph Jacquard (1752-1834). .......................................................................................................................................... 5 Charles Babbage (1792-1881) Æ La Maquina Analítica y Diferencial ........................................................................... 5 La Tabuladora y El Censo De 1890................................................................................................................................. 7 Hernan Hollerith (1860 – 1929) ....................................................................................................................................... 7 La IBM ............................................................................................................................................................................. 8 Konrad Zuse ..................................................................................................................................................................... 8 La Mark-I y La ABC ........................................................................................................................................................ 9 Electronic Numeric Integrator And Calculator - ENIAC ................................................................................................. 9 John Von Newman ......................................................................................................................................................... 10 Los Intérpretes ................................................................................................................................................................ 10 Capitulo 1.2.- LAS GENERACIONES .................................................................................................................................. 11 Capitulo 1.3.- INFLUENCIA DE LA TECNOLOGIA EN LA EVOLUCION DE LA ESTRUCTURA BASICA DE LOS COMPUTADORES................................................................................................................................................................ 12 Primera etapa ...................................................................................................................................................................... 12 Segunda etapa ..................................................................................................................................................................... 13 Tercera etapa....................................................................................................................................................................... 15 Cuarta etapa ........................................................................................................................................................................ 16 Quinta etapa........................................................................................................................................................................ 17 Capitulo 1.4.- PRIMERA GENERACION (1938-1952)........................................................................................................ 19 Capitulo 1.5.- SEGUNDA GENERACION (1953-1962) ...................................................................................................... 23 Capitulo 1.6.- TERCERA GENERACION (1963-1971) ....................................................................................................... 25 La multiprogramación..................................................................................................................................................... 26 El BASIC........................................................................................................................................................................ 26 El Unix y el Lenguaje C ................................................................................................................................................. 26 El Microprocesador ........................................................................................................................................................ 26 Capitulo 1.7.- CUARTA GENERACION (1972-1987)......................................................................................................... 29 Las computadoras personales (PC’s).............................................................................................................................. 29 Cronología de las Computadoras Personales.................................................................................................................. 31 Capitulo 1.8.- QUINTA GENERACION (1987--)................................................................................................................. 35 Supercomputadores de alta velocidad............................................................................................................................. 35 Computadores de funciones inteligentes ........................................................................................................................ 36 CONCLUSION ...................................................................................................................................................................... 38 BIBLIOGRAFIA .................................................................................................................................................................... 39 ETSII – Dpto. Tecnología Electrónica Página: 1 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Capitulo 1.1.- HISTORIA PRELIMINAR Æ LOS PRECURSORES Los ordenadores procesan información digital, es decir información fundamentalmente discontinua, como cifras o caracteres alfabéticos, en tanto que los calculadores analógicos y simuladores tratan información analógica, de carácter esencialmente continuo, como voltajes o intensidades eléctricas. La naturaleza se ha adelantado a la inteligencia humana en producir máquinas digitales: la célula viva es un buen ejemplo de ello; los últimos descubrimientos indican que aquélla utiliza un sistema del tipo digital para conservar y transmitir la preciosa información hereditaria. En el estado de la computación actual, los modernos ordenadores vienen equipados con un hardware potentísimo y paquetes de software muy sofisticados, pero en su comienzo la tecnología de computación aunque prometía mucho no dejaba sospechar el tremendo avance experimentado en tan poco tiempo. Veamos su evolución histórica, los ordenadores han pasado por 2 estados de desarrollo claramente diferenciables: Mecánico y Electrónico. Aunque los antecedentes del computador se remontan al ábaco griego, en realidad su historia se inicia a mediados del siglo XX, porque hasta 1945 los ordenadores eran mecánicos o electromecánicos y se pueden citar como principales hitos: El Ábaco Antes de disponer de palabras o símbolos para representar los números, el hombre primitivo empleaba los dedos para contar. El antepasado del ábaco consistía en unas piedras introducidas en unos surcos que se practicaban en la arena. Estas piedras móviles llevaron al desarrollo del ábaco, que ya se conocía en el año 500 a. c., en Egipto. El Abaco Romano era de madera y las piedras se movían a lo largo de unas ranuras talladas en una tabla. La palabra cálculo significa piedra; de este modo surgió la palabra cálculo. El origen de la palabra ábaco no es muy claro; suele considerarse que proviene de la palabra fenicia abak, término que designa una superficie plana cubierta de arena, sobre la cual se pueden dibujar figuras. Unas formas de las palabras contar o calcular aparece en otras lenguas, como abg, que significa polvo y es de origen semítico, o abakión, en griego, y que se refiere a una tabla de cálculo marcada. Muchos pueblos utilizaron piedras con el mismo objeto; por ejemplo, los Incas peruanos empleaban cuerdas con nudos para su contabilidad que llamaban quipos. Con el tiempo se inventó el ábaco portátil que consistía en unas bolitas ensartadas en un cordón que a su vez se fijaban en un soporte de madera. Gracias al ábaco pudieron funcionar con cierta agilidad los negocios en el mundo antiguo y los comerciantes sumar, restar, multiplicar y dividir fácilmente. El uso del ábaco continuó en Europa hasta la Edad Media, pero cuando gracias a los árabes se implementó el sistema de numeración decimal, el uso de la Tabla de Cálculo o ábaco comenzó a declinar. Puede considerarse como primer ordenador mecánico al Ábaco y como la primera máquina típicamente digital que el hombre haya utilizado para ayudarse a resolver sus problemas aritméticos. En 1946 se celebró en Japón una competencia de rapidez de cálculo entre un norteamericano que empleaba una calculadora y un japonés que utilizaba un ábaco, ganó el japonés. Cuando un experto maneja un ábaco puede ser rapidísimo sumando y restando, pero no tanto multiplicando y dividiendo ya que los resultados intermedios no pueden registrarse en el ábaco ETSII – Dpto. Tecnología Electrónica Página: 2 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Los autómatas de reloj Menudearon en los campanarios de iglesias, fueron los directos antepasados de los automatismos secuenciales, muy extendidos ahora en la industria. También se denomina a éstos calculadores de programa interior o de programa fijo, significando con ello que están condenados a ejecutar la misma sucesión de operaciones, esto es, el mismo programa. John Napier (1550-1617) El desarrollo de las matemáticas, la navegación y las ciencias durante el siglo XVII, potenciaron la creación de nuevas máquinas de calcular. Se necesitaron tablas seguras de las funciones trigonométricas para calcular la posición de los barcos, también fue necesario evitar los errores aritméticos cuando los negocios y el comercio se incrementaron. En 1614, un matemático escocés llamado John Napier publicó la primera tabla de logaritmos. Napier inventó los logaritmos para simplificar y agilizar los cálculos. Según él “No hay nada peor que las multiplicaciones, divisiones y desarrollo de cuadrados de números grandes, que además de ser una tarea tediosa, dan lugar a muchos errores”. Este dispositivo mecánico funcionaba utilizando palillos con números impresos y le permitía realizar operaciones de multiplicación y división. Este dispositivo, que recibió el nombre de Estructura de Napier, estaba constituido de nueve hileras, por cada una de los dígitos de 1 al 9. Cada hilera representaba una columna de una tabla de multiplicación. Los logaritmos fueron de gran utilidad, y simplificaron significativamente muchos cálculos. En 1620, Edmund Gunthen inventó una forma de emplear los logaritmos de una manera más simple aunque no exacta. Se trataba de situarlos en una recta, y las multiplicaciones y divisiones se efectuaban añadiendo o sustrayendo segmentos por medio de par de divisores. Esto se conoció en el año 1633 con el nombre de Método Gunther. Posteriormente William Oughtred empleó dos escalas móviles y las llamó Regla de Cálculo. Las escalas de la Regla de Cálculo se gradúan según los logaritmos de las cantidades que se han de calcular. Estaba constituida por marcas que representaban logaritmos de los números; en consecuencia los productos y cocientes se obtienen al sumar o restar longitudes. Las demás escalas permiten cálculos de exponentes, funciones trigonométricas y diferentes funciones matemáticas. Esta Regla de Cálculo era rápida, pequeña y a un precio razonable. Se hizo muy popular entre los científicos e ingenieros hasta hace poco tiempo, cuando fue sustituida por la calculadora de bolsillo. ETSII – Dpto. Tecnología Electrónica Página: 3 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Blaise Pascal (1642). De las nuevas condiciones de vida impulsadas por la sociedad burguesa y el desarrollo del capitalismo, las relaciones comerciales entre naciones, que cada día eran más complejas, nace la necesidad de disponer de instrumentos cómodos y rápidos, capaces de resolver los complicados cálculos aritméticos de la época. Un joven francés de 19 años llamado Blaise Pascal diseño y construyó un mecanismo (máquina de engranajes) para realizar operaciones aritméticas (sumar y restar) en 1642. Fue el primer calculador lo bastante seguro como para ser lanzado comercialmente. Pascal avanzó un primer paso en la mecanización del cálculo aritmético al construir una máquina sobre la base de un nuevo concepto: la rueda dentada. Esta calculadora, mejor conocida como la Pascalina, tiene una rueda que corresponde a cada potencia del 10; cada rueda tiene 10 posiciones, una por cada digito entre 0 y 9, cada vez que una rueda pasaba de la posición 9 a la posición 0, la rueda inmediatamente a izquierda avanzaba automáticamente una posición para tomar en cuenta el arrastre producido. Era una calculadora diseñada para sumar, restar y multiplicar a través de sucesivas sumas. La Pascalina se constituyó en la primera sumadora mecánica que se había creado hasta entonces. En su honor, existe un lenguaje de programación con su nombre. Las máquinas electrónicas de oficina y la unidad aritmética de nuestros ordenadores de gestión funcionan según el mismo principio, sustituyendo la rueda dentada por un circuito electrónico. Leibnitz (1646-1716). El siguiente gran paso en el perfeccionamiento de las máquinas calculadoras lo dio el 1671 el matemático alemán Gottfried Wilheim Leibnitz. Los elementos claves en la máquina de Leibnitiz eran los cilindros escalonados. Esta máquina era más perfeccionada que la de Pascal, ya que podía multiplicar, dividir y obtener raíces cuadradas. Fue la mente más universal de su época. A este inventor se le atribuye el haber propuesto una máquina de calcular que utilizaba el sistema binario, todavía utilizado en nuestros días por los modernos computadores. Cuando a comienzos del siglo XIX se construyeron las primeras máquinas de calcular comerciales construidas por Charles Xavier Thomas, se incorporaron a ellas las ruedas escalonadas de Leibnitz. ETSII – Dpto. Tecnología Electrónica Página: 4 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Basil Bouda y Falcon (1728) A finales del siglo XVIII y principios del XIX, tuvo lugar un importante hecho para el posterior desarrollo de los ordenadores: la automatización de la industria textil. En el siglo XVIII, Francia estaba a la cabeza en la producción de tejidos elegantes y lujosos y algunos fabricantes se esforzaban por encontrar el modo de automatizar el proceso de fabricación para reducir los costos. Basil Bouda y Falcon en 1728, intentó programar el diseño del tejido por medio de fichas perforadas. De este modo, sólo determinadas agujas del telar podían atravesar los agujeros, pudiéndose conseguir así el dibujo de tejidos. La cinta y las fichas o tarjetas perforadoras, funcionaban como un programa para el telar. Esta técnica es la que se empleaba posteriormente para la introducción de datos en los ordenadores. Joseph Jacquard (1752-1834). No fue hasta principios del siglo XIX, en 1805, cuando otro francés Joseph Marie Jacquard, perfeccionó la técnica de controlar las agujas tejedoras del telar mediante tarjetas perforadas. Las agujas podían solamente pasar por los lugares en los que había agujeros. Colocando las fichas en forma de correa móvil, se podían tejer automáticamente complicados diseños. Jacquard diseño en 1805 un telar que actualmente se denomina como su diseñador, con el resultado de que pocos años después aparecieron miles de telares con capacidad para reproducir perfectos dibujos a precios asequibles. El empleo de fichas perforadas fue también una aplicación muy afortunada y avanzada de los números binarios en la programación. El 0 equivale a que no hay perforación y el 1 a que hay perforación. Por lo tanto la perforación no era más que un lenguaje que comunicaba instrucciones al telar mecánico. En los modernos ordenadores, las instrucciones básicas siguen siendo binarias, y es lo que se denomina Lenguaje de Máquina. Charles Babbage (1792-1881) Æ La Maquina Analítica y Diferencial Los inventos citados anteriormente no pueden considerarse como máquinas automáticas, ya que estas requerían una constante intervención del operador para producir nuevos datos y/o efectuar las maniobras que implican cada operación. La sociedad de esa época exigía una máquina para resolver cálculos automáticamente, es decir, sin la intervención del operador en el proceso, con la exactitud y precisión deseada. En 1812, el matemático e ingeniero británico Charles Babbage profesor de matemáticas de la Universidad de Cambridge, preocupado por los muchos errores que contenían las tablas de cálculos que utilizaban en su trabajo diario, construyó el modelo funcional para calcular tablas denominada Máquina Diferencial (máquina de calcular logaritmos con veinte decimales). ETSII – Dpto. Tecnología Electrónica Página: 5 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR En julio de 1823, el gobierno británico consintió en financiar la construcción de una versión mejorada de la máquina diferencial. La industria de fabricación de herramientas de aquella época, desafortunadamente no era lo suficientemente buena como para construir algunas de las partes y herramientas para fabricar sus piezas, lo que retardó considerablemente el proyecto. Con mucha frecuencia se excedía el presupuesto y algunas veces se detenía la producción por falta de fondos. Charles Babbage diseño un ingenio diferencial para ecuaciones polinómicas en 1827. ¾ Babbage reflexionó en lo inútil de aumentar la velocidad de las máquinas mecánicas, si las operaciones debían seguir siendo preparadas manualmente. Era preciso automatizar el paso de una operación a la siguiente. ¾ Pero, al contrario de los autómatas de reloj de las iglesias, que repiten ineludiblemente los mismos gestos a las mismas horas, las secuencias de operaciones a ejecutar no eran siempre las mismas. Entonces, tuvo la idea de recoger un concepto precedentemente utilizado por Jacquard para la automatización de los telares, el concepto de programa exterior. La máquina de Babbage debía, ya que de hecho no pudo concluirla, leer una ficha perforada que contenía la definición de la operación a ejecutar, ejecutar la operación; leer la ficha siguiente, etc. En el terreno de los principios, la máquina de Babbage es la antecesora de las mismas máquinas eléctricas de relés construidas por algunas empresas y universidades americanas en el curso de la última guerra mundial. Designamos a este tipo de máquinas, máquinas de programa exterior, subrayando con ello que el programa no forma parte de la máquina, sino que se'ejecuta paso a paso a partir de un soporte externo intercambiable. La Máquina Diferencial no llegó a salir al mercado en versión mejorada, por tal razón en el año 1833 Babbage se propuso mejorar sustancialmente la Máquina de Diferencias, pero esta vez en la construcción de una segunda máquina, la cual bautizó con el nombre de Máquina de Diferencia y podía ser programada para evaluar el amplio intervalo de funciones diferentes. Babbage no pudo completar ninguna de sus dos ingeniosas máquinas, ya que el gobierno británico, preocupado por la falta de progreso, le retiró la subvención económica. Tuvo que pasar un siglo para que sus ideas similares a estas fueran puestas en prácticas. ETSII – Dpto. Tecnología Electrónica Página: 6 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR La Tabuladora y El Censo De 1890 Hacia 1887, surgió en Estados Unidos la idea del proceso automatizado de datos a causa de la urgente necesidad de confeccionar el censo de 1890. Para procesar manualmente los resultados del último censo de 1880, habían hecho falta siete largos años, y por lo tanto, se pensaba que para procesar el de 1890, serían necesarios más de diez años, debido al espectacular crecimiento de la población entre 1880 y 1890. El gobierno de los Estados Unidos nombró en 1889 un comité para estudiar la forma de procesar los datos del censo y convocó un concurso para otorgar un contrato al mejor producto. Se presentaron tres propuestas adjudicándose el encargo con su sistema eléctrico de tabulación, ideado en 1887. Hernan Hollerith (1860 – 1929) Se le reconoce como uno de los precursores de las computadoras más importante debido a ser el creador de un dispositivo que se utilizó hasta hace poco tiempo: Las tarjetas perforadas. Hollerith trabajó afanosamente entre 1882 y 1889, en un equipo de tarjetas perforadas que podría usarse para la construcción de máquinas destinadas a la elaboración de los censos, en particular el recuento del censo de 1890. Laboraba en su “máquina de censos” mientras trabajaba como instructor en el Massachusets Institut of Technology (MIT), al mismo tiempo que también estaba empleado en la oficina de patentes de Estados Unidos. Antes de ingresar al MIT, se relacionó con el coronel John Shaw Billings, director de estadística para el censo. Billings estaba convencido de que la información sobre cada ciudadano de Estados Unidos podría registrase en una tarjeta perforada, y esto facilitaría el recuento de la información. Herman Hollerith aplicó el principio de las tarjetas perforadas para el almacenamiento de datos que ya había utilizado Babbage. Hollerith diseñó una tarjeta perforada del tamaño de un billete de un dólar de ese tiempo. Un tamaño conveniente para almacenarlo en gabinetes de archivo. Después de muchísimas pruebas, desarrolló una máquina que podría contar 10.000 apariciones de cualquier característica que fuera codificada en las tarjetas. La forma de procesar los datos según el sistema de Hollerith, era la siguiente: ¾ ¾ Las fichas de los datos se perforaban recogiendo la información correspondiente. Las fichas de los datos se colocaban en una máquina lectora o de tabular, y unas hileras de agujas presionaban contra ellas. ¾ Cuando una aguja pasaba a través de una perforación entraba en un recipiente de mercurio situado debajo, y cerraba un circuito, avanzando así un cuadrante correspondiente a una cuenta. ¾ ¾ Los totales acumulados en cada, categoría de información se veían directamente en los cuadrantes. Un cable eléctrico conectaba la lectora o la clasificadora y se abría la tapa de la caja correspondiente. Se podía volver a programar la clasificadora cambiando el hilo eléctrico de los relees que abrían las tapas, y así se podían volver a agrupar los datos en subcategorías. Más tarde, las fichas se clasificaron automáticamente pero para la división en subcategorías tenían que volver a pasar por la clasificadora. El equipo de Hollerith derrotó a otros dos contendientes y fue escogido por el comité encargado del censo para realizar la tabulación de 1890. El equipo que Hollerith rentó al gobierno de Estados Unidos podía leer entre 50 y 80 tarjetas por minuto, y tomó poco más de dos años para considerar los 62.6 millones de habitantes de aquella época. ETSII – Dpto. Tecnología Electrónica Página: 7 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR La IBM Luego del éxito de Hollerith en el censo norteamericano, varias naciones incluyendo Austria, Canadá y Rusia consideraron el uso de la máquina para los censos y Hollerith comenzó a rentar su sistema. En 1896 fundó la Tabulating Machine Company. Esta compañía se componía en su estructura básica del financiamiento de una persona adinerada, Thomas J. Watson, Sr. quien suplía los recursos necesarios para la construcción de las máquinas tabuladoras; y del ingenio de Herman Hollerith para construir las máquinas. Con el tiempo surgieron problemas debido a que mientras Hollerith insistía en desarrollar nuevos modelos, Thomas Watson estaba más interesado en incrementar la producción del modelo existente. Estas diferencias desembocaron en la venta de los derechos de la compañía por parte de Hollerith a Thomas Watson en 1912 y este último fusionó la compañía con un consorcio naciente del cual nacería posteriormente la International Business Machine – IBM. En 1937, se puso en marcha el programa de Seguridad Social en Estados Unidos, que fue la mayor operación de proceso de datos realizada hasta entonces. Hicieron falta 415 máquinas IBM para perforar, clasificar, verificar y archivar medio millón de personas. Konrad Zuse Una persona poco conocida pero con un gran aporte al avance de las computadoras es sin duda alguna, Konrad Zuse. Si bien sus conocimientos pasaron desapercibidos para el oeste debido a la guerra que se aproximaba a Europa en los años 1936 en adelante, es de notarse que este hombre por sí solo logró construir la primera computadora binaria del mundo, desarrollar un sistema binario basado en el principio del “Sí / No” o de “Abierto / Cerrado” y la primera computadora electromecánica digital controlada por programación. Todo esto lo hizo iniciando desde cero, es decir, para el tiempo en que Konrad Zuse emprendió la difícil tarea de construir su computadora no sabía de los acontecimientos que se sucedían a su alrededor en este sentido, tanto así que ni siquiera sabía de la existencia de Charles Babbage y sus teorías. Nacido el 22 de junio de 1910 en Berlín, Alemania. En 1927 Konrad Zuse ingresa en la Universidad Técnica de Berlín graduándose de ingeniero civil en 1935. Inicia su carrera como ingeniero de diseño en la industria aeronáutica. Para este tiempo Konrad Zuse empezó a trabajar en su computadora, la Z1 en 1936. A este punto la industria de la computación se limitaba a ciertas calculadoras mecánicas y estaban orientadas básicamente al comercio, esto implica que los matemáticos y los ingenieros tenían que construir cada uno sus propias computadoras independientemente el uno del otro y Zuse, no era la excepción. El problema de Zuse consistía en que para los diseños de aviones requerían extensos cálculos matemáticos que deberían de hacerse una y otra vez de acuerdo a las variables que se suministraran. De esta manera la intención de Zuse era construir una computadora que fuera capaz de realizar una gran cantidad de complejos cálculos matemáticos y guardarlos en una memoria para referencias futuras. Zuse construyó su primera computadora en 1938 aunque tenía algunas fallas. Más tarde la modificó y excluyó de ellas los primeros defectos y la llamó la Z2. Konrad trató inútilmente de persuadir al gobierno nazi de las ventajas de su invento. La Z3 se terminó de construir en 1941. Sin embargo, ninguna de estas máquinas sobrevivieron a la II guerra mundial con excepción de la Z4, construida años más tarde en Austria. ETSII – Dpto. Tecnología Electrónica Página: 8 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR La Mark-I y La ABC En 1937, Howard Aiken, profesor de Harvard, se fijó la meta de construir una máquina calculadora automática que combinara la tecnología eléctrica y mecánica con las técnicas de tarjetas perforadas de Hollerith. Con la ayuda de estudiantes de postgrado e ingenieros de la IBM, el proyecto se completó en 1944. El aparato terminado se denominó la computadora digital Mark I. Las operaciones internas se controlaban automáticamente con relevadores electromagnéticos, y los contadores aritméticos eran mecánicos; así, la Mark I era una computadora electromecánica. En muchos aspectos era el sueño de Babbage hecho realidad. El primer prototipo de computadora electrónica se concibió en el invierno de 1937-1938 por el doctor John Vincen Atanasoff, profesor de física y matemática en el Iowa State College. Como ninguna de las calculadoras disponibles en ese entonces era adecuada par sus necesidades, Atanasoff decidió construir la suya. Empleando conceptos de diseño que cristalizaron en su mente a altas horas de una noche de invierno en un bar a al orilla de la carretera en Illinois, Atanasoff formó un equipo con Clifford Berry, su asistente de postgrado, y comenzó a construir la primera computadora electrónica, ABC (Atanasoff-Berry Computer). La ABC empleaba bulbos al vacío para almacenar datos y efectuar operaciones aritméticas y lógicas. Durante 1940 y 1941 Atanasoff y Berry se reunieron con John W. Mauchly y le mostraron su trabajo. Mauchly, que trabajaba en la School of Electrical Engineering de la Universidad de Pennsylvania, comenzó a pensar en la forma de construir una computadora de aplicación general (la ABC se diseñó con el objetivo específico de resolver sistemas de ecuaciones simultáneas). Mauchly formó un equipo con J. Presper Eckert Jr., estudiante de postgrado de ingeniería en la Moore School, para organizar la construcción de ENIAC a principios de la década de 1940. Electronic Numeric Integrator And Calculator - ENIAC Fue la primera computadora electrónica de aplicación general que entró en funcionamiento. Financiada por el ejército de Estados Unidos, se construyó en la Moore School como proyecto secreto durante la Segunda Guerra Mundial debido a que el ejército se interesaba en la preparación rápida de tablas de trayectorias de proyectiles. La ENIAC, con 30 toneladas de peso, llenaba un cuarto de 6 m x 12 m, contenía 18,000 bulbos, y podría realizar 300 multiplicaciones por segundo y cálculos matemáticos 1,000 veces más rápido que cualquier máquina sumadora de su tiempo. Este gigante tenía que programarse manualmente conectándola a tres tableros que contenían más de 6,000 interruptores. Ingresar un nuevo programa era un proceso muy tedioso que requería días o incluso semanas. Las instrucciones de operación de esta computadora no se almacenaban internamente más bien se introducían por medio de tableros de clavijas e interruptores localizados en el exterior. El ejército utilizó la ENIAC hasta 1955. ETSII – Dpto. Tecnología Electrónica Página: 9 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR John Von Newman En 1945, John Von Newman, que había trabajado con J. Presper Eckert y John Mauchly en la universidad de Pennsylvania, publicó un artículo acerca del almacenamiento de programas que promueve el paso decisivo hacia la mecanización del tratamiento digital de la información, con la invención de dos nuevos conceptos: (1) El programa registrado: Las máquinas de relés de la época poseían elementos de memoria capaces de conservar en el curso del tratamiento resultados parciales con vistas a su utilización posterior. Von Neumann tuvo la idea de utilizar las memorias del calculador para almacenar el programa (las instrucciones para la computadora así como los datos que se manipulara): de ahí el nombre de máquina de programa registrado, que se dio al nuevo tipo de calculador. En lugar de ejecutar las operaciones al compás de su lectura en una cinta perforada, como en las máquinas de programa exterior, la nueva máquina supone almacenado en memoria el programa previamente a la ejecución de las operaciones. Esta es una idea importante porque el sistema de numeración binario utiliza únicamente dos dígitos (0 y 1) en vez de los 10 dígitos del sistema decimal con el que todo mundo está familiarizado. Dado que los componentes electrónicos están normalmente en uno de dos estados (encendido o apagado), el concepto binario simplificó el diseño del equipo. (2) La ruptura de secuencia. La máquina de programa exterior necesitaba de la intervención humana cada vez que se planteaba una toma de decisión, en otras palabras que el tratamiento consiguiente dependía de los resultados que iban obteniéndose. En base a las nuevas posibilidades de la técnica de programa registrado, Von Neumann concibió la idea de hacer automáticas las operaciones de decisión lógica, dotando a la máquina de una instrucción llamada salto condicional o también ruptura condicional de secuencia. Según el valor de un resultado ya obtenido, positivo o negativo por ejemplo, la máquina ejecutaría una u otra parte del programa. En consecuencia, nos referimos a ellos como máquinas del tipo Von Neumann o máquinas de registros, para distinguirlos de otros tipos tales como las máquinas de pilas. Casi todos los ordenadores actuales funcionan de acuerdo a este principio. Obviamente toda la computación y comunicación realizada con mecanismos mecánicos o electromecánicos estaban muy limitados en velocidad y escalabilidad, estas limitaciones se vieron rotas gracias a los componentes electrónicos por sus prestaciones y coste. La primera computadora en usar el citado concepto fue la llamada EDVAC (Electronic Discrete-Variable Automatic Computer), desarrollada por Von Newman, Eckert y Mauchly. Los programas almacenados dieron a las computadoras una flexibilidad y confiabilidad tremendas, haciéndolas más rápidas y menos sujetas a errores que los programas mecánicos. Una computadora con capacidad de programa almacenado podría ser utilizada para varias aplicaciones tan solo cargando y ejecutando el programa apropiado. Los Intérpretes Hasta ese punto, los programas y datos podrían ser ingresados en la computadora sólo con la notación binaria, que es el único código que las computadoras entienden. El siguiente desarrollo importante en el diseño de las computadoras fueron los programas intérpretes, que permitían a las personas comunicarse con las computadoras utilizando medios distintos a los números binarios. En 1952, Grace Murray Hopper una oficial de la Marina de Estados Unidos, desarrolló el primer compilador, un programa que puede traducir enunciados parecidos al inglés en un código binario comprensible por la máquina. Más tarde, desarrolló el llamado COBOL (Common Business Oriented Language), un proyecto financiado por compañías privadas y organismos educativos, junto con el gobierno federal durante la última parte de los años 50. COBOL permitía que un programa de computadora escrito para una máquina en especial, pudiera correrse en otras máquinas sin tener que recodificarse. De pronto, los programas se transportaban fácilmente, y el mundo de los negocios comenzó a aceptar a las computadoras con entusiasmo. ETSII – Dpto. Tecnología Electrónica Página: 10 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Capitulo 1.2.- LAS GENERACIONES Hasta la aparición y desarrollo de la Electrónica se puede afirmar que no existieron computadores tal como hoy se les considera. A partir de ese momento (1945 / 50), la historia de los computadores quedó íntimamente ligada a la de la Electrónica y las etapas que han ido cubriendo aquéllos, también llamadas generaciones, se han basado en los avances tecnológicos de la Electrónica. La estructura básica del procesador central ha sufrido una evolución que puede contemplarse en 5 generaciones de ordenadores sucesivas muy relacionadas con la tecnología de fabricación de sus componentes electrónicos. Las 3 primeras generaciones tienes una duración aproximada de 10 años. La 4 generación tienen una duración de unos 15 años. La 5 generación tiene en consideración los procesadores y las memorias con más de 1 millón de transistores en 1 solo chip de silicio. ETSII – Dpto. Tecnología Electrónica Página: 11 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Capitulo 1.3.- INFLUENCIA DE LA TECNOLOGIA EN LA EVOLUCION DE LA ESTRUCTURA BASICA DE LOS COMPUTADORES Primera etapa Los primeros computadores se construyeron siguiendo dos principios: a) El modelo propuesto por von Neumann, que incluía el concepto de programa almacenado y el de la ruptura de la secuencia en el programa. b) La tecnología electrónica de la época, que hacía uso de las válvulas de vacío, componentes voluminosos, caros, de elevado consumo, gran disipación de calor y una limitada vida de funcionamiento. Las memorias son de contactores interconectados por cables. La Unidad de Control extrae la instrucción de la memoria principal, la interpreta y efectúa las siguientes operaciones: a) Establece el conexionado eléctrico de la ALU. b) Extrae los datos de la memoria. c) Ordena la ejecución a la ALU. d) Almacena el resultado en la memoria. La Unidad Aritmético-Lógica o ALU es el bloque operativo que desarrolla todas las posibles funciones aritméticas y lógicas. Tanto la lógica de control como la memoria, estaban construidas con válvulas de vacío con lo que la velocidad de funcionamiento de ambas secciones era similar. La sencillez de la UCP y la escasez de registros internos de trabajo imponían una constante transferencia con la memoria empleando un conjunto reducido y básico de instrucciones máquina. ETSII – Dpto. Tecnología Electrónica Página: 12 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Segunda etapa La 2ª generación se caracteriza por el uso de transistores discretos, diodos y memorias de núcleos de ferrita interconectados por circuitos impresos, en esta etapa se produce un distanciamiento entre la tecnología usada en la construcción de la Unidad de Control y en la memoria principal. Los circuitos integrados de pequeña y media escala de integración (SSI y MSI) se usan para la construcción de la UCP, pero todavía no se han alcanzado cotas interesantes en la densidad de integración por lo que en la sección de la memoria principal se aplican otras tecnologías, como los núcleos de ferrita cuyos tiempos de acceso eran elevados. La velocidad de la memoria principal es mucho menor que la de la UCP (unas 10 veces), lo que provoca largos períodos de inactividad en la UCP, mientras se accedía a memoria, en los computadores de esta etapa. En esta época las máquinas comienzan a soportar lenguajes de alto nivel, como el FORTRAN y el COBOL, que tenían que ser traducidos a lenguaje máquina por compiladores, antes de ser ejecutados. En un intento de simplificar la compilación o traducción, se propició una potenciación de las instrucciones máquina para asemejarlas a las de alto nivel. Surgieron juegos de instrucciones complejos, en los que cada instrucción equivalía a varias operaciones simples, llamadas operaciones elementales, así se evitaban muchos accesos a la memoria principal, al mismo tiempo que se sacaba el máximo rendimiento de la rápida UCP. A este tipo de computadores se les denomina CISC (Computadores de juego de Instrucciones Complejo). En muchos computadores la UCP pasó a contener a la Memoria de Control, que se trataba de una rapidísima memoria en la que se almacenaban las operaciones elementales correspondientes a cada instrucción compleja o macrocódigo, llamándose microinstrucción a cada una de las posiciones de esta Memoria de Control. Se incrementa el proceso de decodificación de la macroinstrucción, pero se reduce el número de accesos a la memoria principal. Con este sistema se intentaba paliar el desfase de velocidades entre la UCP y la memoria principal. ETSII – Dpto. Tecnología Electrónica Página: 13 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR En esta situación el computador quedaba limitado a la velocidad de la Memoria de Control, que, si bien se construía con semiconductores, con los que era mucho más rápida que la memoria principal, no permitía alcanzar las mismas velocidades que la lógica cableada. En los computadores CISC microprogramados hubo un intercambio, mediante la Memoria de Control, entre la lógica cableada de las instrucciones simples y la lógica programada de las complejas. Así, se resolvía el problema derivado de las distintas velocidades entre las dos secciones principales del procesador. El número de instrucciones complejas de los CISC sólo está limitado por la capacidad de la Memoria de Control. ETSII – Dpto. Tecnología Electrónica Página: 14 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Tercera etapa La 3ª generación se caracteriza por el empleo de circuitos integrados (IC) para la unidad aritmético-lógica (ALU) y memorias, se comienza con SSI ( Small Scale Integration) para concluir con MSI ( Médium Scale Integration). Aparece la memoria cache ultrarrápida, del tipo tampón, que se encarga de guardar la información de uso más frecuente de la memoria principal, para disminuir el número de accesos a esta última. Estas memorias equilibran la diferencia de velocidades entre la UCP y la memoria principal. Como se observa en la figura, la Unidad de Control se alimenta desde la memoria cache, o bien, cuando la información que necesita no está en ella, directamente desde la memoria principal. El contenido que guarda la cache está optimizado para que sea el de más uso, consiguiendo velocidades de 5 a 10 veces mayores que la memoria principal. Los computadores con memoria cache intermedia poseen, una UCP que, al tener que decodificar instrucciones complejas, tardan más en esta función que en el acceso a la memoria, por lo que este tipo de instrucción deja de parecer tan interesante. Para mejorar el diseño de los computadores se pasó a realizar un análisis de lo que sucedía con los programas en general y se comprobó: 1. 2. 3. 4. Un mismo programa escrito en lenguaje de alto nivel, tenía muchas posibles traducciones a lenguaje máquina. Los diseñadores de los compiladores empleaban conjuntos "reducidos" de instrucciones máquina, Ciertas macroinstrucciones específicas apenas se empleaban. Aproximadamente el 50% del tiempo lo invierte la UCP en ejecutar instrucciones simples del tipo: CARGA, ALMACENAMIENTO y BIFURCACION. ETSII – Dpto. Tecnología Electrónica Página: 15 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR La frecuencia de utilización de las instrucciones máquina se puede analizar desde dos aspectos: a) Análisis estático. Cuando se estudian los Iistados de los programas y las instrucciones que aparecen en ellos. b) Análisis dinámico. Se tienen en cuenta las instrucciones que se van realizando en la ejecución de los programas, no las que aparecen en los listados. Téngase en cuenta que una instrucción de bifurcación condicional de un bucle, aunque sólo aparezca una vez en el listado del programa, se ejecuta muchas veces. Una conclusión generalizada es que la mitad de las instrucciones máquina se usan menos del 2%, por lo que se podían eliminar sin afectar, prácticamente, al rendimiento. Dichas instrucciones sólo son eficaces en aplicaciones específicas. Cuarta etapa La 4ª generación se caracteriza por el empleo de LSI y VLSI y memorias de semiconductores de alta velocidad. El vertiginoso desarrollo tecnológico de los circuitos integrados consiguió alcanzar la "Alta Escala de Integración" (LSI), que permitía la fabricación de memorias electrónicas rápidas y de cierta capacidad. Con el fin de mejorar la velocidad de la UCP y equilibrarla con la de la memoria cache, se han adoptado los siguientes criterios en el diseño de la arquitectura de los computadores: 1. Eliminación de la microcodificación. Todas las instrucciones serían del tipo elemental, no existiendo instrucciones complejas. 2. Reducción del tiempo del ciclo máquina, como consecuencia de la simplificación de las instrucciones. 3. Interpretación directa de las instrucciones por el hardware y ejecución de cada una de ellas en un solo ciclo máquina. 4. Selección del mínimo número de instrucciones simples. Con este nuevo enfoque surgieron los computadores RISC, Computadores de Conjuntos de Instrucciones Reducidos cuya arquitectura básica respondía al diagrama inicial, aunque con la inclusión de una memoria cache. ETSII – Dpto. Tecnología Electrónica Página: 16 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Los computadores RISC sólo disponen de las instrucciones máquina más importantes y usadas, que, generalmente, suelen ser menos de 50. Como, por otra parte, son sencillas y se llevan a cabo mediante lógica cableada, y no mediante microinstrucciones almacenadas, se pueden ejecutar en un ciclo máquina. En este tipo de computadores se ha incrementado el número de registros de propósito general para evitar accesos a memoria y ayudar a los compiladores a analizar los datos y controlar los flujos de forma óptima al conocerse las variables más usadas que se han asignado a los registros. Las instrucciones RISC tienen normalizados tanto su formato como su longitud, lo que favorece el funcionamiento segmentado o pipe-Iine, al estar ubicados todos sus campos en sitios determinados. Quinta etapa La 5ª generación se basa en el uso de procesadores de muy alta densidad y alta velocidad y memorias en tecnologías de muy alta densidad y velocidad. Todo esto es gracias a la disminución de la escala de integración a nivel de chip con la microelectrónica y reducción del voltaje de trabajo a fin de disminuir al máximo posible el desprendimiento de calor, verdadero enemigo en los incrementos de velocidad de trabajo de los procesadores y en menor medida de las memorias. En el estado de la computación actual, los modernos ordenadores vienen equipados con un hardware potentísimo y paquetes de software muy sofisticados, pero en su comienzo la tecnología de computación aunque prometía mucho no dejaba sospechar el tremendo avance experimentado en tan poco tiempo. ETSII – Dpto. Tecnología Electrónica Página: 17 / 39 MSA Sistemas de Multiprocesamiento Generación HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Tecnología y Arquitectura Software y Aplicaciones Sistemas representativos Primera generación ( 1945 Æ 1954 ) Tubos de vació y memorias de contactos, 1 CPU por ordenador y unidad aritmético lógica. 1 CPU con Aritmética de punto fijo. Mono-usuario. Lenguajes Maquina y ensamblador, sin subrutinas linkables. CPU interviene en gestión memoria y I/O. Princeton IAS Æ 1946 ENYAC Æ 1950 IBM 701 Æ 1953 Segunda generación ( 1955 Æ 1964 ) Transistores discretos en CPU y Memorias de núcleos de ferrita. Unidad aritmético lógica en coma flotante, procesos de I/O, acceso a memoria multiplexado. Discos intercambiables. HLL usados con compiladores (Cobol y Fortran). Aparece el ALGOL y PL/1. Librerías de subrutinas y Monitores de proceso batch IBM 7070 Univac LARC Æ 1959 IBM 7030 Æ 1962 CDC Æ 60s Tercera generación ( 1965 Æ 1974 ) IC de SSI y MSI Æ Hasta 100 componentes. IC multicapas Memoria Cache y Pipeline SO de Multiprogramación y Tiempo compartido. HLL estructurados : Basic y Pascal Aplicaciones de Multiusuario. Interrupciones con niveles de prioridad. Comienzan los sistemas de memoria virtual paginada. IBM 360 / 370 series CDC 6600 / 7600 series TI-ASC PDP 8 y 11 de DIGITAL Cuarta generación ( 1975 Æ 1990) LSI + VLSI y memorias de semiconductores. Microprocesador SO Multiprocesadores Lenguajes, compiladores y entornos de procesamiento paralelo. Quinta generación ( 1991 – presente) Procesadores y Memorias de ULSI y VHSIC Arquitecturas escalables. MPP – Massively Parallel Procesing Procesamiento heterogéneo VAX 9000 CRAY X-MP IBM 3090 VF BBM TC-2000 Fujitsu VPP 500 Cray MPP TMC – CM5 Intel Paragon 1) Supercomputadores de altísima velocidad. 2) Computadores de funciones inteligentes. ETSII – Dpto. Tecnología Electrónica Página: 18 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Capitulo 1.4.- PRIMERA GENERACION (1938-1952) Como los radiorreceptores del mismo tipo, esas computadoras de la primera generación emplearon válvulas para procesar información, mucho más grandes y generaban más calor que los modelos contemporáneos. Los operadores ingresaban los datos y programas en código especial por medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor que giraba rápidamente, sobre el cual un dispositivo de lectura / escritura colocaba marcas magnéticas. J. Presper Eckert y John W. Mauchly contribuyeron al desarrollo de computadoras de la primera generación formando una compañía privada, y construyendo UNIVAC 1, que el comité del censo utilizó para evaluar el de 1950. La Interrnational Business Machine (IBM), que vendía equipos de tarjetas perforadas y no había logrado el contrato para el censo de 1950 comenzó a construir computadoras electrónicas, y rápidamente se colocó como fuerte contendiente en el mercado. Aunque caras y de uso limitado, las computadoras fueron aceptadas rápidamente por las compañías privadas y el gobierno. A la mitad de los años 50, IBM y Remington Rand, que habían comprado la compañía de Eckert y Mauchly, se consolidaban como líderes en la fabricación de computadoras. Sus clientes incluían a las empresas Sylvania, General Electric, y el gobierno federal. La IBM 650 entró en servicio por primera vez en Boston a fines de 1954. Siendo una máquina relativamente barata para aquella época, tuvo gran aceptación, y dio a la IBM liderazgo en la producción de computadoras en 1955. Desde 1956, la IBM ha sido el fabricante de computadoras más grande del mundo. En el período de 1954 a 1959, muchos negocios adquirieron computadoras para procesar datos, aun cuando estas máquinas estaban diseñadas para aplicaciones científicas. Los no científicos solían considerar la computadora como un instrumento de contabilidad y las primeras aplicaciones de negocios se diseñaron para procesar tareas rutinarias como son las nóminas. Se subestimó el potencial real de las computadoras y muchas fueron adquiridas por el prestigio que conferían a la organización. Tecnología: Válvulas de vacío, eran componentes voluminosos, caros, de elevado consumo, gran disipación de calor y una limitada vida de funcionamiento. Arquitectura y Software: Fueron construidos con CPU - Unidad de Proceso Central simples que proporcionaba aritmética serie en punto fijo usando contador de programas y acumulador. Ordenadores mono-usuario. La CPU se encargaba de la gestión de los accesos a memoria y operaciones de I/O. Se evoluciona a la programación en ensamblador (para ayudar al programador), sin subrutinas linkables Desarrollo histórico: ¾ Mark I. Un dispositivo electromecánico, basado en relés, fabricado para la Marina de EU por Howard Aitken e ingenieros de la IBM. La ultima en su clase. Sustituida por la electrónica. ETSII – Dpto. Tecnología Electrónica Página: 19 / 39 MSA Sistemas de Multiprocesamiento ¾ HISTORIA Y EVOLUCIÓN DEL COMPUTADOR el Colossus. Durante la II Guerra Mundial (1939-1945), un equipo de científicos y matemáticos que trabajaban en Bletchley Park, al norte de Londres, crearon lo que se consideró el primer ordenador digital totalmente electrónico. Hacia diciembre de 1943 el Colossus, que incorporaba 1.500 válvulas o tubos de vacío, era ya operativo. Descifrador de códigos de propósito especial fabricado por los británicos. Fue utilizado por el equipo dirigido por Alan Turing para descodificar los mensajes de radio cifrados de los alemanes. En 1939 y con independencia de este proyecto, John Atanasoff y Clifford Berry ya habían construido un prototipo de máquina electrónica en el Iowa State College (EEUU) ¾ ABC. Siglas de Atanasoff-Berry Computer, fabricada en la Univ. Estatal de Iowa. Conocida ahora como la primera computadora digital electrónica. ¾ Se considera el más famoso de los primeros computadores al ENIAC (1946) y como al primero de los fabricados con Electrónica Digital. El proyecto del ENIAC (Electronic Numerical Integrator and Calculador) fue dirigido por Eckert y Mauchy en la "Moore School Engineering" de la Universidad de Pensilvania. Constaba de unas 18.000 válvulas, 70.000 resistencias, 7.500 interruptores y consumía 100 kW, por lo que necesitaba ventilación forzada para disipar la gran cantidad de calor que producía. Fabricada para aplicaciones balísticas del Ejército de EU, era capaz de sumar, restar, multiplicar y dividir en decimal; tenía tres tipos de tablas de funciones y la entrada y salida de datos y resultados se realizaban mediante tarjetas perforadas. El procesador del ENIAC disponía en su estructura de 20 registros de 10 dígitos. Tenía una velocidad de varios cientos de multiplicaciones por minuto, pero su programa estaba conectado al procesador y debía ser modificado manualmente. ETSII – Dpto. Tecnología Electrónica Página: 20 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR ¾ UNIVAC I Primera computadora creada por una firma comercial pertenecientes a John W. Mauchly y J. Prespert Eckert. ¾ Manchester Mark I. Producida por la Universidad de Manchester; la primera computadora con "programa almacenado". Hasta ese momento, todas las computadoras tenían que ser reprogramadas mediante cambios en el alambrado. Esto fue un gran avance. ¾ EDVAC. Se construyó un sucesor del ENIAC con un almacenamiento de programa que estaba basado en los conceptos del matemático húngaro-estadounidense John von Neumann. Las instrucciones se almacenaban dentro de una llamada memoria, lo que liberaba al ordenador de las limitaciones de velocidad del lector de cinta de papel durante la ejecución y permitía resolver problemas sin necesidad de volver a conectarse al ordenador Dieron lugar al computador EDVAC en 1952. Dichos aspectos fueron: 1. Programa almacenado, en sustitución del programa "cableado" usado hasta entonces. Esto suponía mantener inalterable la organización física del computador para todas las aplicaciones. 2. Aritmética binarla codificada, en lugar de la decimal. Permitió simplificar enormemente los circuitos electrónicos encargados de realizar los cálculos. ¾ EDSAC Por otra parte, Wilkes construyó en 1949 el computador EDSAC para la Universidad de Cambridge, en el que se aportaba el concepto de memoria jerárquica en la ejecución de programas almacenados. ETSII – Dpto. Tecnología Electrónica Página: 21 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR ¾ Junto a un sin fin de máquinas de proceso que seguían el patrón de von Neumann y se orientaban al tratamiento de los cálculos científicos, también se comenzó en el MIT la construcción de un computador orientado a trabajar en tiempo real. Se trataba del WWI, presentado en 1951. ¾ Ordenador de IAS ( Institute for Avanced Studies) con diseño propuesto por John von Neuman, Arthur Burks y Herman Goldstine en Princeton en 1946. ¾ IBM 701, primer ordenador electrónico comercial con programa almacenado construido por IBM en 1953. Avances en el equipo físico: La memoria principal, que inicialmente estaba formada por registros a base de válvulas de vacío, fue reemplazada por sistemas de núcleos de ferrita, cuyo ciclo medio de acceso era de unos pocos microsegundos. Previamente, también se habían utilizado los "tubos de Williarns", que almacenaban 1.024 bits cada uno y tenían un tiempo de acceso de 25 us. Incluso, se llegaron a usar los tambores magnéticos. Como elementos de memoria secundaria, se comenzó a sustituir las tarjetas y cintas perforadas por tambores y cintas magnéticas. Se impulsó la arquitectura de von Neumann dirigiéndola hacia el empleo compartido de la memoria principal y los periféricos. También se introdujo la capacidad de interrumpir a la UCP y el control de interrupciones. Avances en el sistema lógico: Especialmente a partir de 1950, se mejoraron los aspectos relacionados con la lógica y la programación. Hasta entonces, sólo se había empleado el lenguaje máquina, lo que exigía excelentes programadores. Se evoluciona a la programación en ensamblador (para ayudar al programador), sin subrutinas linkables. Hubo intentos de mejora de los lenguajes ensambladores, macroensambladores y de alto nivel, pero el FORTRAN no estuvo disponible hasta 1957. Se introdujo el concepto de registros indexados, de gran valor en la simplificación de la programación. Modelos comerciales: El primer computador comercial fue el UNIVAC 1, construido para la oficina del censo de EE.UU. Diseñado por Eckert y Mauchly cuando abandonaron la Universidad de Pensilvania, se caracterizó por el empleo de cintas magnéticas. Al UNIVAC 1 le siguieron otros modelos, hasta llegar al UNIVAC 1103 en 1956, cuya circuitería le permitía operar en coma flotante y tenía capacidad para interrumpir los programas en curso. Se consideran modelos representativos de esta generación, además de los de UNIVAC, los de IBM. Las comerciales IBM 650, IBM 701, primer ordenador electrónico comercial con programa almacenado construido por IBM en 1953, al que siguieron el 704 y el 709. Otras compañías como Raytheon, Honeyweil y RCA, también se interesaron por el mercado de los computadores en esta época. ETSII – Dpto. Tecnología Electrónica Página: 22 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Capitulo 1.5.- SEGUNDA GENERACION (1953-1962) En 1947, tres científicos de los laboratorios Bell, John Bardeen, William Shockley y Walter Brattain, ganaron el premio Nóbel al inventar y desarrollar el transistor, que era más rápido, confiable y 200 veces más pequeño que un bulbo o tubo electrónico, y requería menos electricidad. El transistor hizo posible una nueva generación de computadoras, más rápidas, pequeñas y con menores necesidades de ventilación. Las computadoras de la segunda generación también utilizaban redes de núcleos magnéticos en lugar de tambores giratorios para el almacenamiento primario. Estos núcleos contenían pequeños anillos de material magnético, enlazados entre sí, en los cuales podían almacenarse datos e instrucciones. La escritura de programas de aplicación en lenguaje de máquina fue desplazada por el uso de lenguajes de programación de alto nivel. Los principales lenguajes de la época fueron FORTRAN para las tareas científicas y COBOL para los negocios. El COBOL, desarrollado durante la primera generación de computadoras, estaba ya disponible comercialmente. Los programas escritos para una computadora podrían transferirse a otra con un mínimo esfuerzo. El escribir un programa ya no requería entender plenamente el hardware de la computación. Las computadoras de la segunda generación eran sustancialmente más pequeñas y rápidas que las de bulbos, y se usaban para nuevas aplicaciones, como en los sistemas de reservación en líneas aéreas, control de tránsito aéreo, y simulaciones para uso general. Las empresas comenzaron a aplicar las computadoras a tareas de almacenamiento de registros, como manejo de inventaros, nómina y contabilidad. La Marina de Estados Unidos utilizó las computadoras de la segunda generación para crear el primer simulador de vuelo, Whirlwind. Al mismo tiempo que se desarrollaban los sistemas de la segunda generación se estaba creando una industria nueva, basada en la idea de integrar transistores y otros componentes para formar circuitos que pudieran colocarse en pequeños trozos de silicio. Una de las primeras compañías de esta industria fue Shockley Semiconductor, fundada en 1955 por William Shockley en su ciudad natal de Palo Alto, California. Algunos empleados de la compañía de Shockley se separaron más tarde para formar Fairchild Semiconductor, y a su vez gente de Fairchild Semiconductor formó otras varias compañías, incluyendo Intel Corporation. Dado que muchas de estas compañías estaban situadas en el valle de Santa Clara, cerca de la empresa de Shockley en Palo Alto, la gente empezó a referirse a la región como el valle del silicio (Silicon Valley). Tecnología: Esta generación está caracterizada, por el transistor, desarrollado en 1948 en los laboratorios Bell, siendo sus protagonistas Bardeen y Brattain. El transistor, al ser más pequeño, más barato y de menos consumo que la válvula, hizo a los computadores más asequibles en tamaño y precio. En 1954, dichos laboratorios construyeron el primer computador digital transistorizado, el TRADIC. Arquitectura y Software: Registro de índices en ensamblador, Aritmética en coma flotante, Memoria multiplexada, procesadores de I/O. Se emplean lenguajes de alto nivel HLL, como FORTRAN, COBOL, ALGOL, PL1. Se introducen los compilares, librerías de subrutinas y monitores de procesamiento batch (ejecución automática y secuencial de los programas de usuario, uno a uno). ETSII – Dpto. Tecnología Electrónica Página: 23 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Desarrollo histórico y modelos comerciales. El primer computador transistorizado de IBM data de 1960 y fue el modelo científico IBM 7070, al que siguieron los modelos IBM 7090, 7094. Para posibilitar el acercamiento de los pequeños clientes, IBM ofertó en 1961 el modelo 1401, con el que eran compatibles los computadores de la serie 200 de Honeyweil. IBM 7030 de 1962 con memorias de corrección de errores. Dentro de la gama de computadores científicos, los modelos 7090 y 7094 reemplazaron al 709. UNIVAC participó en esta generación con el modelo 1107, que sustituía al 1103. CDC 1604 construido en los 1960s A principios de 1960 UNIVAC e IBM disponían de dos supercomputadores en los que se habían incluido importantes mejoras arquitectónicas, aunque no tuvieron éxito comercial. Así, el LARC (Livermore Atomic Research Computer) de UNIVAC, del que sólo se fabricaron dos unidades, disponía de un procesador de Entradas y Salidas que operaba en paralelo con la UCP. El STREECH de IBM era capaz de adelantar la ejecución de instrucciones y de corregir errores. Otros eventos importantes de la segunda generación fueron: 1. El proyecto PILOT del "National Bureau of Standars" para diseño de un multiprocesador con CPU independiente y de aplicación específica. 2. El modelo D-825 de Burroughs, que se puede considerar como un verdadero multiprocesador. 3. El computador CDC 6600, construido por la empresa CDC y que constituyó uno de los logros más importantes de la época. 4. La presentación del modelo PDP-5 de Digital Equipment Corporation (DEC), que fue el precursor de los famosos miniordenadores PDP de la tercera generación. Avances en el equipo físico: Se introdujeron los canales de E/S adecuados para poder desarrollar operaciones en paralelo y de tipo asíncrono simultáneamente, bajo el control de la UCP. Se consolidó el empleo de nuevos dispositivos de memoria, como los núcleos de ferrita, los conjuntos de discos intercambiables, etc. A los sistemas que funcionaban en tiempo compartido se les permitió el manejo de dos bancos de memoria principal, que se seleccionaban bajo el control del programa en ejecución. Avances en el sistema lógico: El FORTRAN, lenguaje de alto nivel de carácter científico, que acababa de ser creado en la generación anterior, adquirió un fuerte impulso. La primera versión del COBOL, un lenguaje de alto nivel orientado a los negocios, surgió en 1960. Otro lenguaje de esta generación, especializado en el campo científico, fue el ALGOL. El PL/1 aparece como un lenguaje que intenta aprovechar las ventajas de los tres citados. Se extiende el uso del procesamiento en batch o por lotes, que consiste en la ejecución automática secuencial de los programas del usuario, uno a uno. ETSII – Dpto. Tecnología Electrónica Página: 24 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Capitulo 1.6.- TERCERA GENERACION (1963-1971) Las computadoras de la tercera generación emergieron con el desarrollo de los circuitos integrados en las cuales se colocan miles de componentes electrónicos, en una integración en miniatura. Las computadoras nuevamente se hicieron más pequeñas, más rápidas, desprendían menos calor y eran energéticamente más eficientes. Placa de Circuitos integrados Los sistemas de la segunda generación eran bastantes especializados. Se les diseñaba para procesar aplicaciones tanto científicas como no científicas, pero no se procuraba que funcionaran adecuadamente en los dos ambientes. Esta situación cambió cuando en 1964 cuando IBM anunció una tercera generación de equipo de cómputo: Su familia System 360 de macro computadoras. Cada uno de los procesadores de esta familia tenía un conjunto muy amplio de instrucciones internas que podía ejecutar. Algunas de esas instrucciones eran especialmente útiles en aplicaciones científicas, mientras que otras eran más apropiadas para procesamiento de archivos. De ese modo era posible utilizar la línea 360 de manera eficiente en los dos ambientes. Con la introducción del modelo 360, IBM capturó el 70% del mercado, dejando a RCA, General Electric y Xerox fuera del campo de las computadoras grandes. Sin embargo, la estandarización del modelo 360 permitió el crecimiento de los fabricantes de dispositivos de almacenamiento, cuyos periféricos eran compatibles con las series de IBM. Para evitar competir directamente con la IBM, Digital Equipment Corporation (DEC) redirigió sus esfuerzos hacia computadoras pequeñas. Mucho menos costosas de comprar y operar que las computadoras grandes, las mini computadoras se desarrollaron durante la segunda generación y se extendió su uso entre 1960 y 1970. En 1960, DEC introdujo la primera mini computadora, la PDP-1 y en 1969 tenía ya una línea de exitosas mini computadoras. La tecnología de los circuitos integrados también provocó la expansión de la industria del software. Los programas estándares fueron reescritos para trabajar en las nuevas máquinas de circuitos integrados, e incluso en máquinas todavía en fase de desarrollo. Esta compatibilidad hacia el futuro permitió a las compañías usar su software anticuado después de modernizar su hardware. ETSII – Dpto. Tecnología Electrónica Página: 25 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR La multiprogramación En el ambiente de computación centralizado de principios de los sesentas, los usuarios preparaban sus datos y los programas y después los llevaban al centro de cómputos para ser procesados. El centro de cómputo reunía todas estas tareas y las introducía por lotes a la computadora, a intervalos programados. El retraso inevitable que resultaba de este procesamiento por lotes era muy frustrante para algunos usuarios. Los retrasos eran demasiados irritantes para los estudiantes con tareas de programación, que a veces tenían que esperar varios días para localizar y corregir unos cuantos errores en sus programas. Para corregir esta situación John Kemeny y Thomas Kurtz, profesores de la Dartmouth College, decidieron llevar más lejos algunos conceptos de tiempo compartido que se habían desarrollado en el Instituto Tecnológico de Massachussetts (MIT). Tiempo compartido es un término que se emplea para describir un sistema de proceso que cuenta con varias estaciones independientes, de baja velocidad (relativamente), en líneas susceptibles de utilizarse en forma simultánea. Cada una de las estaciones proporciona al usuario acceso directo al computador central. Kemeny y Kurtz desarrollaron programas especiales que permitían al procesador conmutar entre las distintas estaciones de estudiantes y llevar a cabo una parte del trabajo en el segmento de tiempo asignado a cada una, hasta finalizar el trabajo. La intención era dar al estudiante la ilusión de que nadie más estaba utilizando la computadora. El BASIC Para mejorar el ambiente de cómputo interactivo que estaban creando, los profesores desarrollaron un lenguaje de programación fácil de aprender por parte de los estudiantes universitarios de todas las carreras. El objeto era que todos los estudiantes tuvieran un incentivo para utilizar con cierta frecuencia las estaciones de tiempo compartido. Este lenguaje – el BASIC – que representa las iniciales en inglés de “Código Simbólico de Instrucciones de Aplicación general para Principiantes” fue todo un éxito en Dartmouth en ambos aspectos. Dartmouth utilizaba una computadora General Electric y el sistema BASIC de tiempo compartido se implantó en este equipo con la ayuda de ingenieros de GE, a resultas del éxito del sistema de Dartmouth, General Electric y otros fabricantes ofrecieron instalaciones de tiempo compartido y el uso del lenguaje BASIC a sus clientes en todo Estados Unidos. El Unix y el Lenguaje C En 1969 se desarrollan en los laboratorios de AT&T Bell lo que sería el primer sistema operativo, el Unix. Antes de esto se requería que cada programador escribiera sus archivos en un tipo de formato que por lo general no era compatible con el de otro programador. Además, los programadores debían de preocuparse de tareas rutinarias como abrir archivos, cerrarlos, las colas de impresión, etc. Con la creación del sistema operativo esos pasos son encargados a la computadora misma, dando como resultado más tiempo al programador para ocuparse de los problemas reales. El Unix fue desarrollado en su mayor parte por Ken Thompson en una computadora DEC PDP-7, en un lenguaje también recién creado, el lenguaje C. El lenguaje C tiene la ventaja sobre los otros leguajes de programación, que es de muy bajo nivel, al punto en que se pueden escribir programas con la misma rapidez y potencia que los programas escritos en lenguaje ensamblador. Sin embargo, cada tipo de computadora tiene un tipo de lenguaje ensamblador diferente, debido a que el lenguaje C es un lenguaje de alto nivel (no tan alto como los otros), los programas escritos en C pueden se transportados a otros computadores con un mínimo de cambios en sus estructuras básicas. El Microprocesador A partir de 1965 cada año se duplicó el número promedio de componentes que se empacaban en una pastilla de silicio y este avance condujo a un suceso insólito: la creación de un microprocesador que podía colocarse en una sola pastilla. ETSII – Dpto. Tecnología Electrónica Página: 26 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Un microprocesador contiene todos los circuitos necesarios para realizar funciones aritméticas lógicas y de control. Se puede construir una unidad de proceso completa con un microprocesador, unas cuantas pastillas de almacenamiento primario adicionales y algunos circuitos de apoyo. El origen del microprocesador se remonta a finales de la década de 1960. En esta época, Víctor Poor, ingeniero en electrónica de la Datapoint Corporation, estaba trabajando en el diseño y desarrollo de computadoras de aplicación especial. Cada vez que se necesitaba un dispositivo diseñado a la medida, Poor y otros ingenieros iniciaban la labor de diseño desde cero. Esto le parecía a Poor un desperdicio considerable de tiempo. Lo mejor, razonaba Poor, sería colocar los elementos básicos de aritmética lógica y de control de una computadora en una sola pastilla de silicio. La pastilla podría producirse en grandes cantidades y después programarse de maneras diferentes para realizar tareas especiales. En 1969 Víctor Poor y Harry Pyle, otro joven ingeniero de la Datapoint, desarrollaron un modelo de pastilla microprocesadora. Dado que Datapoint Corporation no fabricaba componentes electrónicos, Poor llevó su modelo de “pastilla procesadora” a dos fabricantes de componentes, Texas Instruments e Intel Corporation, con la esperanza de que fabricaran la pastilla para Datapoint. Estas reuniones no produjeron decisiones inmediatas, pero los fabricantes de componentes estaban en libertad de utilizar el concepto de pastilla microprocesadora y lo hicieron. A finales de 1969, un ingeniero de Intel llamado Marcian “Ted” Hoff presentó sus ideas para el diseño de un microprocesador a los representantes de una compañía de calculadoras japonesas. En este tiempo las calculadoras se construían a partir de pastillas de circuitos especializadas que podían realizar únicamente una función. Pero la pastilla nueva de Hoff podía programarse para llevar a cabo varias funciones de cálculo especializadas. El cliente japonés aceptó las ideas de diseño y se empezó a trabajar con la disposición interna de los componentes de la pastilla. Este primer microprocesador, el Intel 4004, podía ejecutar únicamente algunas instrucciones, y sólo podía manipular cantidades diminutas de datos en un momento dado; pero para el otoño de 1971 Intel había producido una pastilla más poderosa, el 8008 y Texas Instruments entregaba ya un microprocesador. En 1974 Intel produjo un tercer microprocesador, el 8080 y quedaron establecidas las bases para el desarrollo de una computadora personal (PC). Tecnología: Los computadores de esta generación se construyen con circuitos integrados, que son pastillas que contienen numerosos componentes discretos (transistores, diodos, resistencias y condensadores) interconectados y formando bloques funcionales. En esta época se utilizan los circuitos integrados de baja (SSI) y media (MSI) escala de integración. Los primeros contienen un máximo de 12 puertas lógicas y los segundos, hasta 100. Es decir, un número de transistores inferior a 1.000. Arquitectura y Software: Memorias cache (memoria intermedia de alta velocidad en el procesador) y Pipelining (es el proceso por el cual mientras una instrucción es ejecutada, otra esta siendo interpretada y una tercera esta siendo leída) se introdujeron para compensar las diferencias de velocidad entre la CPU y la memoria principal. La idea de Multiprogramación se introdujo para Inter-relacionar CPU y actividades de I/O de los programas de usuario. Es el punto de partida para el desarrollo de los SO de Tiempo Compartido usando memoria virtual con sistemas de Compartición o multiplexado de los recursos de la maquina. Desarrollo histórico y modelos comerciales: En el campo de los computadores comerciales, la tercera generación está marcada con la aparición de los sistemas IBM 360 / 370 series y diversos modelos compatibles, que disponían el mismo juego de instrucciones máquina. Aparecen las familias de computadores, esto es, computadores de distinta potencia y precio que tienen la misma arquitectura y son, por tanto, totalmente compatibles. ETSII – Dpto. Tecnología Electrónica Página: 27 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Se produce la explosión de los minicomputadores, computadores de recursos limitados, pero muy asequibles. Los modelos PDP-8 y PDP-11 de DEC se hicieron populares en todo el mundo. Dentro de los supercomputadores, destinados a ciertas aplicaciones muy restrictivas y exigentes, CDC 6600 / 7600 series, CDC presenta en 1969 el modelo 7600, de amplia resonancia. Texas Instrument ASC ( Avanced Scientific Computer) Avances en el equipo físico: El conexionado de los circuitos integrados sobre placas o tarjetas de circuito impreso (PCB); simplifica y potencia la configuración física del computador. La memoria de núcleos de ferrita empieza a ser desplazada por las memorias electrónicas en circuitos integrados. Se introducen las memorias ultrarrápidas o cache, que actúan como memorias intermedias entre la Unidad de Control y la memoria principal aumentando la velocidad de búsqueda de las instrucciones. Se acepta para las UCP una organización basada en un conjunto simétrico de registros de propósito general. Se refuerzan los tipos de interrupciones añadiendo niveles de prioridad y se inicia el empleo de los sistemas de memoria virtual paginada. Avances en el sistema lógico: Los lenguajes de alto nivel apenas se renuevan y sólo la aparición de versiones derivadas, como sucede con el lenguaje BASIC o el PASCAL, son los acontecimientos más señalados en este tema. Por el contrarío, los sistemas operativos dan un paso gigantesco estructurándose bajo el esquema de la multiprogramación, que permite la ejecución simultánea de varios segmentos de programas solapados con operaciones de E/S. Se presta una especial atención al control automático de sistemas jerárquicos de memoria virtual y a la compartición de los recursos entre los usuarios con técnicas de protección. A finales de la década de los 60 ya existen en el mercado sistemas que funcionan en tiempo compartido. ETSII – Dpto. Tecnología Electrónica Página: 28 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Capitulo 1.7.- CUARTA GENERACION (1972-1987) Dos mejoras en la tecnología de las computadoras marcan el inicio de la cuarta generación: ¾ el reemplazo de las memorias con núcleos magnéticos, por las de chips de silicio, y ¾ la colocación de muchos más componentes en un chip. Intel llevó esta idea a la conclusión lógica creando el microprocesador, un chip que contiene todos los circuitos requeridos para hacerlo programable. El tamaño reducido del microprocesador de chips hizo posible la creación de las computadoras personales (PC). Un chip puede contener dos de los componentes del CPU, la unidad de control y la unidad aritmético-lógica, un tercer componente, la memoria primaria (también en chips), se maneja por separado. Las computadoras personales (PC’s) El primer anuncio de una computadora personal construida a partir de un microprocesador apareció en el número de marzo de 1974 de QST, una revista para aficionados a la radio. El producto que se anunciaba era la Scelbi-8H, y sólo se vendieron cerca de 200 de estos procesadores. Pisándoles los talones a la Schelbi-8H venía la Altair 8800. La Altair, diseñada con base en una pastilla de Intel por una compañía de Alburquerque, Nuevo México, llamada MITS (Micro Intrumentation Telemetry Systems), se ofrecía originalmente en forma de un equipo para ensamblar por menos de 400 dólares. El artículo principal del número de enero de 1975 de la revista Popular Electronics trataba de esta máquina y es posible que dicho artículo haya iniciado la explosión de las computadoras personales. Para 1972, dos jóvenes programadores, Bill Gates y Paul Allen habían fundado una empresa llamada Traf-OData, en esta fecha Gates y Allen estaban completando un programa que podía traducir instrucciones escritas en BASIC a los códigos de lenguaje de máquina que requerían los procesadores de Intel. La Traf-O-Data se convirtió en Microsoft Corporation para vender el programa de BASIC Gates-Allen y la licencia del Microsoft BASIC se concedió a MITS a finales de 1975. En la primavera de 1976 un joven técnico de la Hewlett-Packard llamado Steve Wozniak compró un microprocesador de MOS Technology y se propuso construir una computadora a partir de él. Esta computadora, la Apple I, se exhibió en el Homebrew Computer Club (club de computadoras hechas en casa) en el Valle del Silicio. Wozniak ofreció su diseño a Hewlett-Packard, que no se interesó por él. Un amigo de Wozniak, Steve Jobs, le propuso que formaran una compañía para vender la Apple. Sólo se construyeron cerca de 200 Apple I, pero a fines del verano Wozniak ya estaba trabajando sobre el diseño de la Apple II. Con la ayuda financiera y administrativa de Mike Markkula, antiguo ingeniero y ejecutivo de mercadeo de Intel, Apple se convirtió repentinamente en un competidor importante en la industria de las computadoras. A finales de 1977, las máquinas que dominaban el mercado eran la Apple II, el modelo TRS-80 de la Radio Shack Division de la Tandy Corporation y las docenas de otras marcas que estaban diseñadas para seguir los conceptos de interconexión eléctrica utilizados en la computadora Altair. Como era de esperarse, la mayor parte de los programas de aplicación escritos antes de 1980 estaban diseñados para utilizarse con estas computadoras. En el otoño de 1978 Personal Software presenta VisiCalc, que juega un papel importante en la revolución de las microcomputadoras. Esta popular hoja de cálculo facilito el análisis numérico en el escritorio y permitió a cualquier persona escribir lo que equivalía a programas sin tener que aprender un lenguaje de programación complejo. El programa era realmente una “calculadora visible” y su nombre es la asociación abreviada de esas palabras. La idea de este programa surgió de Dan Bricklin, que en esa época era estudiante de la Harvard Business School. Bricklin estaba utilizando las columnas e hileras de unas hojas de papel de contabilidad para analizar problemas de planeación financiera. Pero se requerían cálculos interminables cada vez que se hacía una suposición financiera diferente. Bricklin pensó que si se sustituían las hojas de papel por un “pizarrón electrónico” y “gises electrónicos”, la computadora podría encargarse de manipular los números. Bricklin le pidió a un programador amigo suyo llamado Bob Frankston que le ayudara a convertir su idea en un producto comercial. Frankston agregó varias funciones más y escribió el primer programa para la Apple II. ETSII – Dpto. Tecnología Electrónica Página: 29 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR VisiCalc se convirtió en un enorme éxito y fue responsable por sí solo de la venta de miles de Apple, muchas computadoras Apple II fueron vendidas con el propósito exclusivo de ejecutar VisiCalc. A medida que aparecía una nueva computadora, aparecía un nuevo programa clónico de VisiCalc por ejemplo, SuperCalc para las computadoras CP/M, Lotus 1-2-3 para IBM, y Excel para Macintosh. A finales de los 70’s e inicio de los 80’s, las máquinas líderes en el ramo se estaban utilizando en todas partes: en los hogares, escuelas y lugares de trabajo. Además, al comenzar la década de 1980, compañías como Atari y Commodore estaban produciendo sistemas de bajo costo para utilizarse en los hogares y se introducía una nueva generación de modelos de escritorios más poderosos para emplearse en las escuelas y oficinas. IBM entró en el mercado con su familia de computadoras PC logrando enorme éxito, aparecieron en forma paralela compañías pequeñas que ofrecían equipos y programas nuevos. IBM introduce su primera PC basada en el Intel 8088. Microsoft negocia con IBM para proporcionar el sistema operativo, PC DOS 1.0. Se ha informado que el código original de DOS fue comprado por Microsoft a un programador de Seattle por US$75.000. En 1982 Lotus 1-2-3 reemplaza a VisiCalc y se convierte rápidamente en una de las aplicaciones mas exitosas. Apple intenta penetrar el mercado empresarial con la Lisa, pero la arquitectura cerrada (poca habilidad de añadir productos de otros fabricantes) dificulta su aceptación. "Los artífices de la computadora Apple": El cofundador de Apple Computer Steven Jobs (izquierda), el director ejecutivo John Sculley (centro) y el cofundador Stephen Wozniak (derecha) aparecen en la presentación de la computadora Apple IIc, en 1984, lanzada el mismo año que la revolucionaria computadora Macintosh. Los tres jugaron un papel fundamental en el desarrollo y comercialización de computadoras de uso y aprendizaje sencillos. ETSII – Dpto. Tecnología Electrónica Página: 30 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Cronología de las Computadoras Personales 1983: IBM debuta su IBM PC XT con un disco duro de 10MB. Compaq produce un sistema compatible con la PC, pero transportable. Kaypro ofrece un sistema similar, con el CRT integrado, pero basado en CP/M. Microsoft Word 1.0 llega al mercado con poca espectacularidad, pero demostrando el interés de Microsoft en el software de aplicaciones. 1984: IBM introduce la IBM PC AT, un sistema basado en el Intel 80286 con varias innovaciones, incluyendo un bus de expansión de 16 bits, un disco duro de 20 MB, y 512 K de RAM. Apple abandona la Lisa en favor de su nueva línea de computadoras personales, la popular Macintosh. 1985: Aparecen Microsoft Windows 1.0, Windows 2.03 y GEM de Digital Research, demostrando así que el mundo de la PC se ha dado cuenta de que las aplicaciones gráficas estilo Mac, como Aldus PageMaker, son muy superiores a las de DOS. 1986: Intel introduce el microprocesador de 32 bits 80386 y Compaq desarrolla rápidamente la primera computadora basada en el chip. IBM comienza a perder terreno frente a los fabricantes de sistemas clonicos. 1987: La Toshiba T1000, basada en el Intel 80C88, crea un nuevo estándar de miniaturización. IBM intenta recuperar el mercado de la PC lanzando la familia PS/2. Estas PCs están basadas en una arquitectura Micro Channel no estándar y nuevo sistema operativo llamado OS/2 (creado en colaboración con Microsoft). Aparece en el mercado WordPerfect 4.2, que se convierte en el procesador de texto mas exitoso hasta el momento. 1988: OS/2 1.1 añade una interfaz gráfica, llamada Administrador de Presentaciones, al sistema operativo de 16 bits de IBM. 1990: La avalancha de interfases gráficas continua con la salida de Windows 3.0. Dieciocho meses después, Microsoft saca al mercado de Windows 3.1. Miles de aplicaciones comienzan a emigrar de DOS a Windows. 1991: Microsoft e IBM rompen sus relaciones comerciales y crean dudas sobre el futuro de OS/2. IBM continua apoyando el OS/2 y produce las versiones 2.0 y 2.1. Los acontecimientos de estos últimos años son frecuentes y cuantiosos. Las innovaciones a nivel de CPU son numerosas, pero el futuro de la computación personal se esta decidiendo por la arquitectura CISC (Computadora de Juego de Instrucciones Complejo) o RISC (Computadora de Juego de Instruciones Reducido). Las líneas de batalla se dividen entre el chip PowerPC (creado por una colaboración de IBM, Apple y Motorola), el Alpha chip de Digital Equipment, el Pentium de Intel (y los chips clónicos de varios fabricantes). Con la creciente marea de maquinas de escritorio de 32 bits, los principales productores de software se apresuran para tratar de capturar el mercado de los sistemas operativos de 32 bits. Los contendientes, por el momento, son: ¾ ¾ ¾ ¾ ¾ Microsoft con Windows NT y Windows 95, IBM con OS/2 Warp, Novell con UnixWare, SunSoft con Solaris, y Otras derivadas de Unix (como el NeXT Oparating System de Steven Jobs). ETSII – Dpto. Tecnología Electrónica Página: 31 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR La tendencia actual en el software de aplicaciones es la integración. Los proveedores de software se ven forzados a ofrecer paquetes completos y bien integrados para sobrevivir. En estos momentos se atraviesa por una etapa crucial de la computación donde habrá ganadores y perdedores en todos los aspectos de la tecnología. Lo que si se sabe es que la industria de la computación seguir ampliando sus limites a una velocidad vertiginosa que no da señales de aminorar. Tecnología: Los constantes progresos en el incremento de la densidad de integración alcanzaron, en 1971, la cota necesaria para incluir en un chip a todos los elementos que conforman la Unidad Central de Proceso. Dicho circuito integrado recibe el nombre de microprocesador y dio origen a un computador pequeño y barato denominado microcomputador y han puesto las computadoras personales en el escritorio de la oficina. La tecnología LSI (Alta Escala de Integración) precedió a la VLSI (Muy Alta Escala de Integración), con la que se ha conseguido introducir un millón de componentes en un circuito integrado. Con esta última tecnología se han integrado en una sola pastilla todos los elementos que componen un microcomputador. A dicha pastilla se la llama microcomputador monopastilla. Desarrollo histórico y modelos comerciales de microprocesadores: Se describen, someramente, las 5 fases de desarrollo de los microprocesadores: 1ª Fase.- Microprocesadores de 4 bits (1971-1974). En esta etapa de introducción de los microprocesadores, la palabra de trabajo constaba sólo de 4 bits, la estructura interna era muy sencilla y el juego de instrucciones, muy reducido. Como el Intel 4004 con 2,300 TRT's y LSI. 2ª Fase.- Microprocesadores de 8 bits (1974-1976). Manteniendo la filosofía de los microprocesadores de 4 bits, se aumenta el tamaño de la palabra de trabajo a 8 bits y se incrementan la velocidad, la potencia de cálculo y el juego de instrucciones. Como el 8080 de Intel con 5,000 TRT's, el 6800 de Motorola con 6,000 TRT's, o el Z80 de Zilog. Æ Se adopta este componente como estándar en la industria y da origen a los microcomputadores personales. 3ª Fase.- Microprocesadores de 8 bits mejorados (1976-1978). Se añaden a los microprocesadores de 8 bits nuevos recursos físicos, direccionamientos y tipos de instrucciones. También se aumenta la velocidad de funcionamiento. Æ Se produce la masificación en la aplicación de los microprocesadores en la industria y en los computadores personales. 4ª Fase.- Microprocesadores de 16 bits (1978-7980). Se modifica progresivamente la arquitectura de von Neumann, para disponer de recursos físicos y repertorios de instrucciones que se adapten mejor a los lenguajes de alto nivel y a los sistemas operativos avanzados. Como el 8086 de Intel con 29,000 TRT's, el Z8000 de Zilog o el 68000 de Motorola. Æ En esta época surgen los microcomputadores profesionales y nuevas aplicaciones en campos como la Robótica y la Visión Artificial. ETSII – Dpto. Tecnología Electrónica Página: 32 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR 5ª Fase.- Microprocesadores de 32 bits (1981-1987). Los microprocesadores que operan con palabras de 32 bits están orientados a los lenguajes de alto nivel y a los sistemas operativos que admiten multiprogramación y multiusuario. Su velocidad es muy elevada, disponiendo de circuitos auxiliares para gestión de la memoria y tratamiento en coma flotante. Como el 80286 con 134,000 TRT's, el 80386 con 275,000 TRT's de Intel, o el 68020 y el 68030 de Motorola. Æ Aparecen en el mercado los micro-minis, que, siendo microcomputadores basados en microprocesadores de 32 bits, asemejan sus prestaciones a los minicomputadores convencionales. Los campos de aplicación de estas máquinas alcanzan a la Inteligencia Artificial, el CAD/CAM y otros. Además del vertiginoso desarrollo de los microprocesadores, la cuarta generación de computadores está caracterizada por la construcción de supercomputadores de altas prestaciones, como el Fujitsu M382 (1981) y el Cray X-MP (1983). ETSII – Dpto. Tecnología Electrónica Página: 33 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Arquitectura y Software: Los ordenadores paralelos aparecen en varias a arquitecturas usando memoria compartida o distribuida o hardware vectorial. SO Multi-procesadores, lenguajes especiales y compiladores son desarrollados para el procesamiento paralelo. Herramientas de software y entorno de gestión son creados para el procesamiento paralelo o computación distribuida. Avances en el equipo físico: Los logros tecnológicos dirigidos hacia el incremento de la densidad de integración, no sólo repercutieron en el desarrollo de los microprocesadores, sino también en el de las memorias integradas, que pasaron a ser el elemento estándar de la memoria principal. Por otro lado, se alcanzan nuevas e importantes densidades de grabación en los medios magnéticos mediante las técnicas de magnetización vertical, los discos duros tienen más capacidad. Aparecen los coprocesadores para el tratamiento en punto flotante FPU y los gestores de memoria o MMU. Avances en el sistema lógico: Se extienden los lenguajes de alto nivel capaces de manejar datos escalares y vectoriales. Se normaliza el uso de la memoria virtual. La mayoría de los sistemas operativos, además de la multiprogramación y el multiproceso, funcionan en tiempo compartido. Se producen avances en los lenguajes de alto nivel. Sistemas representativos: - VAX 9000 - IBM 3090 VF - BBM TC-2000 ETSII – Dpto. Tecnología Electrónica Página: 34 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Capitulo 1.8.- QUINTA GENERACION (1987--) En esta época las computadoras han inundado prácticamente cada rincón del planeta, a tal punto que no se puede pensar hoy en día en una oficina, escuela o institución moderna sin hacer una relación a la informática y las computadoras. Los grandes empresarios de la computación, IBM, Microsoft, Intel, etc… han logrado lo que se propusieron: hacer que las computadoras personales estén en los hogares de cientos de personas. La red internacional de datos, Internet ha hecho posible que cada ciudadano de este planeta tenga cualquier tipo de información al alcance de su mano con solo tener acceso a una computadora personal. En tan solo 25 años, desde 1973 hasta 1998 los sistemas computacionales han tenido una rapidez vertiginosa, reduciendo grandemente el tamaño de los equipos y aumentando su capacidad de producción y rapidez. ¿Qué nos depara el futuro? Eso, aún está por verse. Tecnología: En base al empleo de los modernos circuitos integrados con más de un millón de componentes, la industria y la investigación en el área de los computadores se decanta hacia la construcción de dos tipos de máquinas: 1) Supercomputadores de altísima velocidad. 2) Computadores de funciones inteligentes. Supercomputadores de alta velocidad Las recientes aplicaciones a las que se destinan los computadores requieren una elevadísima velocidad de procesamiento. Tal es el caso del proceso de imágenes en tiempo real, el control inteligente de trayectorias de robots, simulación de vehículos espaciales y otras, de laboriosos y complejos cálculos, como la prospección geológica, la meteorología y la medicina. Para aumentar la velocidad en el procesamiento existen diversas alternativas, que pasamos a comentar: 1ª) Nuevas tecnologías: Utilizando nuevos componentes y procesos basados en el silicio, en el arseniuro de galio, en los dispositivos Josephson y en los de tipo óptico, se diseñan memorias con tiempos de acceso muy pequeños y puertas lógicas de tiempo de respuesta de pocos nanosegundos. Sin embargo, las limitaciones técnicas y el tiempo requerido para la transmisión de las señales a lo largo de los cables y pistas de comunicación, que, a una velocidad de 300.000 km/s, necesitan más de una décima de nanosegundo para recorrer 3 cm, impiden que sólo con tecnología se pueda incrementar indefinidamente la velocidad. 2ª) Incremento del hardware: Con esta solución se pretende reducir el número de niveles lógicos por los que hay que pasar para alcanzar una solución. Este es el caso de los sumadores con acarreo anticipado. 3ª) Aumento de la complejidad de los circuitos combinacionales, en sustitución de los secuenciales: Un ejemplo de aplicación de esta técnica es la del uso de los PLA, que eleva la velocidad en la decodificación de las instrucciones. 4ª) Sustitución del software por circuitería: Esta tendencia se materializa en el intento de incluir en el hardware las funciones más frecuentes que se llevan a cabo mediante sistemas lógicos. 5ª) Nuevas estructuras de la memoria: Con este método se intenta reducir los tiempos de acceso a la memoria, que suelen ser del orden de 5 a 10 veces mayores que los de la CPU. ETSII – Dpto. Tecnología Electrónica Página: 35 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Hay diversos procedimientos: a) Inserción de una memoria cache ultrarrápida entre la memoria principal y la CPU. b) Memoria virtual. c) Potenciación de los registros internos de la CPU. d) Memoria entrelazada, en la que la memoria principal se divide en varios módulos con un determinado número de palabras cada uno. 6ª) Multiprocesadores: Sistemas compuestos por varios procesadores. 7ª) Reforzamiento del nivel de concurrencia en las instrucciones: Mediante un proceso de eliminación de dependencias se intenta ejecutar simultáneamente varias instrucciones. 8ª) Aumento del paralelismo en todos los niveles: - A nivel de tareas o programas, a base de la multiprogramación, el tiempo compartido y el multiproceso. - A nivel de segmentos o partes de un programa, lo que implica su descomposición en trozos. - A nivel de instrucciones, que requiere un análisis de la posible dependencia de los datos. - A nivel de las partes en que se descompone la instrucción y, por tanto, en esti-echa relación con el hardware. 9ª) Reforzamiento de la técnica de segmentación: Se potencia el solapamiento de las partes de una instrucción para aprovechar al máximo los recursos del sistema y aumentar su velocidad. 10ª) Procesadores de flujo de datos y sistólicos. Computadores de funciones inteligentes Inicialmente, el procesamiento que realizaban los computadores operaba sólo sobre los datos, los cuales consistían, fundamentalmente, en valores numéricos, caracteres y símbolos. Luego se orientaron hacia la manipulación de informaciones, que no eran otra cosa que "conjuntos de datos relacionados". Cuando se añadieron ciertos significados semánticos a la información, ésta se transformó en conocimiento y pasó a ser el nuevo elemento de procesamiento de los computadores. Finalmente, los computadores de la 5ª generación están diseñados para ser capaces de procesar funciones inteligentes, configuradas por un conjunto de conocimientos. Aunque aún parecen distantes los computadores inteligentes, se están desarrollando importantes proyectos de investigación cuyos objetivos prioritarios se dirigen a: - Almacenamiento de conocimientos. Introducción de hechos y reglas para configurar "bases de conocimientos". - Realización lógica de deducciones a partir de las bases de conocimientos. En este apartado se engloban los temas dedicados a las inferencias, la solución de problemas y el aprendizaje artificial. - Simplificación del interfaz hombre-máquina mediante el desarrollo del lenguaje natural y la visión artificial, especialmente. ETSII – Dpto. Tecnología Electrónica Página: 36 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR Arquitectura y Software: Estas maquinas se caracterizan por MPP – Massively Parallel Procesing, procesamiento paralelo masivo. Arquitecturas escalables y con tolerancias a la latencia de los accesos, aparición de la fibra óptica y componentes de muy alta densidad de compactación. Emerge el procesamiento heterogéneo para resolver problemas a alto nivel usando redes de ordenadores heterogéneos con memoria virtual compartida. Sistemas representativos: - Fujitsu VPP 500 - Cray MPP - Thinking Machines Corporation – CM5 - Intel Supercomputer System -- Paragon ETSII – Dpto. Tecnología Electrónica Página: 37 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR CONCLUSION Las computadoras se iniciaron como una necesidad del hombre de buscar la manera de acomodar su carga de trabajo diario. Como todos los inventos humanos, su finalidad está determinada por las circunstancias. La ingeniería de sistemas como vimos está ligada a esta máquina desde sus inicios. No obstante, aunque al principio se necesitaba del ingeniero de sistemas para operar básicamente los equipos; el aumento de la tecnología ha hecho posible que usuarios simples como amas de casas, estudiantes primarios, médicos, abogados, etc. tengan acceso a estas máquinas, dejando así al ingeniero de sistemas dedicarse a tareas más sutiles y de más alcance que solo operar la computadora. La evolución de esta ingeniosa máquina no ha terminado por completo, falta todo un mundo de cosas nuevas por ver, la inteligencia artificial apenas ha dado comienzo y las redes globales por satélite y televisión están en pañales. El horizonte se muestra sonriente pero al mismo tiempo incierto, nadie sabe con certeza que nos espera; haremos un mundo mejor con las tecnologías que hemos desarrollado, o por el contrario se cumplirán los vaticinios de que destruiremos el mundo con nuestras propias tecnologías. ETSII – Dpto. Tecnología Electrónica Página: 38 / 39 MSA Sistemas de Multiprocesamiento HISTORIA Y EVOLUCIÓN DEL COMPUTADOR BIBLIOGRAFIA Atlas de la Informática Kleim Artur Volumen 6 Æ Páginas 8 y 9. Sistema Operativo Francis Rosario Castillo Páginas 1-3. Informática, Presente y Futuro Páginas 42-50 Sites de Internet visitados [email protected] www.unphu.edu.do www.intel.com www.intel.com/intel/product/index.htm www.amd.com www.amd.com/products/cpg/cpg.html www.cyrix.com ETSII – Dpto. Tecnología Electrónica Página: 39 / 39 MSA