1. Relevancia
1.1. Computadores en autmóviles
1.1.1. Reducción de contaminación
1.2. Teléfonos móviles
1.3. Proyecto del Genoma Humano
1.3.1. Posibilidad de calcular nuestro genoma
1.4. World Wide Web
1.5. Motores de búsqueda
1.5.1. Búsqueda de información relevante
2. Rendimiento de un programa
2.1. Depende de
2.1.1. Efectividad del algoritmo
2.1.2. Software del sistema
2.1.3. Efectividad del computador
2.2. En componentes de hardware o software
2.2.1. Algoritmo
2.2.1.1. Determina el número de secuencias
2.2.2. Compilador
2.2.2.1. Determina el número de instrucciones
2.2.3. Procesador
2.2.3.1. Determina la rapidez de ejecución de las instrucciones
2.2.4. Sistema de E/S
2.2.4.1. Determina rapidez de las operaciones de E/S
3. Software de sistema
3.1. Sistema Operativo
3.1.1. Presenta operaciones de E/S
3.1.2. Asignación de almacenamiento
3.1.3. Ejemplos: Linux, MacOS, Windows, etc
3.2. Compiladores
3.2.1. Traducir del lenguaje de alto nivel al lenguaje de máquina
3.2.1.1. Se usa las letras on y off representadas por 0 y 1 respectivamente.
3.2.1.2. El lenguaje del compuatador son números en base 2
3.2.1.3. El lenguaje ensamblador realiza la traducción de una notación simbólica a binario
3.2.1.4. Tiene beneficios
3.2.1.4.1. Pensar en un lenguaje más natural
3.2.1.4.2. Incrementar la productividad del programador
3.2.1.4.3. Programas independientes del computador
4. Clase de computadores según su finalidad
4.1. Computadores de Escritorio
4.1.1. Buen rendimeinto a bajo precio
4.1.2. Incorpora teclado, ratón y monitor
4.2. Servidores
4.2.1. Ejecución de grandes programas para múltiples usuarios de forma simultánea
4.2.2. Versión moderna de mainframes, minicomputers y supercomputers
4.3. Supercomputadoras
4.3.1. Computadoras de mayor rendimiento y costo
4.3.2. Presentan terabytes de memoria y petabytes de almacenamiento
4.4. Datacenters
4.4.1. Habitación que proporciona refrigeración a un conjunto de servidores
4.5. Computadoras empotradas
4.5.1. Se encuentran en coches, celulares, videoconsolas, aviones,etc
4.5.2. Baja tolerancia a fallos
5. Objetivos
5.1. Rendimiento de programas
5.2. Implementación de Software
5.3. Programa traducido a lenguaje de máquina
5.4. Conceptos básicos de computadores
6. Componentes de un ordenador
6.1. Funciones básicas del hardware
6.1.1. Entrada de datos
6.1.2. Salida de datos
6.1.3. Procesamiento de datos
6.1.4. Almacenamiento de datos
6.2. Componentes
6.2.1. Entrada
6.2.2. Salida
6.2.3. Ruta de datos
6.2.4. Procesador de datos
6.2.5. Memoria
7. Contenido de un computador
7.1. La placa base contiene
7.1.1. Conexión con dispositivos de E/S
7.1.2. Memoria
7.1.3. Procesador
7.2. Memoria
7.2.1. Programas + datos
7.3. CPU contiene
7.3.1. Ruta de datos
7.3.2. Ruta de control
7.4. Memoria caché
7.4.1. Actúa como un buffer de la memoria DRAM
8. Almacenamiento de información
8.1. Memoria Princiapl
8.2. Memoria Secundaria
8.2.1. Discos magnéticos
8.2.2. Discos ópticos
8.2.3. Memoria Flash
9. Interfaz Hardware-software
9.1. ISA (Instruction Set Architecture) o arquitectura del computador, es la interacción entre el hardware y el software
9.2. El SO encapsula los detalles de E/S.
9.3. Se basa en el principio de abstracción
10. Evolución de los dispositivos de cálculo
10.1. Inicios - válvulas
10.1.1. 1941, construcción del ENIAC
10.2. 2da Generación
10.2.1. 1947, invención del transistor
10.3. 3ra Generación
10.3.1. 1964, circuito integrado
10.4. 4ta Generación
10.4.1. Década de los 70, primer microprocesador
10.4.2. Ordenador personal
10.5. Redes de computadores
11. Rendimiento
11.1. Mide el tiempo de respuesta y el throughput
11.2. Relación entre rendimiento y tiempo de ejecución
11.2.1. Rendimiento=1/Tº Ejecución
11.2.2. (Rendimientox/Rendimientoy)=(Tº EjecuciónY/Tº EjecucionX)=n
11.2.3. Rendimientox/Rendimientoy=T Ejecucion x/T Ejecucion y=n
11.3. Medición del rendimiento
11.3.1. Ciclos de reloj, que marcan eventos del hardware
11.3.2. Periodo de reloj, es el tiempo de un ciclo de reloj
11.3.3. Frecuencia de reloj, es la inversa del periodo de reloj
11.4. Rendimiento de la CPU
11.4.1. Tº CPU=Nº CiclosPrograma x Duración de un ciclo
11.4.2. Tº CPU=Nº CiclosPrograma/Frecuencia Reloj
11.4.3. Fórmula clásica
11.4.3.1. Tº de CPU=Nº instrucciones x CPI x Periodo de reloj
11.4.3.2. Tº de CPU=(Nº instrucciones x CPI) /Frecuencia de Reloj
11.5. CPI o Ciclos Por Instrucción
11.5.1. Permite comparar dos implementaciones distintas del mismo ISA
11.5.2. Ciclos de CPU=Nº Instrucciones x Nº medio de ciclos por instrucción
11.6. Unidades de Medida
11.6.1. Tiempo de CPU para un programa se mide en segundos para el programa
11.6.2. Recuento de instrucciones, ejecutadas en un programa
11.6.3. CPI se mide en número medio de ciclos por instrucción
11.6.4. Ciclos de reloj, se mide en segundos por ciclo de reloj
11.7. Componentes que afectan el rendimiento
11.7.1. Recuento de instrucciones y CPI
11.7.1.1. Algoritmo
11.7.1.2. Lenguaje de Programación
11.7.1.3. Compilador
11.7.2. Recuento de instrucciones, frecuencia de reloj y CPI
11.7.2.1. ISA