Download informática seccion 1 - Página Jimdo de maslogicamente
Document related concepts
no text concepts found
Transcript
¿Qué es un computador? DEFINICIÓN DE LA RAE: Máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos de tratamiento de información, capaz de resolver problemas matemáticos y lógicos mediante la utilización automática de programas informáticos. Se acepta computador o computadora. 1 Präsentat ion [ Introducción ]¿Qué es un computador? DEFINICIÓN DE Stallings: Máquina digital electrónica programable para el tratamiento automático de la información, capaz de recibirla, operar sobre ella mediante procesos determinados y suministrar los resultados de tales operaciones. 2 Präsentat ion Introducción “Distinguir entre Arquitectura y organización” Arquitectura se refiere a los atributos de un sistema que son visibles para un programador – Impacto Directo en la ejecución lógica de un programa: Conjunto de instrucciones, número de bits usados en la representación de Datos (números, caracteres, etc), los mecanismos de entrada Salida, y las técnicas para direccionamiento de memoria. 3 Introducción La organización de Computadores se refiere a las unidades funcionales y sus interconexiones que dan lugar a especificaciones arquitectónicas. Detalles Hardware transparentes al programador tales como señales de control, interfaces entre el computador y los periféricos y la tecnología de Memoria usada. 4 Funcionamiento [ Introducción ] Transferencia de datos Control Almacenamiento de datos Procesamiento de datos 5 Präsentat ion Funcionamiento [ Introducción ] TRANSFERENCIA Transferencia de datos Control Almacenamiento de datos Procesamiento de datos 6 Präsentat ion Funcionamiento [ Introducción ] ALMACENAMIENTO Transferencia de datos Control Almacenamiento de datos Procesamiento de datos 7 Präsentat ion Funcionamiento [ Introducción ] PROCESAMIENTO CON USO DE MEMORIA Transferencia de datos Control Almacenamiento de datos Procesamiento de datos 8 Präsentat ion Funcionamiento [ Introducción ] PROCESAMIENTO CON USO DE MEMORIA Y TRANSFERENCIA Transferencia de datos Control Almacenamiento de datos Procesamiento de datos 9 9 Arquitectura de Computadores Präsentat ion Estructura [ Introducción ] Computer Peripherals Central Processing Unit Computer Main Memory Systems Interconnection Input Output Communication lines 10 10 Arquitectura de Computadores Präsentat ion Estructura [ Introducción ] CPU Computer Arithmetic and Login Unit Registers I/O System Bus CPU Internal CPU Interconnection Memory Control Unit 11 11 Arquitectura de Computadores Präsentat ion Estructura [ Introducción ] Control Unit CPU Lógica Secuencia ALU Internal Bus Control Unit Registros y Decodificadores De la Unidad de Control Registers Memoria De Control 12 12 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Generación Años 0 hasta 1945 Características Sistemas mecánicos y electro-mecánicos 1 1945 – 1955 Tubos al vacío, tableros 2 1955 – 1965 Transistores y sistemas por lotes 3 1965 – 1980 Circuitos integrados y multiprogramación 4 desde 1980 Computadores personales 13 13 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia La generación 0 (hasta 1945) • Ábacos • Calculadoras mecánicas. • Sistemas basados en relés. 14 14 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Primera Computadora Digital (mecánica) Usada para calcular tablas numéricas, calculaba cualquier función algebraica y almacenaba números. Se programaba con tarjetas. Charles Babbage y Ada Lovelace. Difference Engine (1822) 15 15 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Usada para computar tablas matemáticas y de navegación. Harvard Mark I (1930) 16 16 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia La primera generación (1940-1955) • Luego se utilizan tubos al vacío • Eran enormes (20.000 tubos) y lentas (un ciclo 1 seg.) • Un solo grupo diseñaba, construía, programaba, operaba y mantenía cada máquina. • Toda la programación se hacía en lenguaje máquina (alambrando tableros por ejemplo). • No existían los sistemas operativos. • En 1950 se introducen las tarjetas perforadas. 17 17 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia Usada en la Segunda Guerra Mundial para decifrar los mensajes de los alemanes. Colossus (1945) 18 18 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] ENIAC (1946) 19 19 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] UNIVAC (1946) 20 20 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Primera máquina que funcionó con un programa almacenado. John von Neumann, Princeton Manchester Mark I (1948) 21 21 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia La segunda generación (1955-1965) • Se introducen los transistores. • Distinción entre diseñadores, constructores, programadores, operadores y personal de mantenimiento. • Mainframes en salas acondicionadas. • Se escribían los programas en papel, luego se perforaban las tarjetas, cuarto de entrada, café, esperar la salida. • Los operadores toman las tarjetas del programa y colocan también los del compilador. • Se crea el proceso por lotes que agrupa trabajos. 22 22 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Transistor (1947) 23 23 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Máquina que funcionaba con tarjetas. JOHNNIAC (1954) 24 24 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Tarjeta sin perforar 25 25 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Línea de programa A = 1 5 6 Tarjeta perforada 26 26 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Primera máquina comercial con hardware de punto flotante (5kFLOPS). IBM 704 (1955) 27 27 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Primer compilador FORTRAN para IBM 704 (Formula Translator) FORTRAN (1957) 28 28 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] 4KB de memoria expandible a 16KB. Buena para leer tarjetas, copiar cintas e imprimir resultados, pero mala para cáclulos numéricos. Se utilizaba con fines comerciales (bancos, etc.) IBM 1401(1959) 29 29 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia IBM 1401: Centro de Cómputo 30 30 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Buena para hacer cómputos, se utilizaba con fines científicos. IBM 7094 31 31 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] a) b) c) d) e) f) IBM 1401 – IBM 7094: los programadores llevan tarjetas La 1401 lee un lote de tarjetas y los graba en la cinta Un operador lleva la cinta a la 7094 La 7094 realiza los cómputos Un operador lleva la cinta a una 1401 La 1401 imprime las salidas 32 32 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Fortran Monitor System Trabajo en FORTRAN 33 33 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia ERMA, General Electric (1959) 34 34 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia Primer video-juego. Estudiantes de MIT (1962) 35 35 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia Invención del mouse (1964). 36 36 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia La tercera generación (1965-1980) • Se introducen los circuitos integrados, lo cual es una gran ventaja en el precio y desempeño del computador. • Se introduce el sistema IBM 360 altamente compatible. • Se introduce la multiprogramación • Se introducen los discos duros. • Se introduce el tiempo compartido entre usuarios. 37 37 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Software compatible con IBM 7094, 1401 entre otros. IBM 360 (1964) 38 38 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Circuitos integrados 39 39 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] IBM 360 40 40 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia GE 625 (1965) 41 41 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia 4K de palabras de 18 bits. US$ 120.000 < 5% del precio de la IBM 7094 DEC PDP-1 (1961) 42 42 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia Fundación de Intel (1968) 43 43 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia #include main() { for(;;) printf("Hello world..."\n); } Laboratorio Bell desarrolla el lenguaje C (1972) 44 44 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia MULTICS (1976) 45 45 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia PDP-11/70 (1974) 46 46 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia De MULTICS nace UNICS (UNiplexed Information and Computing Service) luego se cambió a UNIX. Era un sistema abierto lo que generó un caos. IEEE generó un estándar llamado POSIX. 47 47 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia Primer microprocesador en un chip Intel 4004 (1971) 48 Präsentat ion [ Introducción ] Historia Intel 4004 (1971) 49 Präsentat ion Historia [ Introducción ] Steve Jobs & Steve Wosniak Appel I (1976) 50 50 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] ALTAIR 8800 (1975) 51 51 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Apple II (1978) US$ 1930 52 52 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Microsoft (1978) 53 53 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia La cuarta generación (desde 1980) • Usan LSI (large scale integration). • Intel 8080 (8 bits) -> IBM PC (1980) con DOS. • Intel 80286 (1983), 80386 (1985) y 80486 (1989). • GUI (graphical User Interface) -> Macintosh • Microsoft adopta GUI y desarrolla Windows (sobre DOS) • Microsoft saca Windows 95 como sistema operativo, luego Windows 98 (basado en 16 bits), Windows NT (32 bits) con ideas de VAX VMS. • Windows NT 5.0 se transformó en Windows 2000 • Windows 98 se transformó en Windows Me. • Windows XP 54 54 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia La cuarta generación (desde 1980) • UNIX se mantiene más fuerte en computadores potentes • Se basa en chips RISC de alto desempeño. • Pentium Liunx es una alternativa a Windows • Unix saca X Windows basado en GUI • Se introducen sistemas operativos en red (varios computadores conectados) y sistemas operativos distribuidos (múltiples procesadores). • continuará… 55 55 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] IBM PC (1981) 56 56 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Commodore 64 (1982) 57 57 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Disco Duro Memorex 10MB (1983) 58 58 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia #include main() { char *s1, *s2; par{ s1 = "Hello"; s2 = "world\n"; } cout << s1 << s2 << endl; return(0); } AT&T y Laboratorio Bell desarrollan C++ (1983) 59 59 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] IBM PC/AT (1983) 60 60 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Sony introduce el CD (1984) 61 61 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Commodore Amiga (1985) 62 62 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Macintosh (1984) 63 63 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] X Windows para UNIX (1984) 64 64 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Sparcstation (1989) 65 65 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] “Estoy construyendo un sistema operativo gratuito (no es más que un hobby, no será una cosa grande y profesional como GNU) para clónicos AT (con un 386 o 346).” Linus Torvalds, Helsinki, Oct. 91 Nace LINUX 66 66 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Intel Pentium (1993) 67 67 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Appel Newton (1993) 68 68 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Windows 95 (1995) 69 69 Arquitectura de Computadores Präsentat ion Historia [ Introducción ] Power Macintosh (1994) 70 70 Arquitectura de Computadores Präsentat ion [ Introducción ] Historia 71 71 Arquitectura de Computadores Präsentat ion [ Introducción ] LENGUAJES, NIVELES Y MÁQUINAS VIRTUALES. Modelo Básico y necesidad de Modelo Jerárquico [Tanenbaum2000] 72 LENGUAJES, NIVELES Y MÁQUINAS VIRTUALES Controlador de disco flexible. 16 comandos, c/u se especifica cargando entre 1 y 9 bytes en un registro del dispositivo. Comandos de lectura, escritura, movimiento del brazo, formateo de pistas. Inicialización, detección, reestablecimiento, recalibración del controlador y las unidades de disco. 73 LENGUAJES, NIVELES Y MÁQUINAS VIRTUALES Comandos básicos son READ y WRITE: requieren 13 parámetros empacados en 9 bytes. Los parámetros especifican: Dirección del bloque de disco, número de sectores por pista, modo de grabación empleado, etc. (Evitar la programación del HW, a través de máquinas virtuales con lenguajes de programación más cercanos a las personas.) 74 MÁQUINAS MULTINIVELES ACTUALES Nivel 0: N. de lógica digital. Nivel 1: N. de microprogramación o microarquitectura. Nivel 2: N. de máquina convencional, de arquitectura del set de instrucciones. Nivel 3: N. de sistema operativo. Nivel 4: N. de lenguaje ensamblador. Nivel 5: N. de lenguajes orientados a problemas 75 76 77 Interpretes / Traductor (Tanenbaum2000) Interpete: Traductor: 78 Nivel 0: Nivel de lógica digital. Corresponde al HW de la máquina. Está conformado por memorias RAM, memorias ROM, registros, unidades aritmético lógicas, unidad de control, buses de datos, buses de direcciones, bus de control, compuertas lógicas, fuentes de poder, etc. 79 Nivel 0: Nivel de lógica digital. Bajo este nivel existe un nivel denominado nivel de dispositivo, conformado por los elementos básicos con los cuales están construidos las compuertas lógicas, a saber, los transistores. El funcionamiento de los transistores, o de los semiconductores en general cae en el campo de la física de estado sólido. 80 Nivel 1: Nivel de microarquitectura (ó microprogramación). El nivel de microarquitectura está conformado por una máquina virtual denominada microprograma. El microprograma es un programa interprete de las instrucciones de salida del nivel de máquina convencional, que generalmente se implementa en firmware. 81 Nivel 1: Nivel de microarquitectura (ó microprogramación). La función del microprograma es generar los valores lógicos (0 y 1) de las líneas de control del HW de la máquina, que junto con un secuenciamiento adecuado ejecutan sobre el Hardware (Hw) las instrucciones del nivel anterior. 82 Nivel 2: Nivel de máquina convencional. Este nivel se denomina también nivel de arquitectura del set de instrucciones. En este nivel se definen cuestiones como el set de instrucciones de lenguaje de máquina, el formato de las instrucciones, las formas de direccionamiento, el largo y funcionalidad de los registros (de propósito general y específico), etc. 83 Nivel 2: Nivel de máquina convencional. Los manuales de referencia de lenguaje de máquina de los fabricantes de un computador, tratan de la máquina virtual de nivel 2. El set de instrucciones de lenguaje de máquina describe las instrucciones que el microprograma lleva a cabo sobre el Hw. 84 Nivel 3: Nivel de sistema operativo. El nivel de SO está conformado por un programa denominado sistema operativo. El sistema operativo puede visualizarse de dos formas: SO como máquina extendida: Presenta al programador una máquina extendida o máquina virtual, con un conjunto de instrucciones de alto nivel, con lo cual se configura una abstracción sencilla de los elementos de una computadora. 85 Nivel 3: Nivel de sistema operativo. SO como administrador de recursos: Los recursos de una computadora son: Procesadores, memoria, dispositivos de E/S. El SO asegura el correcto uso de los recursos de la computadora entre programas que piden el acceso a estos recursos que son compartidos. 86 Nivel 3: Nivel de sistema operativo. Ejemplo: Un SO de red, ordena el uso de un recurso compartido como una impresora por los diferentes usuarios. El nivel de sistema operativo es un nivel híbrido. La mayoría de las instrucciones de este nivel están presente en el nivel 2, por lo que son ejecutadas directamente por el microprograma. 87 Nivel 3: Nivel de sistema operativo. Además existen otras instrucciones que tiene que ver con cuestiones como la creación, ejecución y comunicación de procesos (programa en ejecución). 88 Nivel 3: Nivel de sistema operativo. Las funciones del sistema operativo son básicamente 4: Administración de procesos, Sistema de archivos, Administración de memoria, Administración de los dispositivos de E/S. 89 Nivel 4: Nivel de lenguaje ensamblador. Este nivel está conformado por un programa traductor denominado ensamblador. El lenguaje ensamblador es una forma simbólica de los lenguajes subyacentes. En general corresponde a una forma simbólica del lenguaje de máquina convencional o lenguaje de máquina que es un lenguaje binario. 90 Nivel 4: Nivel de lenguaje ensamblador. Los símbolos del lenguaje ensamblador son típicamente ADD, SUB, MUL, DIV, que representan operaciones como sumar, restar, multiplicar y dividir. La tarea del ensamblador en una primera instancia es traducir el lenguaje simbólico a lenguaje de máquina. 91 Nivel 4: Nivel de lenguaje ensamblador. El programa ensamblador como traductor toma el programa fuente (programa con instrucciones en símbolos) y lo convierte a un programa objeto, que es el programa que realmente se ejecuta. 92 Nivel 4: Nivel de lenguaje ensamblador. Cuando se ejecuta el programa objeto hay tres niveles presentes: El nivel de microprogramación, el nivel de máquina convencional y el nivel de sistema operativo. 93 Nivel 4: Nivel de lenguaje ensamblador. En tiempo de ejecución hay 3 programas presentes en memoria: El programa objeto del usuario, el sistema operativo y el microprograma. 94 Nivel 5 y 6 Nivel 5: Nivel de lenguajes orientados a problemas. Este nivel está constituido por programas traductores denominados compiladores. Los lenguajes de nivel 5 son denominados de alto nivel dado que son muy cercanos a las personas. Ejemplos de estos lenguajes son el Pascal, el Fortran, C, Cobol, entre otros. 95 Nivel 5 y 6 Nivel 6 y superiores: Aplicaciones. Este nivel provee de máquinas virtuales orientadas a aplicaciones específicas. Entre las máquinas virtuales presentes en este nivel están las planillas de cálculo, procesadores de texto, etc. 96 Otras Clasificaciones La arquitectura Von Newman sigue el ciclo de ejecución secuencial de instrucciones (una a una) que opera sobre datos escalares. No obstante hay otros modelos de arquitectura. La clasificación más aceptada desde el punto de vista de la estructura del Computador, es la de “Flynn”, la cual se realiza según el número de Instrucciones o datos implicados en cada ciclo de reloj 97 Clasificaciones Arquitecturas SISD (Single Instruction – Single Data) construccion de procesadores Superescalares, que arrancan varias instrucciones simultaneamente, aunque se siguen considerando SISD, como los PowerPC y los Intel. (Von Newman) SIMD (Single Instruction – Multiple Data): Computadores vectoriales 98 99 Taxonomía de Flynn MIMD (Multiple Instruction – Multiple Data): Multiprocesadores con Memorias Compartidas y los Multicomputadores con Memoria Independiente. Procesadores Multinucleo, que son Chip con múltiples procesadores en su interior. Máquinas MIMD son Core Duo (dos procesadores) y los Core Quad (cuatro procesadores), también de Intel, donde cada procesador es a su vez superescalar. 100 Taxonomía de Flynn SISD (Single Instruction – Single Data) construccion de procesadores Superescalares, que arrancan varias instrucciones simultaneamente, aunque se siguen considerando SISD, como los PowerPC y los Intel. MISD (Multiple Instruction – Simple Data): Diversas instrucciones operan sobre un único Dato. Son las más alejadas de las arquitecturas convencionales. 101