El Computador
Franco Guidi PolancoEscuela de Ingeniería Industrial
Pontificia Universidad Católica de Valparaíso, [email protected]
14/08/2007Franco Guidi Polanco 1
¿Qué es un computador?
Un computador es una máquina principalmente electrónica, capaz de almacenar y procesar en corto tiempo grandes cantidades de datos, de acuerdo con un conjunto de instrucciones especificadas.
14/08/2007Franco Guidi Polanco 2
¿Cómo son los computadores?
Lo que primero se nos viene en mente…
Univac 1108
14/08/2007Franco Guidi Polanco 3
¿Cómo son los computadores?
Pero éstos también lo son:
14/08/2007Franco Guidi Polanco 4
¿Cómo serán los computadores?
Los computadores “desaparecerán”:…físicamente: la miniaturización de dispositivos y su integración con otros artefactos de uso cotidiano (ej. ;… mentalmente: los computadores continuan siendo grandes, pero no serán percibidos como tales (ej. paredes activas, mesas interactivas, etc.)
Interactive Room (iRoom). It includes three commercial touch-screen
displays and a bottom-projected table
14/08/2007Franco Guidi Polanco 5
¿Cómo serán los computadores?
UE: The Disappearing Computer
Iniciativa financiada por la Unión Europea, perteneciente a la actividad “Future and Emerging Technologies” (FET) del programa de investigación “Information Society Technologies” (IST)Tres objetivos (*):• Create information artifacts based on new software and hardware
architectures that are integrated into everyday objects. • Look at how collections of artifacts can act together, so as to
produce new behavior and new functionality. • Investigate the new approaches for designing for collections of
artifacts in everyday settings, and how to ensure that people's experience in these new environments is coherent and engaging.
(*) The Disappearing Computer: http://www.disappearing-computer.net
14/08/2007Franco Guidi Polanco 6
Tipos de computador
Computador digital Computador analógico
14/08/2007Franco Guidi Polanco 7
Computador analógico
Representa los datos mediante señales analógicas de naturaleza eléctrica, mecánica o hidráulica, que varían en modo continuo (por ejemplo, voltaje o presión de aire).El computador analógico resuelve problemas por analogía (ej. equipara tensión eléctrica a flujo de un líquido que se desea controlar)
mV
t
14/08/2007Franco Guidi Polanco 8
Computador analógico
Ejemplo: representación de la velocidad de un móvil
0 10Volts
(30 km/hr)
0 50kg/m2
(30 km/hr)0 cc
80 cc
(30 km/hr)
14/08/2007Franco Guidi Polanco 9
Computador analógico
0 cc
2 cc
4 cc
6 cc
0 cc
2 cc
4 cc
6 cc
0 cc
2 cc
4 cc
6 cc
0 cc
2 cc
4 cc
6 cc
0 cc
2 cc
4 cc
6 cc
0 cc
2 cc
4 cc
6 cc
4 2
4+2=6
14/08/2007Franco Guidi Polanco 10
Computador analógico
0 cc
2 cc
4 cc
6 cc
3.43.4458
14/08/2007Franco Guidi Polanco 11
Computador digital
Representa datos mediante variables discretas, sobre las cuales realiza operaciones aritmético-lógicas.Un computador digital trata los datos como dígitos binarios, i.e., trabaja en base 2 (dígitos 0 y 1).
0
1
14/08/2007Franco Guidi Polanco 12
Bit / Byte
Los dígitos se manejan agrupados. Por ejemplo, si los grupos son de 4 dígitos:
11002 = 1 x 23 + 1 x 22 + 0 x 21 + 0 x 20 = 1210
Los dígitos binaros reciben el nombre de bits (abreviación de “binary digits”)Los grupos de dígitos binarios (bits) reciben el nombre de bytes. En la mayoría de los sistemas los bytes son de 8 bits.
14/08/2007Franco Guidi Polanco 13
Números binarios
ConversiónNúmero b2Número b10
1*23 + 0*22 + 0*21 + 1*20 = 910019
1*23 + 0*22 + 1*21 + 0*20 = 10101010
1*23 + 0*22 + 1*21 + 1*20 = 11101111
………
1*23 + 0*22 + 0*21 + 0*20 = 810008
1*22 + 1*21 + 1*20 = 71117
1*22 + 1*21 + 0*20 = 61106
1*22 + 0*21 + 1*20 = 51015
1*22 + 0*21 + 0*20 = 41004
1*21 + 1*20 = 3113
1*21 + 0*20 = 2102
1*20 = 111
000
14/08/2007Franco Guidi Polanco 14
Operaciones aritméticas
Los valores numéricos se traducen a base 2 y se trabajan en esta baseEjemplo: suma de 5 y 4
510 = 01012
410 = 01002
El resultado se traduce a base 10: 910
0 1 0 10 1 0 01 0 0 1
+
Reglas de la suma en base 2:0 + 0 = 01 + 0 = 10 + 1 = 11 + 1 = 10
14/08/2007Franco Guidi Polanco 15
Representación de datos
Los bytes pueden representar:Números enteros positivos y negativos, Números en formato punto flotante, pero en forma aproximadaCaracteres, por medio de la asociación de éstos a secuencias dentro de los grupos. Ejemplo:
0001 = “A”0010 = “B”0011 = “#”…
14/08/2007Franco Guidi Polanco 16
Representación interna de los datos
Código ASCII extendido:(American Standard Code for Interchange of Information) 8 bit 256 caracteres (del 0 al 255)
Ejemplo: “Mamá“
Carácter Cod. Dec. Rep. Interna
“M” 77 01001101“a” 97 01100001“m” 109 01101101“á” 160 10100000
14/08/2007Franco Guidi Polanco 17
Representación interna de los datos
Código Unicode:16 bit más de 65.000 caracteres
•En la definición del Unicode Standar 3.0 se encuentran contenidos 49.194 caracteres.
•Cuenta además con mecanismo de extensión que le permite soportar más de 1 millón de caracteres adicionales
14/08/2007Franco Guidi Polanco 18
Representación interna de los datos
Unidades:
1024 Mb1.073.741.824 230GbGigabyte
1024 Gb1.099.511.627.776 240TbTerabyte
1024 Tb1.125.899.906.842.624 250PbPetabyte
1024 Kb1.048.576 220MbMegabyte
1024210Kbkilobyte
EquivalenciaBytesSignificadoSiglaNombre
14/08/2007Franco Guidi Polanco 19
Operaciones lógicas
Las operaciones más simples que se pueden definir sobre bits son las operaciones lógicas.Si se asume que el valor 1 representa verdadero y el 0 falso, entonces:
111
001
010
000
A ∧ BBA
111
101
110
000
A ∨ BBA
01
10
¬AA
AND OR NOT
14/08/2007Franco Guidi Polanco 20
Arquitectura de un computador
“Arquitectura de von Neumann”: concebida por John von Neumann y publicada en “First Draft on a Report on the EDVAC” (30 de Junio de 1945)
28 de diciembre de 1903 –8 de febrero de 1957
14/08/2007Franco Guidi Polanco 21
Arquitectura de von Neumann
Sistema computacional automático: dispositivo que procesa instrucciones para ejecutar cálculos de complejidad considerable.El dispositivo debe recibir instrucciones exhaustivas y detalladas.Las instrucciones deben darse en un formato que el dispositivo pueda percibir. Debe existir un código para representar la definición lógica y algebraica de las operaciones y los datos.Una vez proporcionadas las instrucciones, el dispositivo debe ser capaz de ejecutarlas completamente sin necesidad de ulterior intervención humana. Al finalizar las operaciones el dispositivo debe ser capaz de registrar los resultados en algún medio (como los propuestos para el ingreso)
“First Draft on a Report on the EDVAC” (30 de Junio de 1945)
14/08/2007Franco Guidi Polanco 22
Componentes lógicos de un computador
Disp.EntradaDisp.
Entrada
Disp.SalidaDisp.Salida
Disp.MemoriaAuxiliar
Disp.MemoriaAuxiliar
UnidadControl E/S
UnidadControl E/S
U.A.L.U.A.L.
UnidadControlUnidadControl
MemoriaPrincipalMemoriaPrincipal
Periféricos C.P.U.
14/08/2007Franco Guidi Polanco 23
Operaciones aritméticas
La suma de dos bits genera como resultado dos bits:Bit de sumaBit de reserva
Supongamos la siguiente representación gráfica para los operadores lógicos:
OR AND NOT
1+ 00 1
1+ 11 0
bit de reserva bit de reservabit de suma bit de suma
14/08/2007Franco Guidi Polanco 24
Operaciones aritméticas (cont.)
Entonces la suma de los bits A y B:
+A
B R
SS: bit de suma R: bit de reserva
OR
AND
A
B R
S
NOT
AND
14/08/2007Franco Guidi Polanco 25
Operaciones aritméticas (cont.)
Suma de A=0 y B=1 (resultado: S=1 R=0)
+A=0
B=1 R=0
S=1
OR
AND
A=0
B=1 R=0
S=1
NOT
AND
0+ 10 1
SR
A
B
14/08/2007Franco Guidi Polanco 26
Operaciones aritméticas (cont.)
Suma de A=1 y B=0 (resultado: S=1 R=0)
+A=1
B=0 R=0
S=1
OR
AND
A=1
B=0 R=0
S=1
NOT
AND
1+ 00 1
SR
A
B
14/08/2007Franco Guidi Polanco 27
Operaciones aritméticas (cont.)
Suma de A=0 y B=0 (resultado: S=0 R=0)
+A=0
B=0 R=0
S=0
OR
AND
A=0
B=0 R=0
S=0
NOT
AND
0+ 00 0
SR
A
B
14/08/2007Franco Guidi Polanco 28
Operaciones aritméticas (cont.)
Suma de A=1 y B=1 (resultado: S=0 R=1)
+A=1
B=1 R=1
S=0
OR
AND
A=1
B=1 R=1
S=0
NOT
AND
1+ 11 0
SR
A
B
14/08/2007Franco Guidi Polanco 29
Operaciones aritméticas (cont.)
La suma de un bit intermedio en un byte:
+ +
A B R’(proveniente deposición derecha)
S
SR’’(para posición izquierda)
OR
…0 1 1…… 0 1 1…… 0 1 0…
11
+
A
B
R’R’’
R R
S
14/08/2007Franco Guidi Polanco 30
Operaciones aritméticas (cont.)
La suma de dos bytes (de 3 bits):
+ + +
A1 B1A2 B2
A3 B3
R1R2
R3 S1S2S3
A3A2A1 + B3B2B1 = R3S3S2S1
14/08/2007Franco Guidi Polanco 31
Hardware
Disco Duro
Disquetera Teclado
MonitorTarjetas
controladoras
Tarjeta “madre”
Memoria principalC.P.U.
Ranuras de expansión (Slots)
CD/DVD
14/08/2007Franco Guidi Polanco 32
Componentes del hardware
Periféricos: comunican al computador con su entorno, aceptando comandos y datos, y presentando los resultados de sus procesos.
– Dispositivos de entrada: teclado, mouse(ratón), joystick, scanner, lector de código de barras, módem-fax*, tarjeta de red*, etc.
– Dispositivos de salida: monitor, impresora, proyector, módem-fax*, tarjeta de red*, etc.
– Dispositivos de memoria auxiliar (o de almacena-minto secundario): unidad CD/DVD, pendrive, disquetes, disco duro, unidad Zip, unidad de cinta, etc.
14/08/2007Franco Guidi Polanco 33
Componentes del hardware
Memoria principal: almacena las instrucciones y datos necesarios para un determinado proceso. Se compone de:
– RAM (Random Access Memory): guarda las instrucciones de los programas en ejecución y los datos necesarios. Admite la escritura y lectura.
– ROM (Read Only Memory): contiene los microprogramas incorporados por el fabricante del equipo. Admite sólo la lectura.
14/08/2007Franco Guidi Polanco 34
Unidad Central de Proceso (CPU): controla, coordina o realiza todas las operaciones del computador. Se compone de:
– Unidad de Control: controla las operaciones.
– Unidad Aritmético Lógica: realiza las operciones elementales de tipo aritmético (suma, resta, multiplicación y división) y de tipo lógico (comparaciones).
Componentes del hardware
14/08/2007Franco Guidi Polanco 35
Software
Software: Son los programas que se ejecutan en el hardware.
Programa: Es un conjunto de instrucciones que ordena al hardware la realización de una tarea en particular.
El software se puede clasificar en:Sistemas operativos.Traductores: ensambladores, compiladores e intérpretes.Aplicaciones.
14/08/2007Franco Guidi Polanco 36
Software: sistema operativo
Sistema Operativo: es un conjunto de programas que controla el funcionamiento del hardware. Se compone de:
Programas imprescindibles para la operación del hardware.Programas utilitarios.
Ejemplos de sistemas operativos:WindowsLinuxSolaris
14/08/2007Franco Guidi Polanco 37
Software: rol del sistema operativo
Sistema operativo
Aplicaciones
Componenteselectrónicos
Usuario
Instrucciones y datos Resultados
Comandos y datos
ResultadosInstruccionesy datos
Resultados
Resultados
Comandos y datos
Hardware
Software
14/08/2007Franco Guidi Polanco 38
Software: sistemas operativos
El S.O. trata como archivos a las aplicaciones y a los datos que éstas almacenan.Un archivo es un conjuno de registros relacionados.Existen (al menos) dos tipos de archivos:
Archivos de programa: conjuntos de instrucciones que componen una aplicación.Archivos de datos: guardan datos e imágenes que son mantenidos y consultados por una o más aplicaciones.
14/08/2007Franco Guidi Polanco 39
Software: sistemas operativos
El S.O. permite ejecutar los archivos de programas, que posibilitan a los usuarios tanto el ingreso y recuperación de datos, como su procesamiento y despliegue de resultados.
Programas
Archivos dedatos
Usuario
docencia.exe
alumnos.dbfcursos.dbfnotas.dbfpracticas.dbf
14/08/2007Franco Guidi Polanco 40
Traductores
Traductores: son metaprogramas que permiten convertir programas escritos en un lenguajes simbólicos a sus equivalentes en lenguaje de máquina. Pueden ser: ensambladores, compiladores o intérpretes.
Traducción
program saludo (output);
beginwriteln( “Hola mundo” );writeln( ‘chao’ )
end.
1110 1110 1001 1110 1011 0011 1100 0011 0110 1001 0101 10111011 1111 1101 10001011 0001 0101 11101101 0101 0001 10101000 0001 1110 1001
Ejecución
Programa “Fuente” Programa “objeto”Comprensible por el hombre, incomprensible por el hardware.
Comprensible por hardware, de difícil comprensión por el hombre.
14/08/2007Franco Guidi Polanco 41
Traductores: ensambladores
Son programas traductores que transforman programas escritos en lenguajes simbólicos de bajo nivel (lenguaje ensamblador o Assembler) en programas objeto. Cada instrucción en lenguaje fuente se transforma en una única instrucción en lenguaje objeto.
START: MVI A,0MOV B,A
LOP1: OUT 1DCR AJNZ LOP1MOV A,BDCR AJZ CONTMOV B,A
Ensamblador
1101 1101 11000110 1011 10110011 00011110 01001011 11000111 1011 10111110 01001100 01000111 1011 1011
Programa “Fuente” Programa “objeto”
14/08/2007Franco Guidi Polanco 42
Traductores: compiladores e intérpretes
Son programas traductores que transforman programas escritos en lenguajes simbólicos de alto nivel, en programas objeto. Cada instrucción en lenguaje fuente se transforma en una o más instrucciones en lenguaje objeto.El compilador traduce todo el programa fuente y si no hay errores genera el programa objeto, que luego es posible ejecutar.El intérprete traduce y ejecuta inmediatamente cada línea del programa fuente.
14/08/2007Franco Guidi Polanco 43
Traductores: compiladores e intérpretes
Compilación:
Interpretación:
i = 1DO WHILE i <= 3
PRINT iSTORE i + 1 TO i
ENDDO
Compilador
110 1111011 1001 1011100 1011 1011010 1101 1011100 0010 0001110 1011101 0011 1111111 0001 1110
i = 1DO WHILE i <= 3
PRINT iSTORE i + 1 TO i
ENDDO
Ejecución
Intérprete
i = 1 101 1111 EjecuciónDO WHILE i<=3
PRINT i
STORE i + 1 TO i
ENDDO
DO WHILE i<=3
011 1001 1011100 1011 1011
100 0010 0001
010 1101 1011
110 1011
...011 1001 1011100 1011 1011
Ejecución
Ejecución
Ejecución
Ejecución
Ejecución
14/08/2007Franco Guidi Polanco 44
Traductores: compiladores e intérpretes
Algunos lenguajes de alto nivel:
FORTRAN: primer lenguaje de alto nivel. Para aplicaciones científicas y de ingeniería (de FORmula TRANslator).
COBOL: lenguaje universal para el desarrollo de aplicaciones comerciales, facilita el manejo de archivos y la generación de informes (de Common BusinessOriented Languaje).
BASIC: diseñado para principiantes, pero no es estructurado (de Beginner´s All-purpose Symbolic InstructionCode).
Pascal: creado para la docencia de la programación, se amplió su uso a todo tipo de aplicaciones (en homenaje a Blaise Pascal).
C: creado para la programación del sistema operativo UNIX, se amplió su uso a todo tipo de aplicaciones.
ADA: intento de obtener un lenguaje para programar todo tipo de aplicaciones (en homenaje a Agusta Ada Byron, condesa de Lovelace).
otros: PL/I, MODULA, etc.
14/08/2007Franco Guidi Polanco 45
Traductores: compiladores e intérpretes
Otros lenguajes y extensiones de fabricantes:
xBase: (dBase, Clipper, Fox, y otros) creado para facilitar el manejo de archivos de datos en el desarrollo de aplicaciones comerciales.
Visual Basic: extensión estructurada del BASIC para la generación de aplicaciones con G.U.I. (Graphic User Interface) en entorno Windows y arquitectura Cliente/Servidor.
Delphi: basado en el Pascal, tiene prestaciones similares al anterior.
Visual C, Visual C++: extensión del C, incorpora objetos y se usa en la programación de sistemas y en aplicaciones similares a los anteriores.
14/08/2007Franco Guidi Polanco 46
Traductores: compiladores e intérpretes
Java: es un lenguaje de programación y una plataforma de ejecución creados por un equipo de investigadores de Sun Microsystems a comienzos de los 90’s. Este lenguaje se llamaba originalmente “Oak”, y fue concebido para la programación de electrodomésticos.
14/08/2007Franco Guidi Polanco 47
Plataformas de desarrollo
Para el desarrollo de aplicaciones empresariales de varios niveles:
.Net (“Dot Net”): framework de software propuesto por Microsoft. Característica: soporta diferentes lenguajes de programación.
J2EE (“Java 2 Platform Enterprise Edition”): ambiente centrado en Java, desarrollado por Sun Microsystems, par el desarrollo de aplicaciones basadas en Web. Característica: es independiente de la plataforma.
14/08/2007Franco Guidi Polanco 48
Aplicaciones
Son los programas disponibles para los usuarios finales. Se pueden clasifican como:
Aplicaciones estándares: se comercializan para ser utilizadas en cualquier empresa o por particulares. Por ejemplo:
– Procesadores de texto, planillas electrónicas, programas para presentaciones.
– Programas de apoyo a la investigación científica y tecnológica (ej. solvers para optimización en I.O.)
– Programas CAD (Computer Aided Design) / CAM (Computer Aided Manufacturing)
Aplicaciones a medida: se desarrollan para una determinada empresa, en respuesta a sus necesidades particulares (ej. Sistema de Personal, de Ventas, etc.).
14/08/2007Franco Guidi Polanco 49
Interfaz de usuario
Interfaz de consola:
14/08/2007Franco Guidi Polanco 50
Interfaz de usuario
Graphic User Interface (GUI) con ventanas:
14/08/2007Franco Guidi Polanco 51
Interfaz de usuario
Interfaz “Web”: