Capítulo 1
-
Upload
tate-wheeler -
Category
Documents
-
view
37 -
download
0
description
Transcript of Capítulo 1
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
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
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
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
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
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
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
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)
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
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
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
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
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
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 ...
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
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
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
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
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
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)
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
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
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)
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.
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
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
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
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
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
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
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