t1-introducción
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