t1-introducción

Upload: chuwi

Post on 09-Jan-2016

6 views

Category:

Documents


0 download

TRANSCRIPT

  • Abstracciones y Tecnologa

    Katia Leal Algara [email protected]

    http://gsyc.escet.urjc.es/~katia/

    Departamento de Sistemas Telemticos y Computacin (GSyC)

  • GSyC - Abstracciones y Tecnologa 1

    !q Las computadoras y la revolucin de la informacin!q Aplicaciones antes econmicamente inviables se

    hacen posibles!qComputadores en automviles: reduccin de la

    contaminacin, eficiencia del combustible, seguridad!qTelfonos mviles: comunicacin entre dos personas

    en cualquier parte del mundo!qProyecto del genoma humano: a medida que el coste

    se reduce se incremente la posibilidad de calcular nuestro propio genoma!!

    qWorld Wide Web!qMotores de bsqueda: de gran importancia para la

    bsqueda de informacin relevante

    Introduccin

    Relevancia

  • GSyC - Abstracciones y Tecnologa 2

    !qLos avances en la tecnologa afectan a

    cada uno de los aspectos de la sociedad!qLas constantes mejoras en el hardware

    estn permitiendo a los programadores la creacin de aplicaciones tiles para resolver multitud de problemas!

    qTodays science fiction suggests tomorrows killer applications

    Introduccin

    Relevancia

  • GSyC - Abstracciones y Tecnologa 3

    !q Desktop computers!

    qComputador diseado para uso particular que normalmente incorpora teclado, ratn y monitor. !

    qBuen rendimiento a bajo precio para la ejecucin de software de terceros. !

    qSlo 30 aos de antigedad!!q Servers: !

    qDiseados para la ejecucin de grandes programas para mltiples usuarios de forma simultnea y slo accesibles va red. !

    qVersin moderna de mainframes, minicomputers y supercomputers. !

    qLa tecnologa de base es la misma que la de un PC, pero se pone ms nfasis en la capacidad de expansin y en la fiabilidad!

    Introduccin

    Clases de computadores segn su finalidad

  • GSyC - Abstracciones y Tecnologa 4

    !q Supercomputers!

    qComputadores de ms alto rendimiento y coste!qTpicamente configurados como servidores!qEstn formados por cientos o miles de procesadores,

    terabytes (1012 bytes) de memoria y petabytes (1024 terabytes) de almacenamiento!

    q Internet datacenters: habitacin o edificio diseado para proporcionar las necesidades de potencia, refrigeracin y ancho de red necesarios para albergar un elevado nmero de servidores!qUtilizados por compaas como eBay o Google!qContienen cientos de procesadores, terabytes de

    memoria y petabytes de almacenamiento: clusters!

    Introduccin

    Clases de computadores segn su finalidad

  • GSyC - Abstracciones y Tecnologa 5

    !q Embedded computers!

    q Estos computadores empotrados o embebidos se disean para cubrir necesidades especficas!

    q Son la clase de computadores ms numerosa!q Los podemos encontrar en coches, telfonos mviles,

    videoconsolas, televisores, cmaras digitales, aviones !

    q En 2007, las ventas de mviles superaban a las de PCs por un factor de 4,5!!

    q Rendimiento limitado a las restricciones de coste o potencia. Baja tolerancia a fallos!

    q nfasis en realizar un nica funcin lo mejor posible!

    Introduccin

    Clases de computadores segn su finalidad

  • GSyC - Abstracciones y Tecnologa 6

    !q Cmo un programa escrito en un lenguaje de alto nivel,

    como C o Java, se traduce a lenguaje mquina y cmo el hardware ejecuta el programa resultante? !q Aspectos que afectan al rendimiento de los programas!

    q Qu es la interfaz entre el hardware y el software y cmo el software indica al hardware la realizacin de las tareas necesarias? !q Aspectos relacionados con la implementacin de distintos tipos de

    software!q Qu determina el rendimiento de un programa y cmo

    puede un programa mejorar su rendimiento? !q Esto depender de cmo est escrito el programa, de su traduccin a

    lenguaje mquina y de su ejecucin por parte del hardware!q Qu tcnicas pueden aplicar los diseadores de hardware

    para mejorar el rendimiento? !q Conceptos bsicos de diseo de computadores modernos!

    !

    Introduccin

    Objetivos

  • GSyC - Abstracciones y Tecnologa 7

    !qLa respuesta a estas preguntas nos

    permitirn:!qMejorar el rendimiento de un programa!qDeterminar la mquina con las caractersticas

    ms adecuadas para ejecutar una determinada aplicacin!

    qFundamentos del resto del temario:!qIdeas bsicas y definiciones!qComponentes hardware y software!qEvaluacin del rendimiento!

    Introduccin

    Objetivos

  • GSyC - Abstracciones y Tecnologa 8

    !qEl rendimiento de un programa

    depende de:!1.Efectividad del algoritmo elegido!2.Software de sistema utilizado para crear

    y traducir el programa a lenguaje mquina!

    3.Efectividad del computador a la hora de ejecutar las instrucciones (operaciones de E/S)!

    Introduccin

    Rendimiento de un programa

  • GSyC - Abstracciones y Tecnologa 9

    Introduccin

    Rendimiento de un programa

    Componente hardware o software

    Cmo afecta ste componente al rendimiento

    Algoritmo Determina el nmero de sentencias y el nmero de operaciones de E/S

    Lenguaje de programacin, compilador y arquitectura

    Determina el nmero de instrucciones de computador para cada sentencia

    Procesador y sistema de memoria

    Determinan cmo de rpido se ejecutan las instrucciones

    Sistema de E/S (hardware y SO)

    Determina cmo de rpido se sirven las operaciones de E/S

  • GSyC - Abstracciones y Tecnologa 10

    !qCada uno de los siguientes puntos

    puede constituir un cuello de botella en el rendimiento:!qEl algoritmo elegido!qEl lenguaje de programacin o el

    compilador!qEl sistema operativo!qEl procesador!qDispositivos y sistema de E/S!

    Introduccin

    Ejercicio

  • GSyC - Abstracciones y Tecnologa 11

    !qPor una parte, tenemos aplicaciones

    complejas !qProcesador de textos (millones de lneas de

    cdigo) + libreras (implementan funciones en beneficio de las aplicaciones)!

    qPor otra, el hardware del computador slo es capaz de ejecutar instrucciones de bajo nivel extremadamente simples!

    qEl camino consiste en una serie de capas software que traducen operaciones de alto nivel en instrucciones mquina sencillas!

    Ms all de un programa

    Ms all de un programa

  • GSyC - Abstracciones y Tecnologa 12

    !

    Ms all de un programa

    Visin simplificada del hardware y el software

  • GSyC - Abstracciones y Tecnologa 13

    !q Sistema operativo!

    qGestin bsica de las operaciones de E/S!qAsignacin de almacenamiento y memoria!qReparto seguro de los recursos del sistema entre

    mltiples aplicaciones que se ejecutan de forma simultnea!

    qEjemplos SSOO: Linux, MacOS, Windows, Plan9!q Compiladores!

    qUn programa que traduce un programa escrito en un lenguaje de alto nivel (C, C++, Java) en instrucciones que el hardware puede ejecutar!

    qDada la sofisticacin de los actuales lenguajes de programacin, la traduccin de un programa en lenguaje de alto nivel a lenguaje mquina es compleja!

    Ms all de un programa

    Software de sistema

  • GSyC - Abstracciones y Tecnologa 14

    !q Para hablar con el hardware slo necesitamos dos

    letras: on y off!q Estas letras se representan mediante los nmeros

    0 y 1!q El lenguaje del computador son nmeros en base 2

    o nmeros binarios!q Nos referimos a cada letra como dgito binario o bit!q Los computadores son esclavos de nuestros

    comandos, denominados instrucciones!q Las instrucciones (coleccin de bits que el

    computador entiende y obedece) se pueden ver como nmeros!

    Ms all de un programa

    Del lenguaje de alto nivel al lenguaje mquina

  • GSyC - Abstracciones y Tecnologa 15

    !q Ejemplo: Los bits 1000110010100000 le dicen a

    un computador que sume dos nmeros!q Los primeros programadores se comunicaban con

    el computador directamente con nmeros binarios!q Se crearon programas para traducir de una

    notacin simblica a binario: ensamblador!q Ejemplo: Un programador poda escribir add A,B

    y el ensamblador traduca esta notacin en 1000110010100000!

    q A este lenguaje simblico se le denomina lenguaje ensamblador!

    q Por el contrario, al lenguaje binario que entiende la mquina se le denomina lenguaje mquina!

    Ms all de un programa

    Del lenguaje de alto nivel al lenguaje mquina

  • GSyC - Abstracciones y Tecnologa 16

    Ms all de un programa

    Del lenguaje de alto nivel al lenguaje mquina

  • GSyC - Abstracciones y Tecnologa 17

    !q Permiten a los programadores pensar en un

    lenguaje ms natural, utilizando palabras en ingls y notacin algebraica!qLos programas se pueden disear de acuerdo a su uso:

    Fortran (computacin cientfica), Cobol (procesamiento datos de negocio) !

    q Incrementar la productividad del programador: lleva menos tiempo desarrollar un programa cuando este se escribe en un lenguaje que requiere pocas lneas para expresar una idea!

    q Permiten que los programas sean independientes del computador en el que fueron desarrollados!

    Ms all de un programa

    Beneficios de los lenguajes de alto nivel

  • GSyC - Abstracciones y Tecnologa 18

    !q El hardware de cualquier computador realiza las mismas

    funciones bsicas:!q Entrada de datos!q Salida de datos!q Procesamiento de datos!q Almacenamiento de datos!

    q Los cinco componentes clsicos de un computador son !q Entrada!q Salida!q Ruta de datos y de control o procesador!q Memoria!

    q Cualquier componente de cualquier ordenador (pasado o presente) se puede clasificar en una de estas cinco categoras con independencia de la tecnologa utilizada!

    Bajo la cubierta

    Componentes clsicos de un ordenador

  • GSyC - Abstracciones y Tecnologa 19

    !

    Bajo la cubierta

    Componentes clsicos de un ordenador: Von Neumman Vs Eckert-Mauchly

  • GSyC - Abstracciones y Tecnologa 20

    !

    Bajo la cubierta

    Componentes clsicos de un ordenador

  • GSyC - Abstracciones y Tecnologa 21

    !q La placa base contiene paquetes de circuitos integrados o chips.

    Tiene tres partes:!q La que conecta con los dispositivos de E/S!q La memoria !q El procesador!

    q Memoria: programas + datos que necesitan los programas. Normalmente construida a partir de pastillas DRAM (Dynamic Random Access Memory)!

    q Procesador o CPU: es la parte activa de la placa base. El procesador contiene:!

    q La ruta de datos, encargada de realizar las operaciones aritmticas (msculo)!

    q La ruta de control: que indica a la ruta de datos, a la memoria y a los dispositivos de E/S qu hacer de acuerdo a las instrucciones del programa (cerebro)!

    q Memoria cach: es un tipo de memoria ms pequea y rpida que acta como un buffer de la memoria DRAM. Tecnologa SRAM (Static Random Access Memory)!!

    Bajo la cubierta

    Contenido de un computador

  • GSyC - Abstracciones y Tecnologa 22

    Bajo la cubierta

  • GSyC - Abstracciones y Tecnologa 23

    Bajo la cubierta

  • GSyC - Abstracciones y Tecnologa 24

    !qMemoria principal, voltil, DRAM!qMemoria secundaria, no voltil!

    qDiscos magnticos, discos duros!qDiscos pticos!qMemoria flash!

    Bajo la cubierta

    Almacenamiento de la informacin

  • GSyC - Abstracciones y Tecnologa 25

    !

    Bajo la cubierta

    Dentro del procesador

  • GSyC - Abstracciones y Tecnologa 26

    !q ISA (Instruction Set Architecture) o arquitectura, de

    un computador es la interfaz entre el hardware y el software de ms bajo nivel!q Incluye cualquier cosa que los programadores necesiten

    saber para hacer que un programa en lenguaje mquina funcione correctamente: instrucciones, dispositivos de E/S, registros, acceso a memoria !

    q El SO encapsula los detalles de la E/S, de la asignacin de memoria y del resto de funciones de bajo nivel!

    q as, el principio de abstraccin es el que permite el desarrollo de sistemas complejos basndose en la ocultacin de los detalles de bajo nivel entre niveles sucesivos de una jerarqua!

    Bajo la cubierta

    Interfaz hardware - software

  • GSyC - Abstracciones y Tecnologa 27

    !q Necesitaremos diferentes mtricas de rendimiento

    y conjuntos de aplicaciones para!qMedir el tiempo de respuesta o tiempo de ejecucin!qMedir el throughput (cantidad de trabajo completado

    por unidad de tiempo)!q Ejemplo: Indicar si los siguientes cambios en un

    ordenador incrementan el throughput, decrementan el tiempo de respuesta o ambos!

    1. Reemplazar el procesador por uno ms rpido!2. Aadir ms procesadores a un sistema

    multiprocesador para la ejecucin de mltiples tareas!

    Rendimiento

    Definicin de rendimiento

  • GSyC - Abstracciones y Tecnologa 28

    !qPara un computador X:!

    qPara dos computadores X e Y:!

    Si X es n veces ms rpido que Y, entonces el tiempo de ejecucin en Y es n veces ms largo que en X!

    Rendimiento

    Relacin entre rendimiento y tiempo de ejecucin

  • GSyC - Abstracciones y Tecnologa 29

    !qEjemplo: Si el ordenador A ejecuta un programa en 10 segundos y el B en 15, cunto ms rpido es el ordenador A respecto del ordenador B?!

    El ordenador A es 1,5 veces ms rpido que el ordenador B!

    Rendimiento

    Relacin entre rendimiento y tiempo de ejecucin

  • GSyC - Abstracciones y Tecnologa 30

    !q Todos los computadores se disean utilizando un

    reloj que marca la realizacin de determinados eventos en el hardware!

    qEstos intervalos se denominan ciclos de reloj!q Periodo de reloj: es el tiempo que se tarda en

    completar un ciclo de reloj (250 picosegundos o 250 ps)!

    q Frecuencia de reloj: es la inversa del periodo de reloj (4 gigahertzios o 4 GHz)!

    !

    Rendimiento

    Midiendo el rendimiento

  • GSyC - Abstracciones y Tecnologa 31

    !q La siguiente frmula establece una relacin entre

    los ciclos de reloj y el tiempo de ejecucin:!

    ! !

    !!!

    q Por lo tanto, se puede mejorar el rendimiento !

    Rendimiento

    Rendimiento de la CPU

  • GSyC - Abstracciones y Tecnologa 32

    !q Ejemplo: Un programa tarda 10 segundos en

    ejecutarse en el ordenador A, que tiene una frecuencia de reloj de 2 GHz. Queremos que el computador B tarde 6 segundos en ejecutar el mismo programa. En este caso, se puede introducir una mejora para incrementar la frecuencia de reloj, pero esto supone que el ordenador B necesitar 1,2 ciclos de reloj ms que el A para ejecutar el mismo programa. Cul es la frecuencia de reloj que cumple con estas condiciones?!

    Rendimiento

    Rendimiento de la CPU

  • GSyC - Abstracciones y Tecnologa 33

    !q Podemos pensar en el tiempo de ejecucin de un

    programa como el nmero de instrucciones de un programa por el tiempo medio de ejecucin de cada instruccin:!

    q El CPI o ciclos por instruccin, es el nmero medio de ciclos de reloj que se necesitan para ejecutar una instruccin!

    q El CPI nos permite comparar dos implementaciones distintas del mismo ISA!

    Rendimiento

    Ciclos por instruccin

  • GSyC - Abstracciones y Tecnologa 34

    !qEjemplo: Tenemos dos implementaciones

    del mismo ISA. La implementacin A tiene un periodo de reloj de 250 ps y un CPI de 2 para un programa, mientras que la B tiene un periodo de reloj de 500 ps y un CPI de 1,2 para el mismo programa. Qu ordenador es ms rpido ejecutando este programa y por cunto?!

    Rendimiento

    Ciclos por instruccin

  • GSyC - Abstracciones y Tecnologa 35

    !q Podemos reescribir la frmula bsica del

    rendimiento en trminos del nmero de instrucciones ejecutadas, del CPI y del periodo de reloj:!

    ! !!

    q Estas frmulas son particularmente tiles puesto que separan los tres factores clave que afectan al rendimiento!

    Rendimiento

    Frmula clsica del rendimiento de la CPU

  • GSyC - Abstracciones y Tecnologa 36

    !q Ejemplo: Un diseador de compiladores se tienen que decidir

    entre dos secuencias de cdigo para un computador particular. Se proporcionan los siguientes datos: !

    q Qu secuencia de cdigo ejecuta ms instrucciones? Cul es ms rpida? Cul es el CPI de cada secuencia?!

    Rendimiento

    Frmula clsica del rendimiento de la CPU

    Tipo de instruccin A B C CPI 1 2 3

    Secuencia de cdigo

    Nmero de instrucciones por cada clase de instruccin

    A B C 1 2 1 2 2 4 1 1

  • GSyC - Abstracciones y Tecnologa 37

    !

    Rendimiento

    Unidades de medida

    Componente del rendimiento

    Unidades de medida

    Tiempo de CPU para un programa

    Segundos para el programa

    Recuento de instrucciones Instrucciones ejecutadas para un programa

    CPI Nmero medio de ciclos por instruccin

    Ciclo de reloj Segundos por ciclo de reloj

  • GSyC - Abstracciones y Tecnologa 38

    !

    Rendimiento

    Entendiendo el rendimiento de un programa

    Componente hardware o software

    A qu afecta?

    Algoritmo Recuento de instrucciones y posiblemente al CPI

    Lenguaje de programacin Recuento de instrucciones y CPI Compilador Recuento de instrucciones y CPI ISA Recuento de instrucciones,

    frecuencia de reloj, CPI

  • GSyC - Abstracciones y Tecnologa 39

    !q Inicios - vlvulas: !

    q En 1941 se inicia la construccin del ENIAC!q En 1945 John Von Neuman publica el artculo First Draft of a

    Report on the EDVAC!q 2 generacin - transistores: !

    q 1947, invencin del transistor!q CDC 1604, PDP-1 !

    q 3 generacin - circuitos integrados:!q 1964, aparicin del circuito integrado!q CDC 6400, PDP-5, !

    q 4 generacin - microprocesadores:!q Dcada de los 70, primer microprocesador y pastillas de

    memoria de semiconductor!q Ordenador personal .!

    q Redes de computadores y ms!

    Evolucin histrica de los computadores

    Evolucin de los dispositivos de clculo

  • GSyC - Abstracciones y Tecnologa 40

    ENIAC (Electronic Numerical Integrator and Calculator)

  • GSyC - Abstracciones y Tecnologa 41

    UNIVAC I, primer computador comercial de los EEUU

  • GSyC - Abstracciones y Tecnologa 42

    IBM System/360 modelos 40, 50, 60 y 75 introducidos en 1964

  • GSyC - Abstracciones y Tecnologa 43

    Cray-1, primer supercomputador comercial, 1976

  • GSyC - Abstracciones y Tecnologa 44

    El Apple Iie Plus

  • GSyC - Abstracciones y Tecnologa 45

    El Xerox Alto sirvi de inspiracin para los modernos desktops

  • GSyC - Abstracciones y Tecnologa 46

    Caractersticas de computadores comerciales desde 1950