Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Ing. Martín Vernengo, 2018 ~ 2021. mvernengo@gmail.com Martin.Vernengo@unahur.edu.ar Capítulo 1 Introducción a las Computadoras Digitales � Digital viene de “digitos” un número fijo de valores posibles contra el analógico donde la cantidad de valores posibles entre dos extremos mínimo y máximo es virtualmente infinita; � Los sistemas digitales preven sólo un número finito de valores (por ejemplo si son 2, el 1 y el 0 son BINARIAS además de digitales) y permiten regenerar las señales (= información), eliminando el ruido que las afecta; Por qué digital y no analógico? Canal de Comunicaciones ó Circuito Electrónico RUIDO Señal ANALÓGICASeñal ANALÓGICA Canal de Comunicaciones ó Circuito Electrónico Ing. Martín Vernengo, 2021. mvernengo@gmail.com Señal DIGITAL Y BINARIASeñal DIGITAL Y BINARIA 1 bits: 0 1 1 0 1 Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado � Por ejemplo en la figura superior vemos una señal digital de 4 niveles y nos damos cuenta que no es tan fácil regenerar la señal original cuando aparece el ruido, ya que esos 4 niveles “están demasiado juntos”; � En cambio, la señal que además de digital es BINARIA, esos dos valores están “bien separados” y salvo que el ruido sea realmente muy grande, siempre es posible recomponer la señal original. Pero en compensación, con una señal de 4 niveles se puede enviar el DOBLE de bits en el mismo intervalo de tiempo (“velocidad de datos” doble); Canal de Comunicaciones ó Circuito Electrónico RUIDO Señal DIGITAL NO BINARIA (4 NIVELES)Señal DIGITAL NO BINARIA (4 NIVELES) Canal de Comunicaciones ó Circuito Electrónico Señal DIGITAL Y BINARIASeñal DIGITAL Y BINARIA Por qué digital binario y no “multinivel”? 1,00 V 0,33 V 0,66 V 0,00 V 0,33 V 1,00 V01 10 11 00 10 01 bits: bits: bits: bits: bits: bits: 1 bits: 0 1 1 0 1 Ing. Martín Vernengo, 2021. mvernengo@gmail.com Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Voltaje versus TiempoVoltaje versus Tiempo Niveles lógicos: el “1” y el “0” � Si ahora nos concentramos en un sistema electrónico como lo es una computadora, vemos que deben definirse rangos de voltajes para lo que se considera un 0 ó un 1 lógico; � Entonces, el rango de reconocimiento como 1 ó 0 debe ser mayor a la entrada del sistema electrónico que lo que se envía a la salida, para acomodar las variaciones debido al ruido. Rango de VoltajesRango de Voltajes “1 LÓGICO” “0 LÓGICO” CIRCUITO ELECTRÓNICO “1 LÓGICO” “0 LÓGICO” Tiempo Tiempo RUIDO Ing. Martín Vernengo, 2021. mvernengo@gmail.com Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado La Computadora Digital � CPU = “Central Processing Unit” o Unidad Central de Procesamiento: � Es el núcleo de toda Computadora Digital y está compuesto por la Unidad Aritmetico Lógica (ALU – Arithmetic Logic Unit), la Unidad de Control y un banco de registros (memoria interna); � Los dispositivos de entrada/salida (input/output) permiten ingresar datos a ser procesados y obtener los datos- resultado (teclado, mouse, pantalla, discos magnéticos, impresoras, dispositivos de comunicaciones); � La memoria externa puede ser volátil (normalmente denominada RAM) o permanente (denominada genéricamente ROM) contiene variables de datos usadas en los programas y las propias instrucciones de programa; � La Unidad de Control es la parte clave que permite el funcionamiento de la CPU al coordinar las tareas de procesamiento realizadas mediante la ALU sobre los datos e instrucciones de programa intercambiados con la memoria externa y guardados temporalmente en los registros internos. Unidad Aritmético Lógica (ALU) Unidad de Control Dispositivos de Entrada Dispositivos de Salida Memoria Externa (RAM/ROM) Señales de Control Datos Digitales (Información) Datos de Entrada (a procesar) Datos de Salida (procesados) CPU Ing. Martín Vernengo, 2021. mvernengo@gmail.com Banco de Registros (Memoria Interna) Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Qué es un “sistema embebido” Ing. Martín Vernengo, 2021. mvernengo@gmail.com � Por ejemplo, hoy en día un Aire Acondicionado es un “sistema embebido”, es decir tiene adentro una computadora para fines específicos que permite medir y controlar parámetros sistemas reales. � De modo que en el mundo actual las computadoras dejaron de ser “dispositivos especiales” utilizados excusivamente para procesar información digital sino que están presentes en casi el 100% de los dispositivos tecnológicos utilizados todos los días: � Electrodomésticos (Lavarropas, Aireacondicionados, Microondas, TV’s y dispositivos de audio/video), dispositivos de comunicaciones (switches para redes de computadores, routers wi-fi) , aparatología utilizada en medicina, sistemas de control de procesos industriales (PLC), etc. etc. etc…. µC /µP Micro Controlador ó Micro Procesador (CPU) Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Diagrama en bloques de un sistema embebido Sensores Analógicos de Entrada (termómetro) Sensores Digitales de Entrada (botonera AA) Conversor A/D Microcomputador ó Microcontrolador ó Procesador Digital de Señales (DSP) Conversor D/A Actuadores Analógicos de Salida (compresor/ motor del AA) Actuadores Digitales de Salida (indicador de temperatura) Memoria (Programa de Control del AA) Ing. Martín Vernengo, 2021. mvernengo@gmail.com � Los sistemas embebidos reciben ese nombre por el hecho de tratarse de equipamiento que en forma externa no hay forma de determinar si son controlados a través de una computadora, por lo que puede afirmarse que hay un “software embebido” almacenado en un “microcontrolador” interno. � El diagrama en bloques no es muy diferente al de una computadora digital de uso general, salvo por el hecho de la existencia de: � Conversores A/D (Analógico-Digitales) a la entrada, para convertir las señales analógicas del mundo exterior a formato binario para que pueda ser procesado por la CPU y � Conversores D/A (Digital-Analógicos) a la salida, para que las señales de control creadas en formato binario por el programa embebido sean transformadas en actuadores eléctricos (por ejemplo el motor de un compresor en una heladera o un aire acondicionado o el de un lavarropas); Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Sensores Analógicos de Entrada (termómetro) Sensores Digitales de Entrada (botonera AA) Conversor A/D Microcomputador ó Microcontrolador ó Procesador Digital de Señales (DSP) Conversor D/A Actuadores Analógicos de Salida (compresor/ motor del AA) Actuadores Digitales de Salida (indicador de temperatura) Memoria (Programa de Control del AA) Diferenciasentre Computadoras y Sistemas Embebidos Temperatura Analógica Tiempo (minutos) Tiempo (minutos) Temperatura Digitalizada � En esencia hay dos aspectos que diferencian a una computadora general de los sistema embebidos: � Como ya dicho, los sistemas embebidos siempre requieren conversores A/D y D/A; � Las computadoras son mucho más flexibles en cuanto a los programas con que funcionan (software): deben serlo ya que tienen un propósito general y no específico. Ing. Martín Vernengo, 2021. mvernengo@gmail.com Valntino Chiappanni Resaltado Capas de Abstracción en una Computadora � Por “capas de abstracción” entendemos el análisis que puede hacerse de una computadora digital a distintos niveles de complejidad denominados “capas”: � A efectos de describir el funcionamiento del sistema, en cada una de esas capas podemos “abstraernos” de los detalles de la capa inmediatamente inferior; � Esto tiene la ventaja de poder realizar un análisis del problema a resolver de una manera primero más general o de “alto nivel”, luego pasando paulatinamente a describir la solución a niveles cada vez más específicos o de “bajo nivel” a medida que vamos hacia capas inferiores. Algoritmos Lenguajes de Programación Sistemas Operativos Microarquitectura Transferencias de Registros Compuertas Lógicas Circuitos de Transitores Ing. Martín Vernengo, 2021. mvernengo@gmail.com Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado “Alto” y “Bajo” Nivel � Las capas superiores brindan una visión más general o “de alto nivel”: � Esconden las complejidades de la estructura circuital electrónica (“hardware”); � Permiten comandar la CPU a través de un “listado de directivas” ( “programas” ó “software”); � Se las denomina de “alto nivel” pues especifican el funcionamiento con mayor generalidad; � Las capaz inferiores o de “bajo nivel” requieren mayor especificidad cuanto a la forma en la que se desea que la computadora opere: � De modo que cuanto más abajo se encuentra una capa, más cerca se está de describir el funcionamiento de los circuitos electrónicos o “hardware”; + So ftw are + A lto N ivel + H ard w are + B ajo N ivel Algoritmos Lenguajes de Programación Sistemas Operativos Microarquitectura Transferencias de Registros Compuertas Lógicas Circuitos de Transitores Ing. Martín Vernengo, 2021. mvernengo@gmail.com Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Algoritmos � Son una lista de pasos o instrucciones que deben ser ejecutados secuencialmente por una computadora digital para obtener un modelo de solución para un problema planteado. � Para realizar un programa es conveniente entonces el diseño previo del algoritmo. � Un lenguaje de programación es sólo un medio para expresar un algoritmo, de modo que los algoritmos son independientes de los lenguajes de programación. � Es decir: en cada problema el algoritmo puede escribirse y luego implementarse y ejecutarse con un lenguaje diferente de programación. Algoritmos Lenguajes de Programación Sistemas Operativos Microarquitectura Transferencias de Registros Compuertas Lógicas Circuitos de Transitores Ing. Martín Vernengo, 2021. mvernengo@gmail.com Algoritmo “Arreglar Lámpara” Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Lenguajes de Programación � Los lenguajes de “Alto Nivel” como C++, Pascal, Java , etc. contienen las sentencias específicas que permiten implementar un algoritmo pero que no pueden en general ser ejecutados directamente por la computadora digital que utiliza “código de máquina” constituido por 1’s y 0’s; � Existe un tipo particular de programa llamado “compilador” que traduce el código de los lenguajes de alto nivel al código de máquina que puede ejecutar la computadora; � Los lenguajes de “Bajo Nivel” (denominados generalmente “assembler” o ensambladores) contienen instrucciones muy granulares que están directamente relacionadas con una instrucción como realmente las ejecuta la computadora con los códigos de máquina, pero tiene una sintaxis entendible para los seres humanos; Algoritmos Lenguajes de Programación Sistemas Operativos Microarquitectura Transferencias de Registros Compuertas Lógicas Circuitos de Transitores Ing. Martín Vernengo, 2021. mvernengo@gmail.com Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Valntino Chiappanni Resaltado Lenguajes de Programación: ejemplo alto nivel Algoritmos Lenguajes de Programación Sistemas Operativos Microarquitectura Transferencias de Registros Compuertas Lógicas Circuitos de Transitores Ing. Martín Vernengo, 2021. mvernengo@gmail.com Algoritmo “Arreglar Lámpara” Lenguaje Alto Nivel PROGRAMADOR (humano) input estado_lamp If estado_lamp == no_enchufada /* = 0 estado_lamp = enchufada /* = 1 return /* FIN PROGRAMA input estado_foco if estado_foco == fallado /* = 0 prox_accion = reemp_foco /* = 1 return /* FIN PROGRAMA prox_accion = compra_lampara /* = 2 return /* FIN PROGRAMA Lenguajes de Programación: ejemplo bajo nivel Ing. Martín Vernengo, 2021. mvernengo@gmail.com Código “Assembler” Equivalente Lenguaje Alto Nivel Código de Máquina (Binario) 011101010011101010010110101011 011101010010010100101010100101 010101110111010101011001010101 101010110001011111010101010000 110010010101001010101001010010 100101010100101001010010100101 101010101010101001010101010111 101010101001010100101010101111 010101010101010100101010100101 010101010111110100000101001110 101010110001011111010101010000 110010010101001010101001010010 100101010100101001010010100101 101010101010101001010101010111 101010101001010100101010101111 010101010101010100101010100101 010101010111110100000101001110 COMPILADOR LENGUAJE ALTO NIVEL (software) Correspondencia directa línea a línea input estado_lamp If estado_lamp == no_enchufada /* = 0 estado_lamp = enchufada /* = 1 return /* FIN PROGRAMA input estado_foco if estado_foco == fallado /* = 0 prox_accion = reemp_foco /* = 1 return /* FIN PROGRAMA prox_accion = compra_lampara /* = 2 return /* FIN PROGRAMA 10 instrucciones de alto nivel 17 instrucciones de bajo nivel Registro A (Reg_A) Registro B (Reg_B) estado_lamp estado_foco prox_accion 17 instrucciones de bajo nivel LOAD Reg_A, MEM_estado_lamp LOAD Reg_B, VALOR_no_enchufada SUBTRACT Reg_A, Reg_B JMP_NONZERO SALTO1 LOAD Reg_A, VALOR_enchufada STORE Reg_A, MEM_estado_lamp JMP FIN_PROG SALTO1: LOAD Reg_A, MEM_estado_FOCO LOAD Reg_B, VALOR_fallado SUBTRACT Reg_A, Reg_B JMP_NONZERO SALTO2 LOAD Reg_A, VALOR_reemp_foco STORE Reg_A, MEM__prox_accion, JMP FIN_PROG SALTO2: LOAD Reg_A, VALOR_comprar_foco STORE MEM__prox_accion, Reg_A FIN_PROG: RETURN Sistemas Operativos � Luego se inventaron los “sistemas batch” (procesamiento por lotes) que permitían acelerar el proceso y utilizar cintas magnéticas para el ingreso y salida de datos (aunque finalmente se imprimía). � En los primeros días de la computación, no había teclados ni pantallas: los usuarios imprimían “tarjetas perforadas” que contenían los programas, que se leían por un “lector de tarjetas” y los resultados luego de “correr el programa” se obtenían en una impresora; � Todas estas tareas para distintos usuarios que traían sus “tarjetas perforadas” eran realizadas por los “operadores” de los centros de cómputos:y el programa que luego se implementó para leer la cinta magnética y mandar ejecutar las rutinas una por una sería el “abuelo” de los actuales “sistemas operativos”; � Los sistemas operativos hoy en día son programas que permiten al igual que en los antiguos sistemas batch que varios “usuarios”, que ahora son diferentes programas o procesos de un mismo o varios usuarios, compartan recursos tales como el procesador y los dispositivos de entrada/salida, actuando como interfaz con el hardware. Algoritmos Lenguajes de Programación Sistemas Operativos Microarquitectura Transferencias de Registros Compuertas Lógicas Circuitos de Transitores Ing. Martín Vernengo, 2021. mvernengo@gmail.com Microarquitectura � Antes ya explicamos lo que era el “código de máquina”: instrucciones codificadas en forma digital binaria que sólo pueden ser “entendidas” fácilmente por la CPU y que no tiene sentido que usen los humanos; � En particular, el área de la CPU encargada de interpretar el código de máquina es la Unidad de Control; Algoritmos Lenguajes de Programación Sistemas Operativos Microarquitectura Transferencias de Registros Compuertas Lógicas Circuitos de Transitores Ing. Martín Vernengo, 2021. mvernengo@gmail.com � “Microarquitectura”: es el proceso por el cual el código de máquina se transforma órdenes (señales de control) dirigidas al resto de las partes de la CPU (registros o memoria interna a del procesador, memoria externa, Unidad Aritmética- Lógica o ALU en inglés); � Utiliza un tipo de “programación “ de muy muy bajo nivel, sólo utilizado por los diseñadores de microprocesadores, que se llama “microprogramación”. señales de control Transferencias de Registros � Una instrucción de alto nivel (por ejemplo en Lenguaje C++ o Java) puede constar de decenas de instrucciones de código de máquina; � Y cada instrucción de máquina a su vez puede implicar una secuencia de varias señales de control, algo de lo cuál el programador no necesita saber nada (por suerte). Algoritmos Lenguajes de Programación Sistemas Operativos Microarquitectura Transferencias de Registros Compuertas Lógicas Circuitos de Transitores Ing. Martín Vernengo, 2021. mvernengo@gmail.com � Cuando la Unidad de Control por ejemplo da la orden a través de señales de control para transferir datos de la memoria externa a la memoria interna (mejor conocida como “registros internos” de la CPU) o hacia la ALU a la que a su vez le ordena realizar una suma, estamos en el domino de la capa que hemos denominado “Transferencia de Registros”; � Compuerta AND (“Y” en inglés): la salida sólo es un “1” binario si la entrada 1 Y la entrada 2 Y la entrada 3 … Y TODAS las entradas son 1 (o lo que es lo mismo: es “0” si una o más de sus entradas es “0”); � Compuerta NOT (“NO en inglés): invierte la salida (de “0” a “1” y viceversa); Algoritmos Lenguajes de Programación Sistemas Operativos Microarquitectura Transferencias de Registros Compuertas Lógicas Circuitos de Transitores Compuertas Lógicas � Este tema será estudiado en detalle más adelante pero por ahora veamos un ejemplo simple de dos compuertas lógicas con las cuales en rigor podría construirse toda una computadora digital: 1 1 … 1 1 1 0 … 1 0 1 0 0 1 Ing. Martín Vernengo, 2021. mvernengo@gmail.com Algoritmos Lenguajes de Programación Sistemas Operativos Microarquitectura Transferencias de Registros Compuertas Lógicas Circuitos de Transitores Circuitos de Transistores � En las CPU modernas hay miles de millones de transistores con los que se construyen las compuertas lógicas (ejemplo de una NOT abajo) que son la base de su funcionamiento. Señal de Control: S = +5 Volts (*) = “1”: Llave Cerrada. S = 0 Volts = “0”: Llave Abierta. (*) 5 volts es un ejemplo. = R +5V − 1 0 0 1= Entrada NOT: 5 Volt = “1” 0 Volt = “0” Salida NOT: 0 Volt = “0” 5 Volt = “1” Ing. Martín Vernengo, 2021. mvernengo@gmail.com Principio de Equivalencia Hardware-Software � Está implícito en el modelo de “capas de abstracción” y nos dice que: “Todo aquello que puede realizarse a través de software (programas), también puede realizarse con hardware (circuitos electrónicos/compuertas lógicas)”. � Ejemplo: SoftwareSoftware if A = 1 AND B = 1 then C = 1 else C = 0 endif HardwareHardware = � Antes de la invención de las computadoras y sobretodo los microprocesadores, las aplicaciones simples de control de equipos que actualmente se realizan con los sistemas embebidos, se hacían directamente con hardware que “programaba” su funcionamiento: � Ejemplo: “encender el microondas (C=1) sólo si el usuario presionó el botón de calentar (A=1) Y ADEMÁS (AND) la puerta del microondas se encuentra CERRADA (B=1)”. Ing. Martín Vernengo, 2021. mvernengo@gmail.com if A = 1 AND B = 1 AND D = 1 then C = 1 else C = 0 endif D Modificación ! Los FPGA’s y la posibilidad de “programar hardware” � En los últimos 20 a 30 años han surgidos dispositivos que gradualmente han ido permitiendo a los ingenieros desarrollar hardware de microelectrónica programable hasta llegar con los FPGA a la posibilidad de “crear su propia CPU”; � Con los FPGA (“Field Programmable Gate Array”, “Arreglo de Compuertas [Lógicas] Programable en Campo”) es posible directamente crear un microprocesador de manera flexible, es decir todo aquello que normalmente “viene fijo” en un procesador de Intel o AMD, aunque el objetivo NO ES competir con ellos (y sería casi imposible…); Ing. Martín Vernengo, 2021. mvernengo@gmail.com � La utilidad de los FPGA está en desarrollar CPUs o circuitos inteligentes que cumplan un objetivo específico: por ejemplo procesamiento de señales, cálculos en paralelo (mayor rapidez) con un algoritmo específico; � Hasta existe un lenguaje que permite programarlos (son “HDLs” o “Hardware Description Languages”)y “escribir un chip” a través de una herramienta electrónica: por ejemplo VHDL es uno y Verilog es otro. Historia de las Computadoras: las tarjetas perforadas Herman HollerithLa tarjeta de Hollerith card tal como mostrada en la la Railroad Gazette, en 1895, con 12 filas y 24 columnas � El sistema de tarjetas perforadas se ideó inicialmente para “programar” máquinas textiles para tejer patrones fue perfeccionado en 1801 por J.M.Jacquard, en base a diseños originales con papel perforado que databan de tan tempranamente como 1725 también en Francia (Bouchon, Falcon y Vaucanson); Ing. Martín Vernengo, 2021. mvernengo@gmail.com Joseph Marie JacquardPerforadora de Tarjetas de Jacquard � Las máquinas de Jacquard no utilizaban un sistema eléctrico para sensar con las tarjetas perforadas pero eso fue lo que sí realizó Herman Hollerith para obtener más rápidamente los resultados del censo de 1890 en los EUA; � Hollerith fundó la compañía que más adelante se llamaría IBM y que por muchos años fue el líder absoluto de la industria de la computación. Diseños de 1840 y 1842 realizados con un “Telar de Jacquard” � En algún sentido, podría decirse que fue el primer sistema de producción automatizado por métodos “informáticos”; Historia de las Computadoras: los comienzos � La primera computadora no electrónica (electromecánica) fue ideada Charles Babbage en el año 1833 y era lo que podríamos hoy día llamar una “calculadora programable” y la llamó “Máquina Analítica”; Charles Babbage Ing. Martín Vernengo, 2021. mvernengo@gmail.com Ada Byron Condesa de Lovelace � Babbage sólo pudo construir una versión previa llamada “Máquina Diferencial” concebida sólo para cálculos muy específicos con polinomios y sólo parcialmente pudo construir la siguiente versión, la “Máquina Analítica” que era lo que hoy denominaríamos una computadora de uso general; � Aunque no pudo hacerla funcionar completamente, sí pudo realizar un diseño integral en el papel; � Ya contenía la idea de una “Unidad Aritmético Lógica”, de una “Memoria” y hasta de un “Programa” donde incluso se preveía la posibildad de saltos condicionales (el “if”); � Estabaprevisto que los programas se introdujeran con tarjetas perforadas, inspirándose en los telares de Jacquard y lo que sería el método que un siglo después utilizaron las computadoras digitales (como veremos); � El diseño de la “máquina analítica” de Babbage, incluso preveía la primera impresora automática como sistema de salida, algo que también utilizaron las primeras computadoras construidas un siglo después; � Ada Byron (hija del famoso escritor británico y luego casada con el Conde de Lovelace, por eso también conocida como Ada Lovelace), fue una de las primeras matemáticas mujeres eminentes de la historia; � Es considerada “la primera programadora de la historia” ya que además de ayudar a Babbage a promover y buscar financiación para su proyecto, generó algunos programas para la computadora (eran diseños teóricos ya que como dijimos Babbage no logró implementar su “máquina analítica” completamente); � En su honor, en 1977 se creó un Lenguaje llamado “Ada”; Historia de las Computadoras: George Boole � Nacido en 1815, fue profesor de matemáticas en el Queen’s College (una Universidad) de Cork, Irlanda; � Como inventor del álgebra que hoy en día se conoce como “Álgebra de Boole” en su honor, que marca los fundamentos de la aritmética computacional moderna, Boole es considerado como uno de los fundadores del campo de las Ciencias de la Computación; � En 1854 publicó “An Investigation of the Laws of Thought on Which are Founded the Mathematical Theories of Logic and Probabilities”; George Boole � Se podría decir que es el padre de los operadores lógicos simbólicos y que gracias a su álgebra hoy en día es posible operar simbólicamente para realizar operaciones lógicas; � Como veremos más adelante, el diseño de los circuitos internos de las computadoras digitales modernas (la capa que anteriormente denominamos “Compuertas Lógicas”) utiliza el Álgebra de Boole. � Allí desarrolló un sistema de reglas que le permitían expresar, manipular y simplificar problemas lógicos y filosóficos cuyos argumentos admiten dos estados (verdadero o falso, ó 1 y 0) por procedimientos matemáticos; Ing. Martín Vernengo, 2021. mvernengo@gmail.com � La Segunda Guerra Mundial fue una de principales motores para acelerar el desarrollo de computadoras digitales y de la computación como ciencia; � Nacido en Londres, Alan Turing (1912-1954) es considerado uno de los padres de la ciencia de la computación y precursor de la informática moderna. � Proporcionó una influyente formalización matemática de los conceptos de algoritmo y computación: la máquina de Turing; � Fue el primero en definir, en 1937 qué es y qué limitaciones tiene una computadora, a la que definió en términos puramente matemáticos como un “Autómata Finito”. La 2da Guerra Mundial y las primeras computadoras electrónicas Alan Turing � Turing fue el que decifró los códigos secretos de la Alemania Nazi de la “Máquina Enigma” y luego los códigos FISH: � Para poner en práctica los algoritmos de desencriptación de mensajes de Turing, el gobierno británico construyó una de las primeras computadoras digitales de propósitos específicos , la COLOSSUS MARK I; � La primera COLOSSUS funcionaba con 1500 válvulas y entró en servicio en Junio de 1944, siendo las ideas de Turing esenciales para su desarrollo; � Los datos (de los mensajes secretos) se leían con una cinta perforada; � No se la puede considerar la primera computadora ya que no era de “fines generales” o sea, no permitía resolver cualquier problema planteado; � Konrad Zuse en Alemania desarrolló una computadora, la Z1, que si bien utilzaba relays (electromecánica) su intención fue utilzar válvulas y sólo no lo pudo hacer por falta de esos suministros debido a la guerra (el gobierno nazi no financió su proyecto, por suerte); � John Atanasoff (1904–1995) fue un norteamericano que diseñó y construyó la primera computadora digital binaria con válvulas en 1939 pero tampoco era de “propósitos generales”; � Servía para resolver un problema matemático particular (ecuaciones lineales); � Sin embargo, el trabajo de Atanasoff fue el inspirador para los inventores de la primera computadora digital de propósitos generales, la ENIAC. Teoría de Autómatas Ing. Martín Vernengo, 2021. mvernengo@gmail.com La “Primera Generación”: la ENIAC Folleto del ejército estadounidense ofreciendo trabajo en la ENIAC, 1946. � Se considera como primera computadora electrónica digital (binaria) de propósitos generales la que se desarrolló y construyó durante la Segunda Guerra Mundial financiada por el ejército de EUA, la ENIAC ó “Electronic Numerical Integrator and Computer”; � La ENIAC fue inventada por J. Mauchly y J. P. Eckert (profesor y alumno), quienes estaban en una universidad cerca de Philadelphia, donde el primero era profesor de Física y deseaba acelerar los cálculos meteorológicos. � Mauchly estaba al tanto del trabajo de Atanassof. � No pudiendo recibir fondos de la universidad, y sabiendo Mauchly que el ejército de EUA necesitaba acelerar los cálculos de tablas de trayectorias balísticas, propuso y obtuvo financiación para el proyecto; � Sin embargo la computadora no pudo ser utilizada durante la guerra, ya que se puso en servicio recién en el año 1946. = � Utilizaba 17.468 válvulas, ocupaba un espacio de casi 170 m2, pesaba 30 toneladas y consumía una potencia de 170 Kilowatts, pero su memoria de datos era lo equivalente a menos de 128 bytes! (1000 bits) y se ingresaban por tarjetas perforadas; � Si bien funcionaba en base a lógica circuital binaria, la Unidad Aritmético Lógica (ALU) era decimal; Ing. Martín Vernengo, 2021. mvernengo@gmail.com Cómo se “programaba” la ENIAC � Esto hacía muy engorroso “programar” la computadora (en esa época se hacía directamente en código de máquina, ni siquiera era “assembler”); CPU REGISTRO A ALU UNIDAD DE CONTROL MEMORIA EXTERNA DISPOSITIVOS DE ENTRADA / SALIDA � La ENIAC se programaba conectando cables: el “código de máquina” no eran estrictamente hablando 1s y 0s sino “cable conectado” =1 ó “cable no conectado” = 0; Sólo Datos 6000 cables e interruptores Folleto del ejército estadounidense ofreciendo trabajo en la ENIAC, 1946. REGISTRO B REGISTRO C REGISTRO D MEMORIA INTERNA (REGISTROS) Ing. Martín Vernengo, 2021. mvernengo@gmail.com cable conectado = 1, cable desconectado = 0 = código de máquina= “Programa” Arquitectura de Von Neuman � Debido a la gran lentitud que implicaba la “programación con cables”, para la próxima computadora, la EDVAC, surgió la idea de almacenar los 1s y 0s del código de máquina en la misma memoria; � La idea fue aportada por el famoso matemático húngaro (y genio) nacionalizado estadounidense, John Von Neuman, quien era uno de los colaboradores para ENIAC y estaba en la Universidad de Princenton; � Nota: en algunos libros se menciona esta idea como original de los propios Mauchly y Eckert, quienes no pudieron publicarla al ser el de la ENIAC un proyecto clasificado secreto; � Pero un aporte indiscutido de Von Neuman fue dejar de lado la aritmética decimal y utilizar la binaria; � Las primeras computadora construidas en base al paradigma de Von Neuman, es decir “Computadoras Digitales por Programa Almacenado” y enteramente binarias fueron la EDVAC (construida por Mauchly y Eckert para el ejército de EUA) y la EDSAC en la Universidad de Cambridge, Reino Unido y ambas entraron en servicio en el año 1949; Programas 010110101… � Hubo que agregar un registro interno adicional, el INSTRUCTION POINTER (IP), también llamado habitualmente PROGRAM COUNTER (PC) para almacenar la dirección de la memoria donde está guardado el código de máquina de la próxima instrucción a realizar; � El PC se va incrementando para ejecutar secuencialmente las instrucciones: � Salvo cuando hay un salto de programa (un “if”) en que la ALU se utiliza para incrementar o decrementar el PC. Ing. Martín Vernengo, 2021. mvernengo@gmail.com CPU REGISTRO A ALU UNIDAD DE CONTROL MEMORIA EXTERNADISPOSITIVOS DE ENTRADA / SALIDA REGISTRO B REGISTRO C REGISTRO D MEMORIA INTERNA (REGISTROS) PROGRAM COUNTER (PC) DATOS (VARIABLES) CÓDIGO DE MÁQUINA + Datos dirección del dato (variable o código de máquina) “Computadora Electromecánica” (digital, mas no electrónica). El problema de la primera generación de computadoras � Las primeras computadoras digitales, aunque no electrónicas (ejemplo la Z1 de K. Zuse) fueron construidas con relés, que servían para generar un “1” con llave abierta y un “0” con llave cerrada; R + 5V − 1 0 0 1= Salida NOT: 0 Volt = “0” 5 Volt = “1” Entrada NOT: 5 Volt = “1” 0 Volt = “0” “Compuerta NOT a relé” Utiliza un electroimán y un resorte para atraer o repeler la pieza móvil de la llave PROBLEMAS: - Tamaño grande; - Bajísima velocidad; - Ultra baja confiabilidad (contactos defectuosos). � Las válvulas de vacío, inventadas a comienzos del siglo XX mejoraban mucho la velocidad, pero no el del tamaño y la confiabilidad era aún baja (se quemaban como las lamparitas de luz eléctrica), - - - + 5V − Entrada NOT: 5 Volt = “1” 0 Volt = “0” “Computadora Electrónica”... … pero a Válvulas. Los electrones son atraidos por la tensión positiva y el vacío elimina el aire que impediría su movimiento. Salida NOT: 0 Volt = “0” 5 Volt = “1” + + + + La reja de mando puede impedir que los electrones pasen (abre la llave) si se le aplica una tensión negativa respecto del cátodo.Ing. Martín Vernengo, 2021. mvernengo@gmail.com � La mayoría de las personas centralmente involucradas en el desarrollo de las primeras computadoras como la ENIAC terminaron fundando compañías propias para fabricar computadoras; � Mauchly y Eckert fundaron EMCC y a la Oficina del Censo de los Estados Unidos para que encargasen una computadora que se transformaría en la antecesora de la famosa Sperry UNIVAC (UNIVAC = Universal Automatic Computer), consiguiendo en 1948 un contrato para elaborar el censo de 1950, aunque no llegaron a tiempo para cumplir el diseño. Los comienzos de la industria de computadoras/IT Ing. Martín Vernengo, 2021. mvernengo@gmail.com � La empresa lanzó un ambicioso programa para diseñar y fabricar computadoras a gran escala, sin embargo sólo el gobierno, universidades y megacorporacion es tenían dinero para comprar una computadora; � Uno de los grandes logros fue el uso de la cinta magnética para almacenamiento a gran velocidad; � Crearon un departamento de software con el que desarrollaron aplicaciones, comenzando por el primer compilador de Lenguaje "Shortcode" del mundo; � Años después la empresa fue comprada y de ella deriva la empresa UNISYS, que sigue en el mercado de IT. Los comienzos de la industria de computadoras/IT � Ya habíamos visto que Hollerith, el pionero que utilizó tarjetas perforadas para el censo de EUA en 1890 fue quien fundó la compañía que años después se llamó IBM; � Pero IBM no estuvo interesada en el negocio de computadoras hasta 1953, cuando lanzó la IBM 701; � Tenía una memoria (RAM) de hasta 4096 palabras de 36 bits (lo equivalente a 18 Kilobytes!) ; Ing. Martín Vernengo, 2021. mvernengo@gmail.com � IBM fue durante largos años hasta la década del 1980 “la Coca Cola de la informática”, hablar de esta empresa en la década del 70 e incluso de los 80 era como desde 1990 en adelante hablar de Microsoft; � IBM esperaba mantener su posición en el mercado al tener los derechos de licencia del BIOS, y manteniéndose delante de la competencia. Desafortunadamente para IBM, otros fabricantes rápidamente hicieron ingeniería inversa del BIOS y produjeron sus propias versiones sin pagar derechos de uso a IBM. � Pero al crear la “IBM-PC” en 1981 y licenciar la utilización del firmware BIOS para la fabricación de PC’s por terceros, terminó perdiendo el control sobre este mercado de hardware que hoy domina la industria informática a manos de Intel y Microsoft, los fabricantes del entonces procesador 8088 y el sistema operativo DOS; � Sin embargo, hoy en día IBM sigue siendo una empresa muy importante en el mercado de la informática, que factura del orden de 80 mil millones de dólares anuales (el 20% del PBI Argentino) no obstante muy diversificada hacia el software y la consultoría informática con sólo alrededor de 10% de su facturación proveniente de hardware tal como servidores de alta performance. � Aunque hubo algunas versiones anteriores de transistores (de “efecto de campo”) en la década de 1920 que se pantentaron, no llegaron a ser utilizados; La “Segunda Generación”: transistores discretos John Bardeen, William Shockley y Walter Brattain (Bell Labs, 1948 ). =+VC− � � �� � � � ����� + V B − � � �� � � � ����� + V C − � La aplicación como “trans-resistor” de la figura superior se dio en la electrónica analógica (en la época: para disminuir el tamaño de radios y TV’s que funcionaban con válvulas), pero en la electrónica digital (computadoras) el funcionamiento del transistor también se hizo “digital” (binario): � Resistencia CERO: llave cerrada; � Resistencia INFINITA: llave abierta. = Modo Digital � El nombre “transistor” significa en realidad “trans-resistor”, lo que permitía en general es cambiar la resistencia eléctrica entre dos puntos (“C” y “E” en la figura, Colector y Emisor) a través (de ahí “trans”) del voltaje aplicado a un tercer punto (“B” en la figura, Base); � La primera versión de transistor que tuvo un impacto directo en la tecnología (los “transistores bipolares”) y cuyo funcionamiento pudieron explicar sus inventores, ganando por ello el premio Nobel de Física de 1956, surgió en el año 1948; � Utilizaban semiconductores (Germanio, Silicio) que al ser “contaminados” con impurezas generaban dos tipos de portadores carga, los electrones (semiconductor tipo “N”) y las “lagunas” (semiconductor tipo “P”); Ing. Martín Vernengo, 2021. mvernengo@gmail.com Las primeras computadoras con transistores � La primera computadora a transistores fue construida en el MIT (Massachusetts Institute of Technology) y se llamó TX-0 (computadora Transistorizada eXperimental) en 1956; � Uno de los ingenieros que trabajaba en el laboratorio, Kenneth Olsen, fundó en 1957 la que luego fue la famosa DEC (Digital Equipment Corporation) que fabricaba los también famosos computadores PDP. Ing. Martín Vernengo, 2021. mvernengo@gmail.com � La reacción de IBM fue construir la primera computadora a transistores, la IBM 7090 en 1958, luego la IBM 7094, convirtiéndose en el gran protagonista de la computación científica en esos años; PDP-1 (US$ 120.000 de 1961)� La primera computadora, la PDP-1, de 1961, costaba en el orden de decenas de miles de dólares en lugar de millones (US$ 120.000 que a precios actuales equivale a cerca de un millón de USD); � Las computadoras a transistores fueron el comienzo de la industria de los “MINICOMPUTADORES”, habiendo dos tipos de computadoas, las “científicas” (para universidades y gobierno) y las “comerciales” (empresas). IBM-7090 (US$ 3 millones de 1958) IBM-1401 (US$ 370 mil de 1959) � En 1954 , para competir con DEC en el mercado de las minicomputadoras, IBM lanzó el modelo 1401 (US$ 370.000), aunque se podía alquilar a US$ 2500/mes (estos valores hay que multiplicarlos por 8 para compararlos con precios del año 2021); � Jack Kilby (en Texas Instruments) primero y Robert Noyce (co-fundador de Fairchild Semiconductor) 6 meses después, inventaron en 1958 el “circuito integrado”; � También comunmente llamado “chip” (con referencia a la pastilla cuadrada de silicio donde se implantaban decenas de transistores); � Kilby recibió el premio Nobel de Física en el año 2000 por este logro ; � El de Noyce fue más importante, pues se hizo en Silicio y no Germanio (Kilby); La “Tercera Generación”: circuitos integrados Robert Noyce � La idea fue colocar más de un transistor en un chip de silicio mediante el uso de una máscara fotográfica con la que junto con la utilización de luz Ultravioleta (UV) se podíacontrolar en qué zonas se aplicaban contaminantes de un tipo u otro, para generar zonas de “semiconductor P” y “N” en espacios cada vez más pequeños y allí donde se quisiera; Ing. Martín Vernengo, 2021. mvernengo@gmail.com Proceso de fabricación de Circuitos Integrados Resina fotosensible que aún es resistente al “ataque ácido” Luz UV (UltraVioleta) Resina resistente al ácido Resina NO resistente al ácido ácido Óxido de Silicio (aislante eléctrico) Silicio “tipo N” (semiconductor) O2 MÁSCARA (proceso litográfico Creación de una “isla de Silicio Tipo P” por medio de implantación de impurezas de Boro Ing. Martín Vernengo, 2021. mvernengo@gmail.com Los Circuitos Integrados por dentro Ing. Martín Vernengo, 2021. mvernengo@gmail.com � Lo que se ve en la figura grande es el resultado de la aplicación de las máscaras sucesivas y de distintas “islas” de semiconductores “N”, “P”, óxido de silicio y metalizaciones para interconectar los transistores entre sí. Conexiones de oro (alta confiabilidad) del “chip” (circuito integrado) al circuito externo Encapsulado protector de resina epoxy (polímero) Primeras Computadoras con Circuitos Integrados � Las IBM 7094 y el modelo 1401 (el primero compacto de IBM), ambos basados en transistores individuales, tenían softwares completamente incompatibles entre sí; Ing. Martín Vernengo, 2021. mvernengo@gmail.com � DEC lanzó en 1965 el PDP-8, también con circuitos integrados híbridos que fue su primer gran éxito comercial y una de las computadoras más baratas hasta entonces: � US$ 18.500 ( x 8 a valores actuales…!!!) y en 1970 lanzó el PDP-11, que siguió utilizándose hasta 1997; � DEC al igual que IBM fue impactada por el aparecimiento de los clones de la IBM PC, aunque intentó competir con sus modelos “no compatibles” en la década de 1980; � La empresa fue vendiendo progresivamente sus unidades de negocios durante los 1990, por ejemplo a Oracle y Compaq (1998), y dejó de existir (Compaq fue luego comprada por Hewlett-Packard); � En 1964, IBM lanzó la primera computadora con circuitos integrados “híbridos”, el System/360 ó simplemente S/360, que fue un ícono de toda una época y un gran éxito comercial (se comercializó hasta 1977 y luego se continuó con los S/370 en 1970 y S/390 hasta los años 1990); � Pero una innovación casi tan importante como los circuitos integrados fue la “compatibilidad hacia atrás”: � Los S/360 eran sistemas que podían venir en varios tamaños y todo el software corría sin problemas en las versiones anteriores; � Esta compatibilidad hacia atrás se debió a que IBM introdujo la “microprogramación” (ya mencionada en la introducción), que permitía “programar” las señales de control de la Unidad de Control en forma similar a software y de esa forma facilitar el diseño de CPUs compatibles con otras); � La microprogramación permitía a la S/360 incluso emular las primeras computadoras de IBM, la 701 y la 7090/4 y de esta forma surgía la novedad que hoy en día es habitual de poder utilizarse el software previamente aplicado a otras plataformas. � En abril de 1965, uno de los ejecutivos de Fairchild Semiconductor, Gordon Moore observó que la cantidad de transistores que se podían colocar dentro de una pastilla o chip de silicio se duplicaba cada 18 meses a dos años, afirmación que hasta aproximadamente el 2012 se viene cumpliendo; La “Cuarta Generación”: las PC y los Servidores (VLSI) � En 1968 el inventor de los circuitos integrados en Silicio y co-fundador de Fairchild, Robert Noyce dejó la compañía junto con G. Moore para fundar INTEL. � Como era previsible por la “Ley de Moore” (como se popularizó la predicción), en 1970 se lanzaron al mercado las primeras CPU’s enteramente contenidas en una pastilla de Silicio, aunque eran versiones que manejaban palabras de “½ byte” (4 bits); � El primero fue un desarrollo para los aviones F14 de la marina en 1970, el MP944; � Intel lanzó en 1971 el 4004 (de 4 bits), el tátarabuelo de los Pentium y sucesores; � Utilizaban (y se siguen utilizando) un tipo de transistor distinto del transistor “bipolar” descubierto en 1948, el transistor MOS (Metal Óxido Semiconductor) que permite un mucho mayor nivel de integración; � En 1974 Intel lanza el 8080 (8 bits) y en 1976 el primer microprocesador de 16 bits, el 8086, pero IBM decide utilizar la versión posterior de 8 bits, el 8088 (1979) para desarrollar la IBM PC; � Como IBM (equivocadamente) utilizó chips de mercado y publicó integralmente la ingeniería de la IBM PC, además de usar el MS-DOS de la naciente Microsoft como sistema operativo, esto significó el aparecimiento de los “clones de IBM” y en definitiva de la era actual de computación personal pervasiva. El Intel 4004 � En 1972 Intel lanza el 8008, el primer microprocesador de 8 bits y sucesivamente varias compañías introducen decenas de microprocesadores similares de 8 bits durante la década de 1970: � Ejemplos: Motorola 6800 (1974), Motorola 6809 (1976), Zilog Z-80 (1976); Ing. Martín Vernengo, 2021. mvernengo@gmail.com � Actualmente nos encontramos de lleno en la “era del paradigma Cliente-Servidor” en la arquitectura de los sistemas informáticos; � Es un modelo de diseño de interconexión de hardware e implementación de “software distribuido”, donde las tareas se reparten entre los proveedores de recursos o servicios, llamados servidores, y los demandantes, llamados clientes, que por lo tanto son “inteligentes”, ya que tienen su propia CPU, al igual que el servidor. � Un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta; � El objetivo de esta arquitectura es que muchos usuarios puedan acceder simultáneamente a servicios compartidos de procesamiento y almacenamiento de datos y programas. Paradigma Cliente – Servidor versus… Ing. Martín Vernengo, 2021. mvernengo@gmail.com Clientes (“inteligentes”) Servidor Switch/Hub Wireless Router (Access Point) Internet (WAN con protocolo IP)Router IP Router IP Red de Área Local (LAN) Interacción permanente LAN = “Local Area Network”; WAN = “Wide Area Network”; CPU CPU CPU CPU CPU CPU � Sin embargo este paradigma no fue el inicial con el que arrancó la historia de la computación y está en constante evolución (como veremos en las próximas láminas); � En los primeros días de la computación (años 1950) no había recursos que compartir, había siempre un solo usuario que tenía a su disposición una “gran computadora personal”; � Luego, en los años 1960, cuando bajó el precio de las computadoras de millones de dólares a centenas y decenas de miles de dólares, creció el número de usuarios y se inventaron los sistemas “batch” ya vistos: Paradigma Cliente – Servidor versus… los “mainframes” Ing. Martín Vernengo, 2021. mvernengo@gmail.com … Fila (“queue”) de usuarios � A medida que la cantidad de usuarios creció todavía más y la tecnología evolucionó, fue posible crear los sistemas de “time sharing” (“tiempo compartido” pero nada que ver con turismo): � Con el uso de “terminales bobos” (“dumb terminals” en inglés) permitía que un usuario por vez accediera a una porción de “tiempo de procesador”, teniendo la ilusión de tener una “CPU dedicada”; � No se lo considera en general como un sistema “cliente- servidor” (aunque podríamos decir que sí lo era, pero con clientes “no inteligentes” que no tenían ninguna capacidad de procesamiento propia) y sólo pedían ejecutar programas y recibir los resultados en forma remota. � Este tipo de sistemas aparecieron progresivamente durante la década de los 60 y se generalizaron en los 70. Fila de Procesos (“process queue”) “Time Sharing” (“Tiempo Compartido”) “Batch Processing” (“Procesamiento por Lotes”) CPU (sin CPU) (sin CPU) (sin CPU) CPU Nota: los primeros terminales ni tenían pantalla, eran teletipos: se imprimía en papel y simultáneamente se envíaba al mainframe. � Durante los 70 fue justamente el período de tiempo en que se desarrollaron las primeras “computadoras personales”,ya que estaban en pleno desarrollo los microprocesadores, que abarataron la computación hasta dejarla en el orden de las centenas de dólares; � Inicialmente, esto sólo significó que las compañías seguían teniendo los mismo mainframes que antes, y las personas pasaron a poder también tener computadoras en sus casas – pero como internet todavía no llegaba al hogar, esto sólo era una versión más barata de la computación que había existido en la década de 1950; Los 1970 – 1980: transición hacia el “cliente-servidor” Ing. Martín Vernengo, 2021. mvernengo@gmail.com (sin CPU) � Sin embargo, las compañías como ya tenían redes propias (no internet aún), comenzaron a utilizar algunas PC como “terminales bobos”, mediante un software que emulaba a estos últimos: � Esto tenía la ventaja de que los usuarios corporativos podían usar la PC para programas simples como procesadores de texto y utilizaban la PC como “terminal bobo” para acceder a los sistemas administrativos del mainframe; (sin CPU) (CPU) CPU 1 (mainframe) CPU 2 (mainframe) IBM DEC � Incluso una PC tenía la ventaja de que si había dos mainframes diferentes (para aplicaciones distintas), con “terminales bobos” diferentes, con una misma PC podía emularse cualquiera de ellos. � A nadie se le ocurría en esa época quitar los mainframes y sustituirlos por aplicaciones cliente en las PC’s, mudando datos y aplicaciones a servidores; � Pues la inversión en mainframes era alta y no había internet extendido (los protocolos de comunicaciones como el IBM-SNA eran propietarios de los mainframes). � En los últimos 10 años viene desarrollándose este paradigma, que comenzó con aplicaciones sólo de almacenamiento en Data Centers lo que luego dio lugar a una serie de servicios adicionales: � Saas = “Software as a Service”: esencialmente qué es esto? Ni más ni menos que la “vuelta a los mainframes”, que ahora son los servidores de un “data center”, pero en la era de internet. � El software reside en un servidor del data center y una PC “boba” sólo solicita que se ejecute y recibe datos en forma remota… las PC vuelven a ser en cierta medida “dummy terminals” y toda la inteligencia está en los servidores; � Una sola instalación de software es compartida por diferentes compañías, no se pagan costosas licencias sino un “alquile#, no se consumen recursos del lado del cliente ni hay que gastar en la realización de costos upgrades, entre otras ventajas; � Cloud Computing: más amplio que Saas, incluyéndolo pero adicionando muchos otros recursos computacionales como servidores donde se alojan los datos, pudiendo gestionarlos y hacer back-ups en la nube como propios; � Virtualización: implica simular casi cualquier cosa “en la nube”, Sistemas Operativos que corren remotamente en una máquina cliente, distintos tipos de hardware como por ejemplo servidores que en realidad son uno solo dentro del Data Center. “Cloud Computing” y SaaS, surge un nuevo paradigma? “The Data Center is the new Mainframe” www.brightworkresearch.com Ing. Martín Vernengo, 2021. mvernengo@gmail.com
Compartir