1 presentación: copyright 2004© nelson arapé basado en introduction to programming using java...

30
1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck apítulo 1: apítulo 1: Introducción a la Computación Introducción a la Computación Capítulo 1 Introducción a la Computación

Upload: olegario-penaranda

Post on 23-Jan-2016

215 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

1Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Capítulo 1Introducción a la Computación

Page 2: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

DISPOSITIVOS DE ENTRADA

(Teclado, Ratón, etc)

C P UDISPOSITIVOS DE SALIDA(Monitor, Impresora, etc.)

MEMORIA PRICIPAL (RAM)

ALMACENAMIENTO

(Memoria Secundaria: Disco Duro, Diskette, CD, etc.)

Page 3: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

Organización Básica de un Sistema Computacional

Page 4: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

4Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Ciclo de Lectura y Ejecución

CPU, Memoria Principal, Lenguaje de Máquina, Registros, Transistores, Números Binarios

Page 5: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

5Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

CPU

● Una computadora consiste de muchos componentes diferentes

● El CPU es el cerebro, cuya principal función es ejecutar programas

● Un programa es una lista de instrucciones no ambiguas hechas para que sean seguidas mecánicamente por la computadora

Page 6: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

6Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Lenguaje de Máquina

● Las computadoras ejecutan instrucciones que son escritas en un lenguaje muy simple llamado lenguaje de máquina

● Cada tipo de computadora tiene su propio lenguaje de máquina

● Sólo podrá ejecutar los programas si están escritos en ese lenguaje

Page 7: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

7Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Memoria● Cuando el CPU ejecuta un programa, dicho

programa se encuentra en la memoria principal

● La memoria principal consiste de una secuencia de “casillas”

● Estas casillas son numeradas y la secuencia de números es llamada dirección de memoria

● Una dirección provee una manera de especificar una pieza de información entre millones almacenadas en la memoria

Page 8: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

Ejemplo de Organización de la Memoria

0x0

0x2000

0x50000

code

stack

heap Dynamic allocationmalloc(), free()

Function calls, local variables

Inmutable

Page 9: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

9Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Ciclo de Lectura y Ejecución

● El CPU ejecuta un programa que es almacenado como una secuencia de instrucciones de lenguaje de máquina en la memoria principal

● Para ello el CPU debe leer una instrucción de la memoria y ejecutarla

● Esto lo hace repetidamente, por lo que se le llama ciclo de lectura y ejecución

Page 10: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

10Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Registros● El CPU contiene unos pocos registros internos

● Los registros son pequeñas unidades de memoria capaces de almacenar un número o una instrucción en lenguaje de máquina

● El CPU utiliza uno de estos registros (PC contador de programa) para almacenar la dirección de la siguiente instrucción que se debe ejecutar

● Al comienzo de cada ciclo, el CPU revisa el PC para ver que instrucción debe ejecutar.

– PC es actualizado con la propia ejecución del programa (usualmente es incrementado de uno en uno)

Page 11: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

11Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Transistores

● Una computadora ejecuta programas en lenguaje de máquina mecánicamente

● Está construida por millones de pequeños interruptores llamados transistores

● La operación de una computadora origina que estos interruptores se prenden y apagan entre sí

● El patrón que siguen está determinado por el cableado entre ellos y el programa que se está ejecutando

Page 12: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

12Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Números binarios● Las instrucciones de lenguaje de máquina y los

datos se expresan en números binarios

● Un número binario es aquel que está formado por sólo 2 valores (0 y 1)

● Los transistores pueden expresar adecuadamente los dos estados (prendido o apagado)

● Cuando se carga una instrucción de la memoria, todo lo que sucede es que ciertos interruptores se prenden y otros se apagan en un patrón que está codificado en la propia instrucción

Page 13: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

13Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Resumen● La memoria principal almacena programas en

lenguaje de máquina y datos

● Estos son codificados como números binarios

● El CPU lee instrucciones de lenguaje de máquina de la memoria una tras otra y las ejecuta

● El CPU realiza este ciclo mecánicamente y por lo tanto el programa que ejecuta debe estar perfecto, completamente detallado y sin ambigüedades

● El CPU lo único que puede hacer es ejecutar las instrucciones tal cual como estén escritas

Page 14: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

14Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Resumen

Page 15: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

15Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

InterrupcionesDevice Drivers, Bus, Interrupciones, Eventos Asíncronos, Multitareas, Sistema Operativo

Page 16: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

16Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Otros Componentes del Computador

● Además del CPU y de la Memoria, un computador tiene otros componentes:– Un disco duro para almacenar programas y datos

– Un teclado y ratón para entrada

– Un monitor e impresora para salida

– Un modem o targeta de red para comunicarse con otras computadoras

– Un scanner para digitalizar imágenes

– ...

Page 17: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

17Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Device Driver

● De alguna manera el CPU tiene que comunicarse con todos estos dispositivos

● Para cada dispositivo, existe un device driver

● Un device driver consiste de software que el CPU ejecuta cuando tiene que interactuar con el dispositivo respectivo

Page 18: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

18Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Bus● Una computadora típicamente conecta todos

estos dispositivos a uno o más buses

● Un bus es un conjunto de cables que transportan varios tipos de información entre los dispositivos conectados a esos cables

● Por el bus viaja

– Datos

– Direcciones

– Señales de control

Page 19: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

19Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Diagrama simple de una Computadora

Page 20: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

20Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Procesamiento de datos de I/O

● Los dispositivos pueden producir datos que necesitan ser procesados por el CPU

● ¿Cómo el CPU sabe que los datos están disponibles?– Pooling

● El CPU periódicamente revisa si existen datos que procesar

– Interrupciones

Page 21: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

21Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Interrupciones

● Es una señal enviada al CPU por otro dispositivo

● Proceso– Se recibe la señal

– Se hace a un lado lo que sea que se estuviese haciendo

– Se atiende la interrupción

– Se vuelve al punto de lo que se encontraba realizando

● Ejemplo: presionar una tecla

Page 22: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

22Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Interrupciones● Un dispositivo notifica una interrupción simplemente

al encender un cable

● El CPU guarda información acerca de lo que está haciendo

– El contenido de los registros, entre ellos el PC

● El CPU salta a una dirección de memoria predeterminada y comienza a ejecutar las instrucciones ahí almacenadas

● Al final el manejador de instrucciones le dice al CPU que reanude lo que estaba haciendo (restaurando los datos previamente guardados)

Page 23: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

23Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Eventos asíncronos● Las interrupciones le permiten al CPU manejar

eventos asíncronos

● En el ciclo regular de leer y ejecutar, las operaciones se ejecutan en un orden predeterminado

● Las interrupciones hacen posible que el CPU maneje eficientemente eventos que suceden asíncronamente

● Ejemplo: leer información de disco– El CPU solicita un dato y luego realiza otra tarea hasta

que se le notifica que el dato está disponible

Page 24: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

24Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Multitareas● La ventaja de interrupciones sobre pooling sólo

es tal si el CPU tiene otra cosa que hacer

● Todos los sistemas operativos modernos utilizan multitarea para realizar varias “tareas” a la vez

● El CPU reparte su tiempo atendiendo una fracción de segundo a cada tarea

● Ejemplo: Estar escribiendo una carta, mientras se escucha música y se baja un archivo de Internet

Page 25: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

25Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Hilo de Ejecución● Cada tarea individual en la que trabaja el CPU es

llamada un hilo

● A determinado momento, sólo un hilo puede estar ejecutándose en el CPU

● El CPU continuará ejecutando el mismo hilo hasta que el hilo:

– cede el control (yield)

– se bloquea (espera a que ocurra algún evento asíncrono)

– agote su “rebanada de tiempo” (sólo preemptive)

Page 26: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

26Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Sistema Operativo

● El software que realiza todo el manejo de interrupciones, y la comunicación del usuario con el hardware es llamado Sistema Operativo

● Una computadora no podría funcionar sin un sistema operativo, y las aplicaciones dependen de él

● Sistemas Operativos comunes: UNIX, Linux, DOS, Windows 98, Windows 2000 Mac OS X, entre otros.

Page 27: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

27Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Lenguajes de Alto Nivel● Lenguaje de Máquina consiste de instrucciones

muy simples que son ejecutadas por el CPU

● Sin embargo, casi todos los programas se escriben en lenguajes de alto nivel

– Ejemplo: Java, Pascal, C, C++, C#, FORTRAN ...● Los programas escritos en estos lenguajes

deben ser traducidos a lenguaje de máquina para poder ser ejecutados

● Se utilizan compiladores e interpretes para realizar esta traducción

Page 28: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

28Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Compilador

● Un compilador toma un programa escrito en lenguaje de alto nivel y lo traduce en un programa ejecutable en lenguaje de máquina

● Una vez realizada la traducción, se puede ejecutar cualquier número de veces

● Si se desea ejecutar el programa en otro tipo de computadora, debe ser re-traducido, usando un compilador para la computadora deseada

Page 29: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación
Page 30: 1 Presentación: Copyright 2004© Nelson Arapé Basado en Introduction to Programming Using Java Versión 4 de David J. Eck Capítulo 1: Introducción a la Computación

30Presentación: Copyright 2004© Nelson ArapéBasado en Introduction to Programming Using Java Versión 4 de David J. Eck

Capítulo 1: Capítulo 1: Introducción a la ComputaciónIntroducción a la Computación

Intérprete

● A diferencia del compilador, el intérprete traduce el programa instrucción por instrucción

● Actúa parecido a un CPU, con un ciclo de leer y ejecutar– Se lee una instrucción del programa– Se decide que se necesita para llevarla a cabo – Se ejecutan las instrucciones de lenguaje de

máquina correspondientes