¿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.

Download Report

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.

¿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 información, capaz de resolver problemas matemáticos y de lógicos tratamiento mediante de 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, entrada etc), Salida, y los las mecanismos de técnicas para direccionamiento de memoria.

3

Introducción

 La organización de Computadores se refiere a las unidades funcionales y sus interconexiones especificaciones que dan arquitectónicas.

lugar a  Detalles usada.

Hardware programador tales transparentes como al señales de control, interfaces entre el computador y los periféricos y la tecnología de Memoria 4

[ Introducción ] Transferencia de datos Funcionamiento Control Almacenamiento de datos Procesamiento de datos 5 Präsentat ion

[ Introducción ] TRANSFERENCIA Transferencia de datos Funcionamiento Control Almacenamiento de datos Procesamiento de datos 6 Präsentat ion

[ Introducción ] ALMACENAMIENTO Transferencia de datos Funcionamiento Control Almacenamiento de datos Procesamiento de datos 7 Präsentat ion

[ Introducción ] PROCESAMIENTO CON USO DE MEMORIA Transferencia de datos Funcionamiento Control Almacenamiento de datos Procesamiento de datos 8 Präsentat ion

[ Introducción ] PROCESAMIENTO CON USO DE MEMORIA Y TRANSFERENCIA Transferencia de datos Funcionamiento Control Almacenamiento de datos Procesamiento de datos Arquitectura de Computadores 9 Präsentat ion 9

[ Introducción ] Peripherals Computer Estructura Computer Central Processing Unit Main Memory Systems Interconnection Input Output Communication lines Arquitectura de Computadores 10 Präsentat ion 10

[ Introducción ] Computer I/O System Bus CPU Memory Estructura CPU Registers Arithmetic and Login Unit Internal CPU Interconnection Control Unit Arquitectura de Computadores 11 Präsentat ion 11

[ Introducción ] CPU ALU Internal Bus Control Unit Registers Estructura Control Unit Lógica Secuencia Registros y Decodificadores De la Unidad de Control Memoria De Control Arquitectura de Computadores 12 Präsentat ion 12

[ Introducción ] Historia Generación 0 1 2 3 4 Años hasta 1945 Características Sistemas mecánicos y electro-mecánicos 1945 – 1955 Tubos al vacío, tableros 1955 – 1965 Transistores y sistemas por lotes 1965 – 1980 Circuitos integrados y multiprogramación desde 1980 Computadores personales 13 Arquitectura de Computadores 13 Präsentat ion

[ Introducción ]

La generación 0 (hasta 1945) • Ábacos • Calculadoras mecánicas.

• Sistemas basados en relés.

Historia 14 Arquitectura de Computadores 14 Präsentat ion

[ Introducción ] Historia

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) Arquitectura de Computadores 15 Präsentat ion 15

[ Introducción ] Historia

Usada para computar tablas matemáticas y de navegación.

Harvard Mark I (1930) 16 Arquitectura de Computadores 16 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 • Un solo grupo diseñaba, construía, programaba, operaba y mantenía cada máquina.

 1 seg.) • 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 Arquitectura de Computadores 17 Präsentat ion

[ Introducción ]

Historia

Usada en la Segunda Guerra Mundial para decifrar los mensajes de los alemanes.

Colossus (1945) Arquitectura de Computadores 18 18 Präsentat ion

[ Introducción ] Historia ENIAC (1946) Arquitectura de Computadores 19 19 Präsentat ion

[ Introducción ] Historia UNIVAC (1946) Arquitectura de Computadores 20 20 Präsentat ion

[ Introducción ] Historia

Primera máquina que funcionó con un programa almacenado.

John von Neumann, Princeton

Manchester Mark I (1948) 21 Arquitectura de Computadores 21 Präsentat ion

[ Introducción ]

Historia La segunda generación (1955-1965) • Se introducen los • Distinción

transistores

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 Arquitectura de Computadores 22 Präsentat ion

[ Introducción ] Historia Transistor (1947) Arquitectura de Computadores 23 23 Präsentat ion

[ Introducción ] Historia JOHNNIAC (1954) 24

Máquina que funcionaba con tarjetas.

Arquitectura de Computadores 24 Präsentat ion

[ Introducción ] Historia Tarjeta sin perforar Arquitectura de Computadores 25 25 Präsentat ion

[ Introducción ]

Línea de programa

A = 1 5 6 Historia Tarjeta perforada Arquitectura de Computadores 26 26 Präsentat ion

[ Introducción ] Historia IBM 704 (1955) 27

Primera máquina comercial con hardware de punto flotante (5kFLOPS).

Arquitectura de Computadores 27 Präsentat ion

[ Introducción ] Historia

Primer compilador FORTRAN para IBM 704 (Formula Translator)

28 FORTRAN (1957) 28 Arquitectura de Computadores Präsentat ion

[ Introducción ] Historia IBM 1401(1959) 29

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.)

Arquitectura de Computadores 29 Präsentat ion

[ Introducción ]

Historia IBM 1401: Centro de Cómputo Arquitectura de Computadores 30 Präsentat ion 30

[ Introducción ] Historia IBM 7094 31

Buena para hacer cómputos, se utilizaba con fines científicos.

Arquitectura de Computadores 31 Präsentat ion

[ Introducción ] Historia IBM 1401 – IBM 7094: a) los programadores llevan tarjetas b) La 1401 lee un lote de tarjetas y los graba en la cinta c) d) Un operador lleva la cinta a la 7094 La 7094 realiza los cómputos e) Un operador lleva la cinta a una 1401 f) La 1401 imprime las salidas 32 Arquitectura de Computadores 32 Präsentat ion

[ Introducción ]

Fortran Monitor System

Historia Trabajo en FORTRAN Arquitectura de Computadores 33 33 Präsentat ion

[ Introducción ]

Historia ERMA, General Electric (1959) Arquitectura de Computadores 34 34 Präsentat ion

[ Introducción ]

Historia Primer video-juego. Estudiantes de MIT (1962) Arquitectura de Computadores 35 Präsentat ion 35

[ Introducción ]

Historia Invención del mouse (1964). Arquitectura de Computadores 36 Präsentat ion 36

[ 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

[ Introducción ] Historia

Software compatible con IBM 7094, 1401 entre otros.

IBM 360 (1964) Arquitectura de Computadores 38 38 Präsentat ion

[ Introducción ] Historia Circuitos integrados Arquitectura de Computadores 39 39 Präsentat ion

[ Introducción ] Historia IBM 360 40 Arquitectura de Computadores 40 Präsentat ion

[ Introducción ]

Historia GE 625 (1965) Arquitectura de Computadores 41 41 Präsentat ion

[ Introducción ]

Historia DEC PDP-1 (1961) 42

4K de palabras de 18 bits.

US$ 120.000 < 5% del precio de la IBM 7094

Arquitectura de Computadores 42 Präsentat ion

[ Introducción ]

Historia Fundación de Intel (1968) Arquitectura de Computadores 43 Präsentat ion 43

[ Introducción ]

Historia

#include main() { for(;;) printf("Hello world..."\n); }

Laboratorio Bell desarrolla el lenguaje C (1972) Arquitectura de Computadores 44 Präsentat ion 44

[ Introducción ]

Historia MULTICS (1976) Arquitectura de Computadores 45 45 Präsentat ion

[ Introducción ]

Historia PDP-11/70 (1974) Arquitectura de Computadores 46 46 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 Arquitectura de Computadores 47 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

[ Introducción ] Steve Jobs & Steve Wosniak Historia Appel I (1976) Arquitectura de Computadores 50 50 Präsentat ion

[ Introducción ] Historia ALTAIR 8800 (1975) Arquitectura de Computadores 51 51 Präsentat ion

[ Introducción ] Historia Apple II (1978) US$ 1930 Arquitectura de Computadores 52 52 Präsentat ion

[ Introducción ] Historia Microsoft (1978) Arquitectura de Computadores 53 53 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á… Arquitectura de Computadores 55 Präsentat ion 55

[ Introducción ] Historia IBM PC (1981) Arquitectura de Computadores 56 56 Präsentat ion

[ Introducción ] Historia Commodore 64 (1982) Arquitectura de Computadores 57 Präsentat ion 57

[ Introducción ] Historia Disco Duro Memorex 10MB (1983) Arquitectura de Computadores 58 58 Präsentat ion

[ Introducción ]

#include main() { char *s1, *s2; par{ s1 = "Hello"; s2 = "world\n"; } cout << s1 << s2 << endl; return(0); }

Historia AT&T y Laboratorio Bell desarrollan C++ (1983) Arquitectura de Computadores 59 Präsentat ion 59

[ Introducción ] Historia IBM PC/AT (1983) Arquitectura de Computadores 60 60 Präsentat ion

[ Introducción ] Historia Sony introduce el CD (1984) Arquitectura de Computadores 61 61 Präsentat ion

[ Introducción ] Historia Commodore Amiga (1985) Arquitectura de Computadores 62 Präsentat ion 62

[ Introducción ] Historia Macintosh (1984) Arquitectura de Computadores 63 Präsentat ion 63

[ Introducción ] Historia X Windows para UNIX (1984) Arquitectura de Computadores 64 Präsentat ion 64

[ Introducción ] Historia Sparcstation (1989) Arquitectura de Computadores 65 65 Präsentat ion

[ Introducción ] Historia

“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

66 Nace LINUX Arquitectura de Computadores 66 Präsentat ion

[ Introducción ] Historia Intel Pentium (1993) Arquitectura de Computadores 67 67 Präsentat ion

[ Introducción ] Historia Appel Newton (1993) Arquitectura de Computadores 68 68 Präsentat ion

[ Introducción ] Historia Windows 95 (1995) Arquitectura de Computadores 69 69 Präsentat ion

[ Introducción ] Historia Power Macintosh (1994) Arquitectura de Computadores 70 70 Präsentat ion

[ Introducción ]

Historia 71 Arquitectura de Computadores 71 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, del brazo, c/u se formateo de especifica cargando entre 1 y 9 bytes en un registro del dispositivo. Comandos de lectura, escritura, movimiento pistas.

Inicialización, detección, reestablecimiento, recalibración del controlador y las unidades de disco.

73

LENGUAJES, NIVELES Y MÁQUINAS VIRTUALES

 Comandos WRITE: disco, través de requieren máquinas 13 parámetros empacados en 9 bytes. Los parámetros especifican: Dirección del bloque de número de sectores por pista, modo de grabación empleado, etc.

(Evitar la programación del HW, a virtuales con lenguajes de básicos cercanos a las personas.) son READ programación más 74 y

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 denominado nivel nivel existe de un nivel 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 interprete de las instrucciones de salida del es nivel un implementa en firmware.

de programa máquina convencional, que generalmente se

81

Nivel 1: Nivel de microarquitectura (ó microprogramación).

La función anterior.

del microprograma es generar los líneas de control del HW de la máquina, que junto con un secuenciamiento adecuado ejecutan sobre el Hardware (Hw) las valores lógicos (0 y 1) instrucciones del de las nivel

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 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.

manuales de referencia de

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 Procesadores, memoria, dispositivos de E/S. El SO asegura el correcto uso de los recursos de de una la computadora computadora recursos que son compartidos.

son: entre programas que piden el acceso a estos

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 mayoría de las instrucciones de este nivel están presente en el nivel 2, por lo que nivel híbrido son . La 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 (programa en ejecución).

procesos

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.

es una forma simbólica de los lenguajes subyacentes.

El lenguaje ensamblador

En general corresponde a una forma simbólica del lenguaje convencional o lenguaje de máquina que es un lenguaje binario.

de máquina

90

Nivel 4: Nivel de lenguaje ensamblador.

Los símbolos del lenguaje ensamblador son típicamente ADD, SUB, MUL, DIV, que representan operaciones como multiplicar y dividir.

sumar, restar,

La tarea del ensamblador en una primera lenguaje simbólico a lenguaje de máquina.

instancia es traducir el

91

Nivel 4: Nivel de lenguaje ensamblador.

El programa traductor toma el programa fuente (programa con ensamblador instrucciones como en símbolos) y lo convierte a un programa objeto, que es el realmente se ejecuta.

programa que

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 presentes en memoria: 3 programas

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 compiladores.

está constituido por programas traductores denominados

Los otros.

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

95

Nivel 5 y 6

Nivel 6 y superiores: Aplicaciones.

Este nivel provee virtuales orientadas específicas.

de texto, etc.

Entre de las máquinas a aplicaciones máquinas virtuales presentes en este nivel están las planillas de cálculo, procesadores

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