790 likes | 910 Views
Historia de la computación. Introducción a la Ing. en Computación Ing. Moisés E. Ramírez G. Introducción.
E N D
Historia de la computación Introducción a la Ing. en Computación Ing. Moisés E. Ramírez G.
Introducción • El objetivo de esta sección es hacer una perspectiva histórica breve del campo de la computación haciendo énfasis en los inventos y personajes que han influido de mayor manera para el desarrollo de ésta. MERG
Abaco • Uno de los problemas que siempre ha fascinado al hombre es el relacionado con la actividad de contar y el concepto de número. De ahí que entre las primeras herramientas que inventó están dispositivos mecánicos capaces de ayudarlo con estas tareas. • El ábaco Los egipcios (500 años AC) inventaron el primer dispositivo para calcular, basado en bolillas atravesadas por alambres. Posteriormente, a principios del siglo II DC, los chinos perfeccionaron este dispositivo, al cual le agregaron un soporte tipo bandeja, poniéndole por nombre Saun-pan. El ábaco permite realizar sumar, restar, multiplicar y dividir. MERG
Los sistemas de numeración • Para contar, nuestros antepasados inventaron diversos sistemas de numeración que prevalecen hasta nuestros días. Una forma de clasificarlos es en ‘posicionales’ y ‘no posicionales’. • Ventajas/Desventajas Los posicionales (ejm. El sistema decimal) tienen como ventaja sobre los no posicionales (ejm. El sistema de numeración romano) que pueden representar cualquier número con un conjunto limitado de guarismos o cifras, además de que las operaciones aritméticas son más fáciles de realizar. MERG
La pascalina • Blaise Pascal (1623-1662) En 1649 gracias a un decreto real obtuvo el monopolio para la fabricación y producción de su máquina de calcular conocida como la PASCALINA. Esta máquina consistía en una serie de engranes que permitía obtener los resultados de las operaciones de sumas y restas de forma directa de hasta 8 dígitos. MERG
Sistema Binario • Gottfried Wilhelm Leibniz (1646-1716). En 1670, Leibniz mejora la máquina inventada por Blaise Pascal, al agregarle capacidades de multiplicación, división y raíz cúbica. En 1979 crea y presenta el modo aritmético binario, basado en "ceros" y "unos", lo cual serviría unos siglos más tarde para estandarizar la simbología utilizada aplicada en el procesamiento de la información en las computadoras modernas. MERG
Charles Babbage y Ada Byron • Charles Babbage (1792-1871) Babbage concibió dos máquinas: • La Máquina Diferencial era un dispositivo de 6 dígitos que resolvía ecuaciones polinómicas por el método diferencial. • La máquina Analítica, fue diseñada como un dispositivo de cómputo general. • Babbage trabajó en estos proyectos con Ada Byron, considerada la primer programadora de la era de la computación ya que fue ella quien se hizo cargo del análisis y desarrollo de todo el trabajo del inventor y la programación de los cálculos a procesarse MERG
Partes de la máquina analítica • 1. Dispositivo de entrada de la información: recibe la información a procesar y las instrucciones del programa. • 2. Unidad de almacenaje: que almacena información. • 3. Procesador: con la función de realizar operaciones lógicas y aritméticas sobre la información. • 4. Unidad de control: dirige a todas las demás unidades determinando cuándo debe leer información, que operación realizar,... • 5. Dispositivo de salida: muestra la información ya procesada. MERG
Las tarjetas perforadas • Joseph Marie Jacquard (1752 - 1834) modificó una maquinaria textil, inventada por Vaucanson, a la cual implementó un sistema de plantillas o moldes metálicos perforados unidas por correas, que permitían programar las puntadas del tejido, logrando obtener una diversidad de tramas y figuras. • A partir del invento de Jacquard empezaron a proliferar, las máquinas y equipos programados por sistemas perforados, tales como los pianos mecánicos, conocidos como pianolas , muñecos y otros novedosos juguetes mecánicos . MERG
Máquina tabuladora • Herman Hollerith (1860-1929) empezó a trabajar con el sistema de máquinas tabuladoras logrando su primera patente en 1884. • El gobierno norteamericano convocó a una licitación para un sistema de procesamiento de datos que proporcionase resultados más rápidos (se había estimado que tardarían en procesarse unos 10 ó 12 años). MERG
Herman Hollerith, que trabajaba como empleado del buró de Censos, propuso su sistema basado en tarjetas perforadas, y que puesto en práctica constituyó el primer intento exitoso de automatizar el procesamiento de grandes volúmenes de información. • Las máquinas de Hollerith clasificaron, ordenaban y enumeraban las tarjetas perforadas que contenían los datos de las personas censadas, logrando una rápida emisión de reportes, a partir de los 6 meses. • Nace IBM Los resultados finales del censo de 1890 se obtuvieron en el tiempo record de 2 años y medio. Herman Hollerith en 1896 fundó la TABULATING MACHINE COMPANY que luego se convirtió en la Computer Tabulating Machine (CTR). Hollerith se retiró en 1921 y en 1924 CTR cambió su nombre por el de International Business Machines Corporation (IBM), que años más tarde se convertiría en el gigante de la computación. MERG
John Louis von Neumann (1903-1957) • En 1944 contribuyó en forma directa en los diseños de fabricación de computadoras de esa generación, asesorando a Eckert y John Machly , creadores de la ENIAC y que construyeran además la UNIVAC en 1950. Durante esa década trabajó como consultor para la IBM colaborando con Howard Aiken para la construcción de la computadora Mark I de Harvard. MERG
Conrad Zuse (1910-1957) • Entre 1936 y 1939 construyó la primera computadora electromecánica binaria programable, la cual hacía uso de relés eléctricos para automatizar los procesos (Z1). • En 1940 Zuse terminó su modelo Z2, el cual fue la primera computadora electromecánica completamente funcional del mundo. Al año siguiente, en 1941, fabricó su modelo Z3 para el cual desarrolló un programa de control que hacía uso de los dígitos binarios. • Entre 1945 y 1946 creó el "Plankalkül" (Plan de Cálculos), el primer lenguaje de programación de la historia y predecesor de los lenguajes modernos de programación algorítmica. • En 1949 formó la fundación ZUSE KG dedicada al desarrollo de programas de control para computadoras electro mecánicas. En 1956 esta fundación fue adquirida por la empresa Siemens Computadoras MERG
Primera generación (1945-1958) • Tubos de vacío • Almacenamiento masivo de datos en tambores y cintas magnéticas • Máquinas muy grandes y con grandes • Necesidades de energía. • Grandes sistemas de ventilación • Tarjetas perforadas • Lenguaje máquina. • UNIVAC I, ENIAC, ABC (Atanasoff-Berry ), Mark I, EDVAC MERG
Segunda Generación (1959-1964) • Transistores • Equipos de tamaño, consumo de energía y necesidades de ventilación menores • Aparecen los primeros lenguajes de • programación: COBOL y Fortran • Aumenta la confiabilidad. • IBM 360, Digital PDP-8 MERG
Tercera generación (1964-1971) • Circuitos integrados • Computadoras más rápidas, pequeñas, menos costosas y con mayores capacidades. • Aparecen los primeros sistemas operativos. • Interconexión de las primeras computadoras en red. • Aparición de la multiprogramación. • Desarrollo de lenguajes de programación de alto nivel y software en general –mayor variedad de aplicaciones. • Aparecen las minicomputadoras . • CRAY-1 MERG
Cuarta generación • Miniaturización de los circuitos integrados usando chips de silicio. • Aparición de las computadoras personales. • Procesador 8008 • Cada vez más eficientes, baratas, capacidades mayores y consumo de energía menor. • Interfaces gráficas. • IBM PC, APPLE II MERG
Quinta generación (1978 -?) • Inteligencia Artificial, Sistemas Expertos, Visión Artificial, Comprensión de lenguaje natural, robótica. • Computadoras cada vez más rápidas, baratas, eficientes, pequeñas,... MERG
Charles Babbage • Se considera a Charles Babbage (matemático inglés profesor en Cambridge) como el precursor de las ciencias informáticas; tanto por establecer los conceptos teóricos en que se basa actualmente la arquitectura de computadores, como por diseñar sus máquinas analítica y de las diferencias: auténticas pioneras de las calculadoras digitales, pese a basarse en principios puramente mecánicos, lo que constituye todo un alarde de ingeniería. • El tal sujeto era un bicho raro ya desde estudiante en el Trinity College: aficionado a repasar los errores de cálculo, transcripción o tipográficos que se acumulaban en las tablas matemáticas de la época cual ratón de biblioteca, se le ocurrió la genial idea de construir una máquina capaz de recopilar las tablas de logaritmos, que por aquel entonces apenas tenían un siglo de antigüedad. MERG
El método de diferencias finitas • De carácter muy excéntrico, se movía en círculos privilegiados, donde lo hacían también Charles Dickens, Pierre S. de Laplace o Charles Darwin, lo que le dotaba de una visión de la realidad muy avanzada para su época. • Su primera calculadora digital fue inventada en 1822 para el Servicio de Correos Británico; determinaba valores sucesivos de funciones polinómicas utilizando solamente la operación de adición, mediante el método de las diferencias finitas: partiendo de los valores iniciales conocidos de una serie de potencias obtenemos los demás mediante la realización de restas entre valores consecutivos hasta obtener una columna de un valor constante; y retroceder sumando hasta el valor siguiente que deseamos obtener, como se ve en este ejemplo para las segundas potencias de x: MERG
Todo el sistema estaba basado en la numeración decimal, de forma que cada una de las cifras de un número se representaba por una rueda dentada, y su valor por la rotación angular asociada a ella. Este funcionamiento hace que sólo sean posibles las rotaciones correspondientes a valores numéricos enteros. • Su diseño fue basado en interruptores mecánicos a base de barras, cilindros, cremalleras y ruedas dentadas. MERG
La máquina analítica de Babbage La máquina analítica se asemejaba mucho a las primeras computadoras. Sus componentes eran: • El analizador o molino (MILL) con operaciones de suma, resta, multiplicación y división con 50 cifras de precisión. • El almacenamiento o memoria: con la finalidad de conservar los números para referencia futura. Eran series de columnas cada una conteniendo series de ruedas. El diseño contenía un banco de memoria de mil registros, cada uno capaz de almacenar un número. Estos números podían ser el resultado de alguna operación efectuada por el molino o provenientes de la entrada de las tarjetas perforadas. MERG
Tarjetas perforadas • Las instrucciones para estas operaciones se leían a partir de tarjetas perforadas que transmitían no sólo los datos a procesar sino también el conjunto de instrucciones que se iban a procesar. Las tarjetas de variables contenían los números que eran sujetos de operación en el analizador. Existía un sistema para pasar el contenido de estas tarjetas directamente al molino para ser procesadas. Las tarjetas de operaciones que servían para preescribir la secuencia de operaciones que se deseaban realizar. Estas no actuaban sobre los números directamente. Las posibles operaciones de las tarjetas perforadas eran: • Ingresar un número en el almacenamiento. • Llevar un número del analizador a la memoria. • Dar instrucciones al analizador para que efectúe una operación. • Ingresar un número al analizador • Llevar un número de la memoria al analizador • Egresar un numero desde la memoria al analizador MERG
Ejemplo: (a b + c) · d • 4 tarjetas de variables con los números a,b,c,d • Una tarjeta de operación que indique la multiplicación de a y b • Una tarjeta de variable p, que contenga el resultado del producto de a y b : p=ab • Una tarjeta de operación para direccionar la adición de p y c • Una tarjeta de variable q, para registrar el resultado de la suma de p y c: q=p+c • Una tarjeta de operación para indicar la operación de multiplicación entre q y d. • Una tarjeta de operación para detectar la multiplicación de q y d: p2=q·d, p2 será ésta la última tarjeta MERG
Salida • Babbage inventó la primer máquina tipográfica automatizada capaz de imprimir los resultados de los cálculos. Analizador Salida Entrada Almacenamiento MERG
Ada Augusta • Subrutina: una secuencia de instrucciones que se puede usar una y otra vez en contextos muy diferentes. • Iteración: El hacer que la lectora de tarjetas vuelva a una tarjeta específicada, de modo que la secuencia que se inicia con ésta última pueda ejecutarse en repetidas ocasiones. • Salto condicional: La lectora de tarjetas puede saltar a cierta tarjeta si (IF) se cumple con cierta condición. MERG
La máquina tabuladora • Las preguntas que se hacían venían en el formato de opción múltiple. • Las respuestas se ponían en tarjetas donde la perforación en cierta posición de cada columna representaba la respuesta a una pregunta. MERG
El mecanismo de conteo Corriente eléctrica . La tarjeta Contador: 0,1,2,3,4, … MERG
El interruptor (switch) • Es un circuito que puede abrir o cerrar (deja pasar o no la corriente) a través de un circuito eléctrico. • Un ejemplo de la aplicación de este elemento es en los conmutadores telefónicos. Cuando se quiere la conexión entre dos líneas. Siempre está abierto (no hay conexión) entre las dos líneas. Pero cuando se quiere comunicación, se cierra el circuito, es decir se conectan las partes en velocidades de aproximadamente 5 veces por segundo. • Antes de la existencia de estos aparatos, las conexiones se hacían directamente por la operadora usando un tablero de interruptores. MERG
Otro tipo de interruptor fue el tubo electrónico de vacío que podía hacer el mismo trabajo a velocidades de hasta 1,000,000 veces por segundo. • Este aparato fue usado por las primeras computadoras electrónicas (ENIAC con 18,000 tubos de vacío) para sumar, almacenar e incluso realizar operaciones lógicas. • Otro tipo de interruptor, el llamado relevador fue usado por Konrad Zuse en la Z1. MERG
El modelo de John Von Neumann • A pesar de las velocidades alcanzadas en la computadora ENIAC (500 multiplicaciones por segundo) resultaba todavía ineficiente en el sentido de que para realizar un nuevo cálculo se tenían que realizar cambios completos en el cableado. Neumann analizó este problema y propuso un modelo que contiene lo siguiente: • Un medio para codificar o cifrar las instrucciones, a fin de que fuera posible almacenarlas en la memoria de la máquina. Von Neumann sugirió el uso de cadenas o series de unos y ceros. • Almacenar las instrucciones en la memoria junto con cualquier otra información (números, datos) necesaria para el trabajo específico que se trate. • Al correr el programa, tomar las instrucciones directamente de la memoria, en vez de que haya que leer una tarjeta perforada en cada paso. MERG
Ventajas obtenidas • Velocidad. Las instrucciones se leían directamente de la memoria (más rápido que las tarjetas perforadas) • Flexibilidad. Teniendo varios programas, se puede correr uno, después otro o combinaciones de los mismos. • Automodificación. Al estar almacenados electrónicamente es fácil hacer programas que se puedan modificar o ajustar por si mismos. MERG
El modelo de Von Neumann Procesamiento Control Memoria Salida Entrada MERG
Partes del modelo • Entrada: Los datos en bruto que se van a procesar. • MEMORIA: almacena la entrada, los resultados del procesamiento y el programa que se va a ejecutar. • Control: Lee el programa y lo traduce en una serie de operaciones que realiza la unidad procesadora. • Unidad procesadora: Lleva a cabo todas las operaciones reales de suma, multiplicación, cuenta, comparación, etc., sobre la información que recibe desde la memoria. • Salida: Responde a los resultados de la unidad de procesamiento, almacenados en memoria y transmitidos a un dispositivo específico. MERG
Modelo del funcionamiento de una computadora Introducción a la Ing. en Computación Ing. Moisés E. Ramírez G.
La memoria • Su función es guardar datos. • Es un conjunto de celdas (o casillas) con las siguientes características: • Cada celda puede contener un valor numérico. • Cada celda tiene la propiedad de ser direccionable, es decir, se puede distinguir una de otra por medio de un número único que es su dirección. • Las celdas de memoria están organizadas en forma de vector (numeradas secuencialmente) para poder hacer referencia a ellas de manera rápida. • Para hacer referencia a una celda se usa su dirección sobre el vector, para ello se usa un apuntador. MERG
Todas las celdas tienen una dirección, por ejemplo, la celda 51 tiene un 4, la 54 tiene un 9, etc • Suponemos que existen operaciones elementales que permiten leer o escribir en ciertas posiciones de memoria, esto se haría con un código especial. Dirección de la celda Dato en la celda MERG
Además de las operaciones de lectura/escritura en la memoria se pueden realizar ciertas operaciones básicas (a las que se denominarán primitivas) según un código especial, como puede ser suma y resta, por ejemplo. • Supongamos que se desea realizar la operación de suma a los operandos 5 y 7. • Se necesitaran 3 casillas: una para cada número (5,7) y una más para almacenar el resultado. Supongamos que dichas casillas son la 21,22 y 23. • Se deben definir a nivel de detalle las operaciones que se desean realizar y su orden, así como obtener una codificación adecuada (instrucciones que la computadora pueda entender). • Introducir todos los datos (e instrucciones) en la memoria. MERG
Observaciones • Cabe notar aquí dos lenguajes: uno mnemónico (más fácil de comprender para nosotros, programa fuente) y otro que está escrito en código numérico (que sólo la computadora puede entender, programa objeto). MERG
Ejecución del programa • Qué pasará en este programa? • ¿Qué código (programa fuente) generó este programa? MERG
Lenguaje ensamblador(Uso del comando DEBUG) Propedéutico corto UTM
Creación de un programa que suma 2 números • Inicio/Ejecutar... DEBUG • Algunos comandos básicos • r muestra los registros del sistema • rbx Visualizar un registro específico (R+registro a visualizar) MERG
Un programa que suma dos números a100 0CA7:0100 mov ax, 020 0CA7:0103 mov bx, 010 0CA7:0106 add ax, bx 0CA7:0108 int 20 0CA7:010A • Las direcciones de memoria aparecen por parte del programa (lo que se deberá escribir está en negritas). • Para ejecutar el programa hasta la instrucción que está en la localidad de memoria 108H escribir: g108 -g108 AX=0030 BX=0010 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0CA7 ES=0CA7 SS=0CA7 CS=0CA7 IP=0108 NV UP EI PL NZ NA PE NC 0CA7:0108 CD20 INT 20 - MERG
Un programa que suma dos números y muestra en pantalla el resultado 0D82:0100 B81300MOV AX,0013 0D82:0103 BB2400MOV BX,0024 0D82:0106 01D8ADD AX,BX 0D82:0108 88C2MOV DL,AL 0D82:010A B440MOV AH,40 0D82:010C CD21INT 21 0D82:010E CD20INT 20 0D82:0110 Escribir lo que está en negritas y después g (ejecutar) -g 7 El programa ha terminado de forma normal MERG
Código ASCII MERG
El número enviado a pantalla es la representación en ASCII de dicho valor. • Recordando que la última dirección de memoria que se usó fue la 110h, escribir: h 110 100 0210 0010 • Para obtener la suma y diferencia entre las dos cantidades dadas (el número de bytes que ocupa el programa) • Posteriormente n nombre.com • El nombre del archivo en donde se desea guardar la información, siempre con extensión COM MERG