Upload
teodoro-mujica
View
12
Download
0
Embed Size (px)
Citation preview
Introducción a la tecnología de los computadores.
Computadores y abstracciones.
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
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.
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
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
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?
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. 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. 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. 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
swap(int v[], int k){int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp;}
swap: muli $2, $5,4 add $2, $4,$2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31
00000000101000010000000000011000000000001000111000011000001000011000110001100010000000000000000010001100111100100000000000000100101011001111001000000000000000001010110001100010000000000000010000000011111000000000000000001000
Binary machinelanguageprogram(for MIPS)
C compiler
Assembler
Assemblylanguageprogram(for MIPS)
High-levellanguageprogram(in C)
Ensamblador
Lenguaje de ensamblaje
Lenguaje máquina MIPS
Lenguaje C
Compilador
¿Por qué no una notación aún más inteligible? Lenguajes de alto nivel
swap(int v[], int k){int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp;}
swap: muli $2, $5,4 add $2, $4,$2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31
00000000101000010000000000011000000000001000111000011000001000011000110001100010000000000000000010001100111100100000000000000100101011001111001000000000000000001010110001100010000000000000010000000011111000000000000000001000
Binary machinelanguageprogram(for MIPS)
C compiler
Assembler
Assemblylanguageprogram(for MIPS)
High-levellanguageprogram(in C)
Compilador de lenguaje C
Programa escrito en 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.
Software de aplicación
H ardw are
Software de sistema
Categorías de software
M S-O ffi celaT E XM ath em aticaM atlab
So ftw are d e ap l i cación
g ccC d e M i cr osoftj av ac
C om p i l ad or es
M em or i a v i r t u al S i stem a d e fi ch er os
D r i v er s d e d i sp osi t i v os d e e/ s
S i stem as op er at i v os
asM A S MT A S Mcsi l ocatel i n kt l i n k
E n sam bl ad or esE n l az ad or esU b i cad or es
So ftw are d e si stem a
Softw are
Chapter 1 — Computer Abstractions and Technology — 22
Components of a Computer 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
§1.3 Under the C
overs
The BIG Picture