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

31
1 Presentació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ón Introducción a la Computación Capítulo 1 Introducción a la Computación

Upload: esteban-oyola

Post on 12-Jan-2015

5 views

Category:

Documents


2 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

2Presentació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

Contenido Ciclo de lectura y ejecución Interrupciones La Máquina Virtual de Java Bloques de construcción fundamentales de los

programas Objetos y la Programación Orientada a Objetos Interfaces de Usuario Modernas El Internet y el World-Wide Web

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

3Presentació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 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

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

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

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

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

8Presentació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 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

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

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

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

Resumen

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

InterrupcionesDevice Drivers, Bus, Interrupciones, Eventos

Asíncronos, Multitareas, Sistema Operativo

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

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

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

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

Diagrama simple de una Computadora

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

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

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

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

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

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

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

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

Máquina Virtual de Java

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

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

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

Interprete A diferencia del compilador, el interprete

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

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

29Presentació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

Híbrido

Java usa una combinación de compilación e interpretación

Los programas se compilan al lenguaje de máquina de una computadora “virtual” (máquina virtual de Java)

Usando un interprete se traduce el bytecode en el lenguaje de máquina de la computadora real

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

Híbrido

Page 31: 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

31Presentació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

Características del Esquema Híbrido

Es portátil El programa se puede ejecutar en toda

computadora que tenga un interprete de Java

Es seguro ejecutar programas en una computadora

Más lento que los compilados pero más rápido que los interpretados