310 likes | 455 Views
Introducción a la Computación. Capítulo 1. 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.
E N D
Introducción a la Computación Capítulo 1
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
CPU, Memoria Principal, Lenguaje de Máquina, Registros, Transistores, Números Binarios Ciclo de Lectura y Ejecució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
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
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
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
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)
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
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
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
Device Drivers, Bus, Interrupciones, Eventos Asíncronos, Multitareas, Sistema Operativo Interrupciones
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 • ...
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
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
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
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
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)
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
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
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)
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.
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
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
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
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
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