Introducción a la tecnología de los computadores. Computadores y abstracciones. ----- Notas de la reunión (03/10/11 23:00) ----- 0. Avances 1. Computadores 2. Unidades, multiplicadores y conversiones 3. Codificación datos=instrucciones // memoria 4. Traduccion: HLL -> Assy -> bin 5. Abstracciones 6. NEXT
Sociedad de la información. Los avances en computadores y redes están permitiendo el desarrollo de la SIC VLSI cada vez mayores escalas de integración WWW y grandes sistemas distribuidos Inteligencia artificial Movilidad, redes inalámbricas de banda ancha Solución de problemas de escala gigante Secuenciación del genoma humano ----- Notas de la reunión (03/10/11 22:58) ----- 1. Computadores 2. Unidades, multiplicadores y conversiones 3. Codificación datos=instrucciones // memoria 4. Traduccion: HLL -> Assy -> bin 5. Abstracciones 6. NEXT
Una clasificación de los computadores I DESKTOP. Entregan una buena potencia computacional a un único usuario y se suelen emplear par la ejecución de software comercial. SERVER. De alguna forma, son los mainframes y minicomputadores de hoy en día. Ejecutan cargas computacionales complejas y sirven a comunidades de usuarios conectadas a través de una red de computadores. ----- Notas de la reunión (03/10/11 22:58) ----- 1. Computadores 2. Unidades, multiplicadores y conversiones 3. Codificación datos=instrucciones // memoria 4. Traduccion: HLL -> Assy -> bin 5. Abstracciones 6. NEXT
Una clasificación de los computadores II Supercomputadores. Hoy en día, suele tratarse de computadores interconectados a través de una red de altas prestaciones formando un cluster: Predicción meteorológica, determinación de proteínas, exploraciones petrolíferas. Memoria principal, Terabytes; almacenamiento, Tb a Pb. Empotrados. Dispositivos electrónicos dedicados, gran variabilidad de precios y características. Constituyen el mayor número de microprocesadores vendidos: Sensores inteligentes, player MP3, decodificador TDT, ordenador de viaje, GPS, piloto automático, máquina de café, etc.
¿Qué es, pues, un computador? Un dispositivo electrónico que ejecuta programas y, éstos, representan algoritmos. Un algoritmo es un proceso sistemático que conduce a la solución de un problema, en un tiempo más o menos largo. Modelo de Von Neumann (Princeton): Memoria de programas y de datos Computador de programa almacenado. Unicidad de representación de los programas y los datos
Hw/Sw Hardware y software Hardware: Los circuitos electrónicos y todo aquello que es material en un computador. Software: Los programas, en sus diversas formas. Hw/Sw
Acrónimos Palabras construidas a base de las letras iniciales de una serie de palabras. Concisión Ejemplos: Random Access Memory: RAM. Central Processing Unit: CPU Load Byte Unsigned: LBU. Muy usadas en esta asignatura: Hay que asumirlo ----- Notas de la reunión (03/10/11 22:58) ----- 1. Computadores 2. Unidades, multiplicadores y conversiones 3. Codificación datos=instrucciones // memoria 4. Traduccion: HLL -> Assy -> bin 5. Abstracciones 6. NEXT
Símbolos binarios Los computadores que estudiamos son, todos ellos digitales. Representaremos los datos y las operaciones usando DOS símbolos básicos: 0 y 1, esto es, en binario. A base de estos dos símbolos, construiremos palabras de mayor longitud: Datos enteros, reales, caracteres ASCII, cadenas de estos últimos Operaciones como la suma, la operación lógica AND, etc.
Unidades y multiplicadores 1 bit: Un dígito binario: 0 o 1. 1 nibble: Una palabra formada por 4 bits. 1 byte: Una palabra formada por 8 bits. 1 word: 16, 32 o 64 bits, dependiendo de la arquitectura que estemos estudiando. Multiplicadores: Potencias de 2 1k = 1024 objetos, esto es, 2^10 1Mega = 1024 x 1024 objetos, 2^20 1Giga = 1024x1024x1024, 2^30
Importante: Repasar las conversiones de base. Notación polinómica. 834510 = 8x10^3 + 3x10^2 + 4x10^1+5x10^0 1011012 =1x2^5+0x2^4+1x2^3+1x2^2+0x2^1+1x2^0 = 32 + 8 + 4 + 1 = 4510 0xfb31 = f x 16^3 + b x 16^2 + 3 x 16^1 + 1 x 16^0= = 15 x 16^3 + 11 x 16^2 + 3 x 16^1 + 1 x 16^0= = … completad este cálculo. 07658 = 7x8^2+6x8^1+5x8^0 = … 0xffff = … 07778 = … 6553610 = (hexadecimal) 0xf01c = (binario)
Principios fundamentales Datos y operaciones se representan, ambos, mediante cadenas de símbolos binarios Un entero: 32768 Una operación: add $t2, $t0, $t1 ¿Cómo se codifican en binario? ----- Notas de la reunión (03/10/11 22:58) ----- 1. Computadores 2. Unidades, multiplicadores y conversiones 3. Codificación datos=instrucciones // memoria 4. Traduccion: HLL -> Assy -> bin 5. Abstracciones 6. NEXT
Principios fundamentales Datos y operaciones se almacenan en la memoria principal del computador. El número entero 64, se puede representar con 32 bits de precisión así: 00000000000000000000000001000000 Codificación de enteros en aritmética sin signo (ASS) La operación de suma podría representarse así: 01101111, por ejemplo La codificación de las instrucciones MIPS: Apéndice
Programa: Una secuencia de operaciones que modifican datos. Un programa se representa mediante la codificación binaria de sus operaciones y de sus datos. Para escribir un programa ¿Hay que hacerlo en binario? Es decir, ¿Hay que usar el lenguaje máquina?
Notación simbólica para representar datos e instrucciones Podemos representar la operación de suma mediante la siguiente cadena de caracteres: add $t2, $t0, $t1 Sumar el contenido del registro $t0 y el contenido del registro $t1; el resultado, guardarlo en el registro $t2 para su uso posterior. Esta notación simbólica nos es muy útil a nosotros Comprendemos la operación con sólo un vistazo ¿El computador puede entender add $t2, $t0, $t1? ¡No puede!
Traducir la notación simbólica al lenguaje del computador (0 y 1, leng Traducir la notación simbólica al lenguaje del computador (0 y 1, leng. máquina, I). Para que el computador entienda las instrucciones y datos: Es necesario que las reciba correctamente codificadas en lenguaje máquina Entonces, podemos efectuar la traducción nosotros mismos: es laborioso, mecánico, pero fácil: add $t2, $t0, $t1 001011111010010101011111000000001111
Traducir la notación simbólica al lenguaje del computador (L Traducir la notación simbólica al lenguaje del computador (L. máquina), II. También, ya que se trata de un proceso mecánico y laborioso: Podemos usar un computador que haga este proceso Eso sí, habremos de usar un programa (Que alguien habrá escrito ya) Ese programa, que traduce la notación simbólica de un programa a lenguaje máquina le denominamos: PROGRAMA ENSAMBLADOR
Traducir la notación simbólica al lenguaje del computador (L Traducir la notación simbólica al lenguaje del computador (L. máquina), III. El programa que traduce: Ensamblador (Assembler) La nótación simbólica: Lenguaje de ensamblaje (assembly language)
Traducir la notación simbólica al lenguaje del computador, IV Lenguaje C Compilador Lenguaje de ensamblaje Ensamblador Lenguaje máquina MIPS
¿Por qué no una notación aún más inteligible? Lenguajes de alto nivel Programa escrito en C Compilador de lenguaje C
Jerarquía básica de abstracciones Software de aplicación es el que se encuentra más cerca del usuario final. El software de sistema ofrece servicios a todos los usuarios. Sistema operativo. Compiladores. Ensambladores. Hardware: Ratón, video, placa madre, memoria, microprocesador, disco duro, cd-rom, adaptadores de comunicaciones, circuitos integrados. ----- Notas de la reunión (03/10/11 22:58) ----- 1. Computadores 2. Unidades, multiplicadores y conversiones 3. Codificación datos=instrucciones // memoria 4. Traduccion: HLL -> Assy -> bin 5. Abstracciones 6. NEXT
Categorías de software
Components of a Computer Morgan Kaufmann Publishers March 29, 2017 Components of a Computer §1.3 Under the Covers Same components for all kinds of computer Desktop, server, embedded Input/output includes User-interface devices Display, keyboard, mouse Storage devices Hard disk, CD/DVD, flash Network adapters For communicating with other computers The BIG Picture ----- Notas de la reunión (03/10/11 22:58) ----- 1. Computadores 2. Unidades, multiplicadores y conversiones 3. Codificación datos=instrucciones // memoria 4. Traduccion: HLL -> Assy -> bin 5. Abstracciones 6. NEXT Chapter 1 — Computer Abstractions and Technology — 22 Chapter 1 — Computer Abstractions and Technology