ELEMENTOS DE COMPUTACIÓN Año 2.004 ________________________________________________________________________________________ UNIDAD 1. INTRODUCCIÓN PRECURSORES Gottfried Leibniz Gottfried Whilhelm Leibniz fue la figura científica principal de su tiempo, el período conocido como el Siglo de las Luces. Nació en la ciudad centro-europea de Leipzig en 1.646 y murió en Hannover en 1.716. Durante sus 70 años de vida, el tipo de número exacto que se puede esperar de un matemático, formuló los principios del Cálculo Infinitesimal, realizó estudios sobre la Dinámica y contribuyó con valiosos aportes a los campos de la Geología, Teología, Historia, Lingüística y Filosofía y desarrolló teorías básicas para la creación del ordenador. Empezó a viajar a la edad de 20 años, después que la Universidad de Leipzig rehusara concederle el Doctorado en Leyes debido a su juventud. Carente de recursos propios, Leibniz se vio obligado a realizar trabajos que interferían con sus investigaciones científicas. Con poco más de 20 años fue abogado y diplomático. Más tarde fue bibliotecario y consejero de la Familia Real. Los intereses de Leibniz eran amplios y su naturaleza cosmopolita le condujo a viajar frecuentemente por Europa, manteniendo conversaciones y contactos con todos los grandes pensadores de su tiempo. Era un prolífico escritor de cartas: mantuvo correspondencia con más de 600 personas. Su primera contribución importante a la Filosofía se produjo en 1.672, cuando formuló el “Principio de la Razón Suficiente” el que sostenía, simplemente, que tiene que haber una razón para todo y que “todo conduce al bien en el mejor de los mundos”. Centrando su interés en le Matemática, empezó a trabajar en el perfeccionamiento de la máquina de sumar de Blaise Pascal, inventada en 1.642. Leibniz intentó mejorarla de forma que fuera capaz de multiplicar y dividir, lo que logró utilizando un dispositivo mecánico llamado cilindro de Leibniz. Este mecanismo fue un adelante decisivo para su tiempo. Antes, debido a la complejidad de multiplicar con números romanos, esta operación aritmética se enseñaba solo en los centros de estudios de mayor categoría, de modo que una máquina que pudiera multiplicar mecánicamente, la volvía más accesible. Después de haber perfeccionado esta máquina, Leibniz centró sus esfuerzos en la creación de un método que permitiera convertir números expresados en el sistema de numeración decimal a sus equivalentes correspondientes en sistema binario. La mayor ambición del filósofo y matemático alemán era idear un lenguaje universal que pudiera emplear la claridad y precisión de la matemática para resolver cualquier problema que se le pudiera presentar a la humanidad. Su lenguaje debería utilizar símbolos abstractos para representar los “átomos” fundamentales del entendimiento y un conjunto de reglas para manejar estos símbolos. Su intento resultó fallido pero sus ideas fueron recogidas a principios del Siglo XX por Bertrand Russell, quien intentó explicar la Matemática en términos de ________________________________________________________________________________________ Lic. Marcia Mac Gaul de Jorge – Lic. Patricia Mac Gaul Página 1 ELEMENTOS DE COMPUTACIÓN Año 2.004 ________________________________________________________________________________________ “lenguaje lógico-formal”. Charles Babbage “Por amor de Dios, desearía que estos cálculos se hubiesen efectuado a vapor !”, exclamó Charles Babbage mientras se afanaba con las tablas del calendario náutico. El Siglo XIX había desarrollado la energía a vapor, pero la navegación marítima precisa continuaba siendo un problema. La posición de un navío se determinaba observando la Luna y utilizando luego tablas matemáticas que, con frecuencia, eran inexactas. Fue en 1.812 cuando Babbage pensó por primera vez en construir una máquina, que él denominó “ingenio diferencial”, que pudiera efectuar los laboriosos cálculos que contenían las tablas náuticas. Hacia 1.923 había completado un pequeño modelo y solicitó al gobierno una subvención para construir una máquina que funcionara. El Ministro de Hacienda le entregó 1.500 Libras y Babbage se propuso crear una máquina que eliminara los errores mediante la impresión automática de los resultados de sus propios cálculos. Babbage se entregó de cuerpo y alma a cumplir con el objetivo fijado. El proyecto consumió enormes cantidades de dinero, pues sus expectativas se hallaban drásticamente limitadas por la insuficiencia de los conocimientos de ingeniería de aquel entonces. A pesar de la confianza de Babbage en que lo que hiciera la máquina lo haría con precisión, el gobierno decidió finalmente retirar el apoyo económico al proyecto, luego de haber invertido 17.000 Libras en él. Así las cosas, Babbage encaró un nuevo proyecto, el “ingenio analítico” con los cuales esperaba alcanzar todos los objetivos del “ingenio diferencial” y muchos otros más aparte de ellos. En muchos sentidos, el diseño del “ordenador analítico” era similar del de un ordenador moderno, contenía un almacén de memoria, un molino aritmético, proporcionaba una salida impresa y era posible programar esta máquina mediante el uso de bifurcaciones condicionadas. Al principio, las instrucciones que debían dársele al ingenio se controlaban mediante clavos largos, como en un organillo. Posteriormente se adoptó el sistema de tarjeta perforada. El sistema de numeración en que se hacían los cálculos era indistinto dado que la máquina era mecánica. Con su trabajo, Babbage anticipó la estructura del ordenador electrónico moderno, pero fracasó en convertir en realidad su visión global. Su “ingenio analítico” no llegó a construirse nunca debido a las limitaciones tecnológicas del momento. Herman Hollerith Hollerith nació en Estados Unidos en 1.860. Después de graduarse en la Universidad de Columbia consiguió empleo en la Oficina Nacional de Empadronamiento, ayudando a elaborar estadísticas en base a los daos del Censo de 1.890. Todo este trabajo se realizaba a mano y resultaba penosamente lento. Tanto así que, 10 años más tarde y habiendo llegado el momento de realizar el censo correspondiente a 1.900, en la oficina aún no se habían terminado de procesar los datos del de 1.890. Hollerith sabía que su mayor aptitud era su poder de invención. Con el objeto de adquirir entrenamiento y desarrollar sus cualidades creativas, abandonó su trabajo en la Oficina ________________________________________________________________________________________ Lic. Marcia Mac Gaul de Jorge – Lic. Patricia Mac Gaul Página 2 ELEMENTOS DE COMPUTACIÓN Año 2.004 ________________________________________________________________________________________ Nacional de Empadronamiento e ingresó a la Oficina de Patentes de Washington. La primera idea de Hollerith fue la de codificar información en cinta de papel, la que estaba dividida en “campos” mediante marcas de tinta. Cada campo representaba diferentes categorías, por ejemplo, varón o mujer, blanco o negro. La presencia de un agujero en el campo varón/mujer significaba que la persona era un varón y la ausencia que era una mujer. Estos agujeros después de podían “leer” utilizando una máquina. En el año 1.884 patentó la primera versión y en los años siguientes se dedicó a perfeccionar el sistema y en 1.889 reemplaza la cinta continua de papel por la presentación de tarjetas individuales, cada una de las cuales contiene los datos de una sola persona. El éxito comercial llegó en el 1.889, cuando el Departamento de Censos convocó a concurso para proveer un sistema de equipos que procesara el censo que se haría al año siguiente. Los sistemas se probaron volviendo a procesar los datos obtenidos en el censo del año anterior y el equipo de Hollerith ganó el concurso. Cuando llegó el momento de realizar el censo del 1.900, Hollerith había desarrollado una máquina mucho más eficaz y se negó a rebajar la tarifa presentada al gobierno por el procesamiento de los datos, motivo por el cual cuando caducaron las patentes el gobierno buscó otras empresas para tal procesamiento, pero a esa altura Hollerith ya había fundado su propia compañía la cual, posteriormente, se convertiría en la actual IBM. John Von Neumann Solo un húngaro podría entrar por una puerta giratoria tras una persona y salir delante de ella. Esto dijo Von Neumann al describir la competitividad de los colegas de su propio país. Él mismo no fue una excepción, su propia ambición, junto con su inteligencia extraordinaria, lo condujeron a los más altos puestos en Estados Unidos. Von Neumann nació en el seno de una acaudalada familia judía en el imperio astrohúngaro. Su facilidad para la matemática se puso de manifiesto cuando aún era muy joven y a los 25 años de edad ya había obtenido dos licenciaturas y un doctorado y discutía temas científicos en un plano de igualdad con Alberto Eistein y David Hilbert. Cuando Estados Unidos decide su participación en la Segunda Guerra Mundial, Von Neumann fue contratado para el Proyecto Maniatan y colaboró en la fabricación de la bomba atómica. Estando allí se entera del los intentos de construcción de un ordenador y solicita su incorporación al Proyecto ENIAC. Los trabajos se realizaron bajo el control de ingenieros electrónicos, pero como matemático, Von Neumann vio el problema desde otra perspectiva y presentó un informe que sería el punto de partida de un ordenador moderno. Finalizada la guerra, colaboró cada vez más estrechamente con el Departamento de Defensa de los Estados Unidos, sin abandonar sus investigaciones matemáticas. Diseñó el primer ordenador, que se denominó Johniac, para la Universidad de Princeton. En una fiesta celebrada para festejar el fin del proyecto, Von Neumann recibió una maqueta del ordenador esculpida en hielo. A los 50 años muere de cáncer y, a partir de ese momento, el diseño de los ordenadores es conocido como “arquitectura Von Neumann”. ________________________________________________________________________________________ Lic. Marcia Mac Gaul de Jorge – Lic. Patricia Mac Gaul Página 3 ELEMENTOS DE COMPUTACIÓN Año 2.004 ________________________________________________________________________________________ COMPUTADORAS ANALÓGICAS Un ordenador es llamado digital porque todas las instrucciones de un programa y todos los datos se representan utilizando dígitos binarios. Pero existe otra familia de ordenadores, más antigua que la de los digitales y es la que los ordenadores analógicos que se programan en forma diferente: uniendo varios componentes electrónicos. El velocímetro de un auto es un ejemplo de este tipo de ordenadores. El nombre proviene del comportamiento “análogo” de la velocidad a la que circula el auto con respecto a la posición de la aguja en el dial, siendo aquélla directamente proporcional a ésta. Los ordenadores analógicos modernos pueden realizar muchas tareas y se basan en el tipo de componentes eléctricos que encontramos comúnmente en los aparatos domésticos: transistores, condensadores, resistencias e inductancias magnéticas. Cuando se comenzaba a desarrollar la electrónica, se descubrió que el comportamiento de las componentes eléctricas se parecía al de los dispositivos mecánicos. Por ejemplo, las oscilaciones de la corriente eléctrica resultante de la conexión de una inductancia magnética y un condensador, se parecía altamente a las oscilaciones de una pesa colgada de una cuerda. De hecho, la descripción matemática de ambos sistemas es idéntica. Algunos dispositivos analógicos se asemejan altamente a los sistemas que ejemplifican. Por ejemplo, el modelo de un aeroplano que se emplea para un experimento de túnel de viento es una copia exacta, a escala reducida, del armazón del avión. Otros modelos resultan muy distintos. Por ejemplo, un modelo de una situación de la vida real puede consistir tan solo en una lista de fórmulas matemáticas o puede ser un circuito eléctrico que produce el flujo de agua a través de una presa. Las máquinas de calcular que utilizaban principios analógicos demostraron por primera vez su importancia en 1.630, cuando William Oughtred inventó la regla de cálculo. Los números estaban dispuestos sobre dos reglas de modo tal que el movimiento de una a lo largo de la otra equivalían a la multiplicación y la respuesta simplemente se podía leer en la escala. Los primeros ordenadores analógicos totalmente electrónicos entraron en funcionamiento en 1.947, justo después que nacieron los primeros ordenadores digitales. Un ordenador analógico puede realizar cálculos matemáticos simplemente utilizando la naturaleza de la electricidad. Por ejemplo, si por un cable fluye una corriente de 5 A y por otro paralelo fluye una corriente de 4 A y si ambos cables se unen para continuar con un único cable, por este último fluirá una corriente de 9 A, lo que convierte al dispositivo eléctrico en un “sumador”. Así, el problema se reduce a construir el circuito que ejemplifique el problema a resolver. Este tipo de ordenadores saca provecho de representar las cantidades como valores variables de un voltaje o una corriente. Esto significa que la condición de entrada se puede cambiar rápidamente y que el sistema reflejará de inmediato las condiciones consiguientes. No se necesita tiempo para codificar los datos ni para procesarlos ni para, finalmente decodificarlos para mostrar la información. ________________________________________________________________________________________ Lic. Marcia Mac Gaul de Jorge – Lic. Patricia Mac Gaul Página 4 ELEMENTOS DE COMPUTACIÓN Año 2.004 ________________________________________________________________________________________ Esta característica es esencial en las aplicaciones en las que se necesita producir respuestas rápidas, por ejemplo, un piloto automático debe responder rápidamente a una repentina corriente de viento durante un aterrizaje, cuando no hay tiempo para efectuar cálculos largos ni siquiera a la velocidad que funcionan los ordenadores digitales modernos. Los sensores detectan la corriente repentina generando un voltaje de salida relativamente pequeño. El circuito del piloto automático responde de manera instantánea con un cambio de voltaje de salida relativamente grande que en forma automática activa los alerones de las alas, de tal manera que el avión consigue mantener la estabilidad sin mayores percances. Los ordenadores analógicos se utilizan en muchas áreas de control industrial, en las cuales de han de manejar con sumo cuidado complicados sistemas mediante ajustes sutiles y continuos, como una planta industrial química. Pero son menos conocidos que sus equivalentes digitales. GENERACIONES DE COMPUTADORAS Desde la aparición de las computadoras electrónicas modernas en la década de 1.940, han salido al mercado cuatro generaciones, las que se distinguen por características principales como: - tipo dominante de elementos en circuitos electrónicos, - medio de almacenamiento secundario, - lenguaje de computadora, - tipo o características del sistema operativo, - tiempo de acceso a la memoria. Primera generación. 1.949 a 1.958 Los tubos de vacío eran los componentes electrónicos principales. Los tiempos de acceso a la memoria se expresaban en milisegundos (milésimas de segundo). Las tarjetas perforadas fueron el principal medio utilizado para almacenar los archivos y para ingresar los datos a las computadoras. El lenguaje de computadora, que era primitivo, consistía en el lenguaje de máquina y, luego, en el lenguaje ensamblador. Los sistemas operativos eran primitivos: los trabajos eran procesados secuencialmente y el operador de la computadora ejercía el control en forma manual. En 1.949 se dispuso de la primera computadora comercial: la UNIVAC I. Conforme a las normas actuales era lenta, pero contaba con circuitos de autoverificación y cintas magnéticas para el ingreso y salida de datos. Más adelante, en 1.954, la IBM instaló su primera computadora, la IBM 650. La primera generación de computadoras demostró la utilidad de estas máquinas para el procesamiento de datos. Sin embargo, también tenían una serie de desventajas: costo elevado, relativa lentitud, descomposturas frecuentes y, además, necesitaban de grandes instalaciones de aire acondicionado para disipar el calor generado por los tubos de vacío. Segunda generación. 1.959 a 1.964 Ingresaron en el mercado entre 1.959 y 1.960. Los tubos de vacío fueron reemplazados por ________________________________________________________________________________________ Lic. Marcia Mac Gaul de Jorge – Lic. Patricia Mac Gaul Página 5 ELEMENTOS DE COMPUTACIÓN Año 2.004 ________________________________________________________________________________________ dispositivos de estado sólido discretos, principalmente transistores. Estos presentaban tres ventajas importantes sobre los tubos de vacío: tamaño pequeño, reducción de los requerimientos de potencia y de generación de calor y un gran confiabilidad. Con estos transistores, el tiempo de acceso a la memoria se expresa en microsegundos (millonésima de segundo), siendo de 10 microsegundos el tiempo típico de acceso a la memoria, es decir, 100 veces más veloces que las de primera generación. Con esta segunda generación aparecen las memorias con anillos ferromagnéticos. Las cintas magnéticas fueron los medios dominantes de almacenamiento secundario: permitían mucha mayor capacidad de almacenamiento y el ingreso más rápido de datos que las cintas perforadas. Durante este período se introdujeron los lenguajes de alto nivel, tales como FORTRAN, ALGOL Y COBOL. Se usaron los sistemas operativos en lotes, lo que permitió el procesamiento rápido de los archivos de cinta magnética. Se creó un conjunto de programas de gestión de la operación del sistema y un lenguaje de comunicación entre el programador y el sistema (lenguaje de control del sistema). El encargado de la máquina pasó a ser un especialista: el operador. Ejemplos de computadoras de la segunda generación son la IBM 1401 y la Honeywell 800. La IBM 1401 hizo su aparición en los años 1.960 y con ello esta empresa asumió una posición dominante en la industria del procesamiento de datos. Tercera generación. 1.965 a fines de los años 1.970 Esta computadoras emplearon como componentes eléctricos circuitos integrados, aún más pequeños que los transistores. Con estos circuitos podían incluirse miles de transistores en una plantilla de silicio, cuyo tamaño es inferior a la décima parte de una estampilla de correos. Estas pastillas de circuitos integrados reemplazaron a las memorias de núcleos magnéticos usadas por las computadoras desde fines de la década de 1.950. Con la tercera generación se empleó la tecnología de la integración a pequeña escala, con la cual alrededor de 1.000 transistores podían integrarse en el circuito de cada pastilla. Durante la década de 1.970, con la tecnología de integración a alta escala, se llegó a combinar hasta 65.000 componentes en una sola pastilla. Los circuitos integrados dieron a las computadoras de esta generación una mayor rapidez que sus predecesoras de la segunda. El tiempo de acceso se midió ahora en nanosegundos (milésimas de millonésimas de segundo). La mejora representa un factor de 100 en contraste con la segunda generación. 100 nanosegundos era el tiempo típico de acceso a la memoria. En esta generación, las computadoras eran más pequeñas y confiables. Otra mejora significativa fue el uso de discos magnéticos para el almacenamiento, lo que permitió el acceso directo a archivos de datos muy grandes. Con el cambio a archivos en discos, se introdujeron los sistemas operativos generales (OS/360, MULTICS), que usan los conceptos de multiprogramación, multiproceso, tiempo real, tiempo compartido y teleproceso. El empleo de los lenguajes de programación estructurados mejoró la productividad de la programación. Se perfeccionaron los compiladores para lenguajes generales de alto nivel (PL/1, ALGOL 68). ________________________________________________________________________________________ Lic. Marcia Mac Gaul de Jorge – Lic. Patricia Mac Gaul Página 6 ELEMENTOS DE COMPUTACIÓN Año 2.004 ________________________________________________________________________________________ Ejemplo típico de las máquinas de tercera generación es la serie 360 de IBM. Esta serie introdujo el concepto de familia de computadoras compatibles, facilitando la migración de los sistemas cuando era necesario cambiar a una computadora más potente. Cuarta generación. Desde fines de 1.970 Se caracterizan por la integración a muy alta escala. Con esta tecnología es posible fabricar circuitos con densidades de varias centenas de millares de componentes. Los tiempos de acceso en las computadoras de esta generación se están acercando a 1 nanosegundo, o sea, son 100 veces más rápidas que las de la generación anterior. Los lenguajes han sido desarrollados para su fácil uso. Los sistemas operativos permiten que muchos usuarios compartan el uso de una computadora. ________________________________________________________________________________________ Lic. Marcia Mac Gaul de Jorge – Lic. Patricia Mac Gaul Página 7