Introducción - Departamento de Lenguajes y Ciencias de la

Anuncio
TEMA 1. INTRODUCCIÓN Y
CONCEPTOS BÁSICOS
Contenido del Tema
TT
E
E
M
M
A
A
11
1. Introducción
2. Clasificación
3. Evolución histórica
4. Representación de la información
4.1. Códigos
4.2. Sistemas de numeración
4.3. Representación de números en el ordenador
4.4. Códigos de Entrada/Salida
5. Estructura básica de un ordenador
5.1. Hardware y Software
5.2. Estructura del Hardware
5.3. Estructura del Software
6. Funcionamiento de un ordenador
Elementos de Programación I
Introducción
INFORMÁTICA = INFORmación
+ autoMÁTICA
INFOR
– Informació
Información: Conjunto de símbolos usados para
representar magnitudes, hechos, objetos o ideas.
– Computadora:
Computadora Máquina para procesar información.
Proceso informático o computació
computación
Proceso Informático
Computadora
Información de entrada
e instrucciones
Información de salida o
resultados
Elementos de Programación Curso 2006-2007
Introducción
• Informática como ciencia y técnica
– Ciencia:
Ciencia Estudio de la información y los
métodos para tratarla.
– Técnica:
cnica Estudio y diseño de los
ordenadores.
Elementos de Programación Curso 2006-2007
Introducción
• Ambitos de aplicación de la informática.
– Industria. "Robótica”, "Cibernética”, CAM (Computer Aided
Manufacturing), CIM (Computer Integrated Manufacturing)
– Medicina. "Informática médica"
– Agricultura y ganadería. "Agrónica"
– Enseñanza. CAI (Computer Aided Instruction)
– Diseño (industrial y artístico). CAD (Computer Aided Design), Infografía
– Ambitos científicos y técnicos. Navegación, Meteorología, Astronomía,
"Simulación por ordenador”, SIG (Sistemas de Información Geográficos)
– Ingeniería. CAE (Computer Aided Engineering)
– Telecomunicaciones. "Teleinformática" o "Telemática"
– Administración y negocios: "Informática de gestión”, Electronic Data
Processing (EDP), Management Information Systems (MIS), Enterprise
Resource Planing (ERP), Electronic Document Interchange (EDI)
– Oficina. “Ofimática”.
– Mundo doméstico. “Domótica”, Multimedia, video juegos.
Elementos de Programación Curso 2006-2007
Clasificación
• Métricas de la potencia de un ordenador.
–
–
–
–
Velocidad.
Fiabilidad.
Capacidad de almacenamiento.
Costo.
La potencia de un ordenador es proporcional a su velocidad
de cá
cálculo, a su fiabilidad, su capacidad de almacenamiento
y normalmente a su coste. Es decir, los ordenadores má
más
potentes son los má
á
s
rá
á
pidos,
fiables
y
con
mayor
m r
capacidad de almacenamiento pero tambié
también los má
más caros.
Elementos de Programación Curso 2006-2007
Clasificación
• Tipos de ordenadores por su potencia
–
–
–
–
–
–
–
–
–
Supercomputadores (“Number crunchers”)
Macrocomputadores (“Mainframes”)
Minicomputadores.
Servidores (“Servers”)
Estaciones de trabajo (“Workstations”) Supercomputador CRAY
Computadores Personales/Profesionales (PS/PC)
Computadores portátiles (Notebook, PDA Hand-Held)
Network Computers (NC)
Nanocomputadores (“domésticos” o “familiares”)
Elementos de Programación Curso 2006-2007
Clasificación
Number Cruncher
WorkStation
Mainframe
PC
Portátil
Servidor
NC
PDA
Elementos de Programación Curso 2006-2007
Evolución Histórica
• Prehistoria
– Abaco (siglo XI A.C.).
– Sistemas de numeración.
• Calculadores mecánicos
– Reglas de cálculo (logaritmos).
– Calculadora de Pascal (1642)
– Máquina de Leibnitz.
Regla de cálculo
Ábaco
Pascalina
Elementos de Programación Curso 2006-2007
Evolución Histórica
• Procesadores mecánicos
– Tarjetas perforadas de Jacquard.
– Cajas de música.
– Primer ordenador moderno:
Máquina Analítica (Babbage)
– Primeros programas de ordenador
(Ada Byron)
Telar de Jacquard
• Tabuladores mecánicos
– Álgebra de Boole
– Tabuladora de Hollerith
– ASCC de Aiken
Tabuladora de Hollerith
Elementos de Programación Curso 2006-2007
Evolución Histórica
Ibn Mohammed
al-Khowârizmî
Charles Babbage
John Napier
Ada Byron
Blaise Pascal
Gottfried Von
Leibnitz
Joseph Marie
Jacquard
George Boole
Herman Hollerith
Howard Aiken
Elementos de Programación Curso 2006-2007
Evolución Histórica
Máquina de Leibnitz
Tarjetas de Jacquard
Máquina Diferencial (detalle)
Máquina Diferencial
Elementos de Programación Curso 2006-2007
Evolución Histórica
ASCC
Reproducción de la Máquina Analítica de Babbage
Calculador mecánico de Bollee
Elementos de Programación Curso 2006-2007
Evolución Histórica
• Primera Generación. Válvulas electrónicas (1940-50).
– Avances en la electrónica.
• Cinta y tambor magnético (Poulsen)
• Válvula de vacío (Lee de Forest)
• Principios de Shannon
Válvula
de vacío
Tambor
magnético
– Calculadores electrónicos en la 2ª guerra mundial.
• Z3 de Zuse, Colossus de Turing
– Ejemplos:
• ENIAC. Primer calculador totalmente
electrónico (Eckert y Mauchly).
• ABC, Mark I, EDSAC, EDVAC, LEO,
WHIRLWIND, UNIVAC I, IBM 701
– Arquitectura de Von Neumann
Elementos de Programación Curso 2006-2007
Evolución Histórica
Cinta magnética
Tambor magnético
Válvula de vacío
Tarjeta y cinta perforada
Elementos de Programación Curso 2006-2007
Evolución Histórica
Colossus
Konrad Zusse
Alan Turing
Eckert y Mauchly
Claude Shanon
John Von Neumman
Elementos de Programación Curso 2006-2007
Evolución Histórica
ENIAC
Elementos de Programación Curso 2006-2007
Evolución Histórica
EDVAC
ABC
EDSAC
Atanasanoff
MARK I
UNIVAC I
Elementos de Programación Curso 2006-2007
Evolución Histórica
ACE (1950)
ORACLE
WHIRLWIND
LEO
IBM 650
Elementos de Programación Curso 2006-2007
Evolución Histórica
• Segunda Generación. Transistores (1950-65).
– Nuevas tecnologías en electrónica.
• Máquinas más pequeñas y rápidas.
• Memorias de ferritas y disco magnético.
• Transistor (Shockley) 1958
Transistores
– Ejemplos: TXO, IBM-7000, Atlas, ...
– Primeros lenguajes de programación.
•
•
•
•
•
FORTRAN (Backus)
ALGOL (Naur)
COBOL (CODASYL)
BASIC (Kemeny & Kurtz)
PL-I (IBM)
Evolución de los discos magnéticos
Elementos de Programación Curso 2006-2007
Evolución Histórica
Discos duros primitivos (RAMAC)
Memoria de Ferritas
Transistores
Elementos de Programación Curso 2006-2007
Evolución Histórica
Grace Murray Hopper
John Backus
Thomas Kurtz y John Kemeny
P. Naur
Primer transistor
CODASYL (Cobol)
William Shockey
Elementos de Programación Curso 2006-2007
Evolución Histórica
MIT TX-0
DIGITAL PDP-1
IBM 7030
IBM 1401
UNIVAC 1107
CDC 1600
Elementos de Programación Curso 2006-2007
Evolución Histórica
• Tercera generación. Circuitos integrados (1965-75).
– Avances en componentes y dispositivos.
• Circuitos integrados (Kilby, Noyce & Moore)
• Terminales de video, impresoras, módem, ...
Circuito integrado
– Ejemplos: IBM-360, PDP-8, UNIVAC-1108, CDC-6000
– Software:
• Sistemas operativos: OS/360, MVS, VMS, UNIX, ...
– Permiten compartir el ordenador entre varios usuarios
• Bases de datos (Codd)
• Lenguajes de programación estructurados (Dijkstra): APL,
Pascal, C, ...
• Lenguajes de programación entrelazados: Forth, Logo, ...
Elementos de Programación Curso 2006-2007
Evolución Histórica
MODEM acústico
Circuito integrado
primitivo
Primer Circuito Integrado
Perforadora y lectora de tarjetas
Impresora de líneas
Elementos de Programación Curso 2006-2007
Evolución Histórica
Jack Kilby
Gene Amdahl
Robert Noyce Kenneth Thompson
Seymour Papert
Dennis Ritchie
Brian Kernigan
E. Dijkstra
Niklaus Wirth
Elementos de Programación Curso 2006-2007
Evolución Histórica
Evolución de los disquetes
IBM 360
CDC 6600
CPU Apollo XI
DEC PDP-11 UNIX
DEC VAX 11-750
Elementos de Programación Curso 2006-2007
Evolución Histórica
• Cuarta Generación. Microprocesadores (1975-).
– Avances espectaculares en microelectrónica.
• Microprocesadores (Intel 4004) y circuitos LSI.
– Aparecen los ordenadores personales: Apple, IBM,
Sinclair, Amstrad, Commodore, Atari, ...
•
•
•
•
•
Sistemas operativos personales: CP/M, MS-DOS, MacOS, ...
Ofimática. Procesadores de textos, hojas de cálculo, ...
Entornos gráficos: Windows, Next, Motif, ...
Lenguajes orientados a objetos: ADA, C++, ...
Multimedia
– Teleinformática: Redes, Internet.
Elementos de Programación Curso 2006-2007
Evolución Histórica
INTEL 4004
Calculadora BUSICOM
Pentium IV
INTEL 8008
Obleas de silicio con μP
Elementos de Programación Curso 2006-2007
Evolución Histórica
John Sculley (APPLE)
Paul Allen y Bill Gates (MICROSOFT)
Sir Clive Sinclair
Ed Roberts (ALTAIR)
C. Moore (INTEL)
Steve Jobs y Stephen Wozniak (APPLE)
Gary Kildall (DR)
Linus Torvalds (LINUX)
Elementos de Programación Curso 2006-2007
Evolución Histórica
APPLE I
APPLE II
MACINTOSH
iMAC II
APPLE LISA
iBOOK
iMAC
Elementos de Programación Curso 2006-2007
Evolución Histórica
COMMODORE VIC-20
ZX-81
ALTAIR 8800
ZX SPECTRUM
IBM PS-2
IBM-PC
AMSTRAD CPC 64
Elementos de Programación Curso 2006-2007
Evolución Histórica
ATARI ST
COMPAQ - 1
ATARI PONG
SONY MSX
TANDY TRS-80
GALAXY
COMMODORE 64
OSBORNE 1
XBOX
SONY PS-2
Elementos de Programación Curso 2006-2007
Evolución Histórica
Fibra Óptica
Cableado de red local
Router
Teleinformática
WIRELESS
Networking
INTERNET
Elementos de Programación Curso 2006-2007
Evolución Histórica
Entornos gráficos
Be OS
OS/2 WARP
GEM (DR)
XEROX STAR
LINUX / MOTIF
Elementos de Programación Curso 2006-2007
Evolución Histórica
WINDOWS 1
WINDOWS 98
WINDOWS 3.11
WINDOWS 2
WINDOWS NT
WINDOWS XP
Elementos de Programación Curso 2006-2007
Evolución Histórica
• Quinta Generación. Inteligencia Artificial (1990-).
– Juego de la imitación de Turing
– Nuevas arquitecturas de ordenadores
• Procesamiento paralelo
• Redes neuronales
• Nuevas tecnologías de materiales
– Nuevos enfoques en el tratamiento de la
información
•
•
•
•
Datos → Conocimientos
Lenguajes no procedurales: LISP, PROLOG, ...
Lenguaje natural
Sistemas expertos, sistemas inteligentes.
Elementos de Programación Curso 2006-2007
Evolución Histórica
LISP
C++
John McCarthy
Bjarne Stroustrup
SMALLTALK
Negroponte
Alan Kay
PROLOG
Red Neuronal
Elementos de Programación Curso 2006-2007
Evolución Histórica
Vídeo
2001 una odisea
en el espacio
HAL 9000
Superconductor
Oblea de circuitos con
tecnología de Cobre (IBM)
DEEP BLUE (IBM)
EARTH SIMULATOR (NEC)
ROBOTS (SONY) Nanotecnología
Elementos de Programación Curso 2006-2007
Evolución Histórica
• Situación actual
– Globalización.
• La tecnología al alcance de todos.
– Espectaculares avances de la telemática.
•
•
•
•
Redes locales de más de 1 Gbit/seg.
Redes Wireless (inalhámbricas)
Redes públicas de banda ancha (ATM, ADSL, XDSL)
Integración de telefonía y datos, tanto fija como móvil
(GPRS, UMTS, telefonía IP)
• Seguridad informática (firewalls, cifrado de clave pública)
• Internet y sus tecnologías aplicadas:
– WWW, HTML, JAVA, XML, etc.
Elementos de Programación Curso 2006-2007
Evolución Histórica
– Lenguajes visuales para los entornos GUI.
• Integración de elementos mutimedia en los programas.
• Lenguajes orientados a la infografía (FLASH, …)
– CBSE (Component-Based Software Engineering)
– Procesamiento distribuido.
• Procesamiento simétrico (SMP).
• Procesamiento en red (grid).
Elementos de Programación Curso 2006-2007
Evolución Histórica
• Videos y animaciones
Historia de la
informá
informática
Macintosh
IBM 701
PowerPC
IBM RAMAC
iMac
Funcionamiento
válvula de vací
vacío
Mecanismo
caja de mú
música
IBM 360
IBM NORC
Fabricació
Fabricación
Microprocesadores
IBM 1401
Pentium
Elementos de Programación Curso 2006-2007
Códigos
• DATO:
DATO Característica de una información
expresada en forma adecuada para su tratamiento.
• Representación de los datos (valores):
– Valores analógicos.
– Valores discretos o digitales.
• Necesidad de convertir los valores analógicos a
discretos.
– Sistema digital:
digital Sistema de N estados estables
– Dígito:
gito Variable capaz de asumir un estado discreto.
• Los dígitos se agrupan para representar más estados.
Elementos de Programación Curso 2006-2007
Códigos
• Código:
digo Ley de correspondencia entre valores
de información y combinaciones de dígitos de un
sistema digital utilizadas para representarlos.
– Codificació
Codificación: Información → Código
azul →
verde →
rojo →
0
1
2
ó
azul →
verde →
rojo →
100
101
111
– Decodificació
Decodificación: Código → Información
azul ←
verde ←
rojo ←
0
1
2
ó
azul ←
verde ←
rojo ←
100
101
111
• Código binario.
binario Cuando el sistema digital
utilizado tiene sólo 2 estados (0,1).
Elementos de Programación Curso 2006-2007
Códigos
• BIT (BInary
digiT): Unidad elemental
BI
de información. Variable lógica que
sólo admite dos valores.
• Agrupaciones de bits:
– Para N valores hacen falta x bits ⇒
2 x-1 < N ≤ 2 x
– BYTE u OCTETO:
OCTETO Agrupación de bits necesaria para
representar y almacenar un símbolo de escritura (8).
– Medidas clásicas de la capacidad de almacenamiento:
KILOBYTE (KB) 210 bytes, MEGABYTE (MB) 210 KB,
GIGABYTE (GB) 210 MB, TERABYTE (TB) 210 GB.
Elementos de Programación Curso 2006-2007
Códigos
• Nuevos prefijos para múltiplos binarios
Factor
Nombre
Símbolo
Origen
Derivación
2 10
kibi
Ki
kilobinary: (2 10) 1
kilo: (10 3) 1
2 20
mebi
Mi
megabinary: (2 10) 2
mega: (10 3) 2
2 30
gibi
Gi
gigabinary: (2 10) 3
giga: (10 3) 3
2 40
tebi
Ti
terabinary: (2 10) 4
tera: (10 3) 4
2 50
pebi
Pi
petabinary: (2 10) 5
peta: (10 3) 5
2 60
exbi
Ei
exabinary: (2 10) 6
exa: (10 3) 6
Ejemplos y comparaciones con prefijos del SI métrico
1 kibibit
1 kilobit
1 mebibyte
1 megabyte
1 Kibit = 2 10 bits = 1.024 bits
1 kbit = 10 3 bits = 1.000 bits
1 MiB = 2 20 Bytes = 1.048.576 Bytes
1 MB = 10 6 Bytes = 1.000.000 Bytes
1 gibibyte
1 GiB = 2 30 Bytes = 1.073.741.824 Bytes
1 gigabyte
1 GB = 10 9 Bytes = 1.000.000.000 Bytes
Elementos de Programación Curso 2006-2007
Sistemas de numeración
• Sistema de numeración posicional en base "b”:
Utiliza un alfabeto compuesto por b símbolos o
cifras. El valor de cada cifra depende de:
– La cifra en sí.
– La posició
posición de la cifra en el número.
• Ejemplo: El sistema decimal (b=10)
Alfabeto: {0,1,2,3,4,5,6,7,8,9}
3278.52 (10 = 3·103+2·102+7·101+8·100+5·10-1+2·10-2
• Generalizando, para
N
=...+n
=...+n3·b3
+n2·b2
+n1·b1
...n
...n3n2n1n0.n-1n-2... (b
+n0·b0 + n-1·b-1 + n-2·b-2 +...
Exp. 1.1
Elementos de Programación Curso 2006-2007
Sistemas de numeración
• Propiedades de los Sistemas de Numeración
Posicionales.
1. La existencia de representaciones para cualquier número natural se
basa en que la sucesión b0, b1, b2, ... bn, ... para b > 1 es
estrictamente creciente.
2. Unicidad. Permite utilizar una única combinación de símbolos para
representar cualquier número, eliminando cualquier ambigüedad.
3. En todo sistema de numeración posicional existe un símbolo unidad
o de orden 0 y un símbolo nulo. Todos los símbolos menos el nulo
se llaman "significativos" porque representan cantidades, el
símbolo nulo en cambio representa su ausencia.
4. Los números mayores que la base se representan por medio de
varias cifras. La primera de la derecha indica el número de unidades
de orden 0 que posee el número, la segunda expresa las unidades
de orden 1 y así sucesivamente.
Elementos de Programación Curso 2006-2007
Sistemas de numeración
5. Para un sistema de numeración con base "b", cada "b" unidades de
un cierto orden constituyen una unidad de orden superior. Una
unidad de orden "n" equivale a "b" unidades de orden "n-1", o "b2"
unidades de orden "n-2" o "bn" unidades de orden 0.
6. La representación en un sistema posicional de un número es un
polinomio en el que la indeterminada es la base y los coeficientes
se restringen a los números naturales inferiores a la base:
ab...uvw = a·xn + b·xn-1 + ... + u·x2 + v·x + w
7. Las potencias de la base (bn) se expresan siempre como la unidad
seguida de n ceros.
8. En base "b", el valor "bn-1" es una colección de n veces la cifra (b-1)
que es el último símbolo básico para dicha base.
9. La cantidad de cifras para representar un número es inversamente
proporcional al valor de la base. La relación entre un número y la
cantidad de cifras necesaria para expresarlo en base "b" es:
número de cifras = INT ((log b N) + 1)
Elementos de Programación Curso 2006-2007
Sistemas de numeración
• Sistema de numeración
binario.
binario
Aquí la base es 2 (b=2)
sólo se necesitan dos
símbolos : {0,1}
Binario Decimal
000
001
010
011
100
101
110
111
0
1
2
3
4
5
6
7
Tabla 1
Elementos de Programación Curso 2006-2007
Sistemas de numeración
– Conversió
Conversión de decimal a binario.
binario Se aplica el
método de las “divisiones
divisiones y multiplicaciones”
multiplicaciones
sucesivas por la base con divisor y multiplicador b=2.
Ejemplo:
26.1875 (10 =
Para la parte entera: 26 | 2
0
Para la parte fraccionaria:
0.1875
0.3750
x 2
x 2
0.3750
0.7500
11010.0011 (2
13 | 2
1
6 | 2
0
3 | 2
1
1 | 2
1
0
0.7500
x 2
1.5000
0.5000
x 2
1.0000
Elementos de Programación Curso 2006-2007
Sistemas de numeración
– Conversió
Conversión de binario a decimal.
decimal Se desarrolla la
representación binaria (con b=2) y se opera el
polinomio en decimal.
Ejemplos:
110100(2
= 1·25 + 1·24 + 0·23 + 1·22 + 0·21 + 0·20 = 52 (10
10100.001(2 = 1·24 + 0·23 + 1·22 + 0·21 + 0·20 + 0·2- 1 +0·2- 2 + 1·2-3
= 20.125 (10
• Realmente basta con sumar los pesos (2 i ) de las
posiciones (i) en las que hay un 1.
Elementos de Programación Curso 2006-2007
Sistemas de numeración
• Sistema de numeración octal.
octal La base es 8 y el
conjunto de símbolos es: {0,1,2,3,4,5,6,7}
– Conversió
Conversión de octal a decimal.
decimal Se desarrolla el
polinomio con b=8 y se opera en decimal.
– Conversió
Conversión de decimal a octal.
octal Aplicar el método de
“divisiones y productos” con divisor y multiplicador 8.
– Conversió
Conversión “rápida”
pida” de binario a octal.
octal Agrupar cifras
binarias de 3 en 3 y transformar con la tabla 1.
• Ejemplo:
10001101100.11010 (2
=
2154.64 (8
– Conversió
Conversión “rápida”
pida” de octal a binario.
binario Aplicar tabla 1.
• Ejemplo:
537.24 (8
=
101011111.010100 (2
Elementos de Programación Curso 2006-2007
Sistemas de numeración
Binario Decimal Octal
• Sistema de
numeración
hexadecimal.
hexadecimal
La base es 16 y el
conjunto de símbolos
es: {0,1,2,3,4,5,6,7,8,
9,A,B,C,D,E,F}
Hexadecimal
0000
0001
0010
0011
0100
0101
0110
0111
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
1000
1001
1010
1011
1100
1101
1110
1111
8
9
10
11
12
13
14
15
10
11
12
13
14
15
16
17
8
9
A
B
C
D
E
F
Tabla 2.
Elementos de Programación Curso 2006-2007
Sistemas de numeración
– Conversió
Conversión de hexadecimal a decimal.
decimal Se desarrolla el
polinomio con b=16 y se opera en decimal.
– Conversió
Conversión de decimal a hexadecimal.
hexadecimal Aplicar el
método de “divisiones y productos” con divisor y
multiplicador 16.
– Conversió
Conversión “rápida”
pida” de binario a hexadecimal.
hexadecimal
Agrupar cifras binarias de 4 en 4 y aplicar la tabla 2.
• Ejemplo:
100 1011 1011 111 . 1011 1010 (2
=
25DF.BA (16
– Conversió
Conversión “rápida”
pida” de hexadecimal a binario.
binario
Convertir cada cifra hexadecimal mediante la tabla 2.
• Ejemplo:
1ABC.C4 (16
=
0001 1010 1011 1100 . 1100 0100 (2
Elementos de Programación Curso 2006-2007
Sistemas de numeración
• Resumen de cambios de base
ex. I.1
Decimal
Binario
"d y m"
ex. I.1
Binario
grupos
3 bits
Decimal
Octal
"d y m"
"d y m"
ex. I.1
ex. I.1
Binario
grupos
4 bits
Decimal
Hexadecimal
"d y m"
"d y m"
ex. I.1
Elementos de Programación Curso 2006-2007
Representación de números
en el ordenador
• Números de precisión finita:
finita La memoria es
limitada. Sólo se dispone de n bits para las
representaciones.
• Coma fija sin signo o binario puro.
puro Permite
representar sólo números enteros positivos.
– Rango: 0 a 2n - 1
• 000...n...0 ⇔ 111...n...1
(en binario puro)
– Inconvenientes:
• Desbordamiento al realizar sumas.
• Al no poder representarse los negativos, antes de
realizar A - B, se ha de comprobar que A ≥ B.
Elementos de Programación Curso 2006-2007
Representación de números
en el ordenador
• Coma fija signo-magnitud.
magnitud Se reserva un bit
para indicar el signo. Se utiliza para productos.
– MSB (Most Significant Bit) : 0 positivo, 1 negativo.
– Rango: - (2n-1 - 1) a (2n-1 - 1)
• 000...n...0 a 011...n...1para positivos
• 100...n...0 a 111...n...1para negativos
• primer bit para signo y el resto en binario puro.
– Inconvenientes :
• El cero tiene dos representaciones.
• La operación que se realiza (suma o resta) depende de los
operandos.
Elementos de Programación Curso 2006-2007
Representación de números
en el ordenador
• Complemento a dos.
dos Simplifica sumas y restas,
quedando reducidas a sumas (el acarreo se elimina).
+
– Rango: - 2n-1 a (2n-1 - 1)
• 000...n...0 a 011...n...1 para positivos (en binario puro)
• 100...n...0 a 111...n...1 para negativos (en complemento a dos)
• Los valores negativos (-x) se representan como: 2n - |x|
– Una sola representación para el cero.
– Ejemplo: para n = 8, para realizar la resta 7-5 = 2:
+7
-5
+2
=
= (complemento a dos)
00000111
11111011 +
100000010 = 2
acarreo final se elimina
Elementos de Programación Curso 2006-2007
Representación de números
en el ordenador
• Complemento a uno.
uno Representación de
negativos muy simple.
– Rango: - (2n-1 - 1) a (2n-1 - 1)
• 000...n...0 a 011...n...1 para positivos (en binario puro)
• 100...n...0 a 111...n...1 para negativos (en complemento a uno)
• Los valores negativos (-x) se representan como: (2n -1) - |x|
– Ventajas:
• Representación de negativos muy simple (cambio de ceros por
unos y unos por ceros).
• Las sumas y restas se reducen a sumas, pero hay que tener en
cuenta el acarreo final, sumándolo al resultado.
– Inconvenientes:
• El cero tiene dos representaciones (no unicidad).
Elementos de Programación Curso 2006-2007
Representación de números
en el ordenador
– Ejemplo: para n = 8, para realizar la resta 7 - 3:
+7
-3
=
en complemento a uno es
luego
00000111
11111100
00000111
11111100
100000011
1
00000100
+
+
=
4
Elementos de Programación Curso 2006-2007
Códigos de Entrada/Salida
• Asocian a cada símbolo de la escritura
(carácter) una determinada combinación de bits.
– Caracteres grá
gráficos.
ficos. Representan símbolos.
– Caracteres de control.
control. Órdenes para controlar los
dispositivos de E/S. (p.e. cambio de línea, pitido, etc.)
• Para codificar m símbolos distintos se necesitan
n bits, siendo n ≥ log2 m, donde n ∈ Ν.
código E/S :
a→b
a = {0,1,2,...,8,9,A,B,...,Y,Z,a,b,...,y,z,*,",/,...}
b = {0,1}n
• Existen muchos códigos de E/S normalizados.
Elementos de Programación Curso 2006-2007
Códigos de Entrada/Salida
• Código ASCII.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
CARACTERES DE CONTROL
(nulo)
16 DLE (escape de enlace de datos)
(comienzo de cabecera)
17 DC1 (control de dispositivo 1)
(comienzo de texto)
18 DC2 (control de dispositivo 2)
(fin de texto)
19 DC3 (control de dispositivo 3)
(fin de transmisión)
20 DC4 (control de dispositivo 4)
(pregunta)
21 NAK (acuse de recibo negativo)
(acuse de recibo)
22 SYN (sincronización)
(campana sonora)
23 ETB (fin de bloque de transmisión)
(retroceso de un espacio)
24 CAN (anulación)
(tabulación horizontal)
25 EM (fin de medio físico)
(cambio de renglón)
26 SUB (carácter de sustitución)
(tabulación vertical)
27 ESC (escape)
(página siguiente)
28 FS
(separador de ficheros)
(retroceso del carro)
29 GS (separador de grupos)
(fuera de código)
30 RS (separador de registros)
(en código)
31 US (separador de unidades)
Elementos de Programación Curso 2006-2007
Códigos de Entrada/Salida
CARACTERES GRÁ
GRÁFICOS
32
33
34
35
36
37
38
39
40
41
42
43
44
45
SP
!
"
#
$
%
&
'
(
)
*
+
,
-
48
49
50
51
52
53
54
55
56
57
58
59
60
61
0
1
2
3
4
5
6
7
8
9
:
;
<
=
64
65
66
67
68
69
70
71
72
73
74
75
76
77
@
A
B
C
D
E
F
G
H
I
J
K
L
M
80
81
82
83
84
85
86
87
88
89
90
91
92
93
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
96
97
98
99
100
101
102
103
104
105
106
107
108
109
46
.
62
>
78
N
94
^
95 _
47 /
63 ?
79 O
`
a
b
c
d
e
f
g
h
i
j
k
l
m
112
113
114
115
116
117
118
119
120
121
122
123
124
125
p
q
r
s
t
u
v
w
x
y
z
{
|
}
110 n
126
~
111 o
127 DEL
Elementos de Programación Curso 2006-2007
Hardware y Software
• HARDWARE.
HARDWARE Elementos físicos del ordenador
– Existen diferentes tipos de ordenadores respecto del tipo y
funcionamiento del hardware de los mismos y al modo en que
tratan y representan la información:
• COMPUTADORAS ANALOGICAS: Las magnitudes físicas que
se utilizan para representar la información pueden tomar un valor
cualquiera dentro de un rango prefijado.
• COMPUTADORAS DIGITALES : Sólo toman valores discretos.
– Otro criterio está basado en su construcción:
• De Lógica Cableada. La secuencia de operaciones a realizar
está implantada en el cableado de los circuitos (calculadoras).
• De Lógica Programada. La secuencia de operaciones está
almacenada y puede cambiarse sin alterar los circuitos.
Elementos de Programación Curso 2006-2007
Hardware y Software
Ordenador ANALÓGICO
Ordenador DIGITAL
Elementos de Programación Curso 2006-2007
Hardware y Software
• SOFTWARE.
SOFTWARE Elementos lógicos del
ordenador.
– Instrucció
Instrucción. Conjunto de símbolos que
representan una orden de operación
para el ordenador.
– Programa.
Programa Conjunto de instrucciones
encadenadas para resolver un problema.
– Software.
Software Conjunto de programas que
puede realizar un ordenador.
– Lenguaje de programació
programación. Conjunto
de reglas para describir programas.
Elementos de Programación Curso 2006-2007
Estructura del Hardware
Señales de control
Memoria
Masiva
Datos
e instrucciones
Memoria Principal
datos e instrucciones
Datos e instrucciones
Instrucciones
ENTRADA
Datos
Datos
SALIDA
Unidad
AritméticoLógica (ALU)
Unidad
de Control
Procesador Central (CPU)
Elementos de Programación Curso 2006-2007
Estructura del Hardware
Elementos bá
básicos de un ordenador
Unidad central
Monitor
Impresora
Ratón
Teclado
Elementos de Programación Curso 2006-2007
Estructura del Hardware
• Unidad Central de Proceso (CPU)
– Unidad Aritmé
Aritméticotico-Lógica (ALU). Realiza operaciones.
– Unidad de Control (UC). Controla la ejecución de
instrucciones.
• Contador de programa, Registro de instrucción, Reloj.
• Memoria. Almacena información e instrucciones.
– Principal. Gran velocidad, poca capacidad.
• Dos tipos básicos: RAM y ROM.
• Organizada en celdas, accesibles por posición (dirección).
– Secundaria o Masiva. Poca velocidad, gran capacidad.
Elementos de Programación Curso 2006-2007
Estructura del Hardware
• Periféricos. Dispositivos de comunicación con
el exterior.
– Entrada. Recogida de información e instrucciones.
– Salida. Obtención de resultados.
• Buses.
– Señales de datos.
datos Transfieren información e
instrucciones.
– Señales de direcció
dirección. Selección de celdas de
memoria/periféricos.
– Señales de control y estado.
estado
Elementos de Programación Curso 2006-2007
Estructura del Hardware
CPU
MEMORIA
ENTRADA
SALIDA
BUSES
Circuito de Memoria RAM
Circuito de Memoria ROM
Disco Duro
(Memoria Secundaria)
Ratón
CPU
Monitor
Circuitos Impresos PCB (BUSES)
Teclado
Impresora Inyección
Elementos de Programación Curso 2006-2007
Estructura del Hardware
Impresora Matricial
Escáner
Impresora Láser
Tableta digitalizadora
Plotter
PC-Cam
Tarjeta de TV y radio
Multifunción
Vídeo Proyector
Tarjeta gráfica
Teclado y ratón inalhámbrico
Teclado musical
Sistema de sonido
Elementos de Programación Curso 2006-2007
Estructura del Hardware
UPS
Networking
Grabador DVD
Disco magneto-óptico
Unidad ZIP externa
Unidad de cinta DDS
Disquetera
Router ADSL
Módem
Pen drive
Wireless
Elementos de Programación Curso 2006-2007
Estructura del Software
• Software de aplicación.
– Programas de usuario.
– Programas verticales.
– Paquetes estándar.
• Software de sistema.
sistema
–
–
–
–
–
Usuario Final
Software de aplicaciones
Software de sistema
Hardware
Lenguajes, entornos de programación y traductores.
Soporte y sistema de gestión de datos (DBMS).
Entorno gráfico de usuario (GUI).
Sistema operativo (OS).
Rutinas básicas de entrada/salida (BIOS).
Elementos de Programación Curso 2006-2007
Funcionamiento de un
ordenador
• Principios de la Arquitectura de Von Neumann.
Neumann
– Datos e instrucciones se codifican en
dígitos binarios.
– Tanto instrucciones como datos se
almacenan juntos en la memoria del
computador.
– El computador procesa tanto instrucciones como datos.
– Un programa es una cadena secuencial de instrucciones.
– Existe una instrucción de bifurcación condicional
(capacidad lógica binaria) que permita mediante un dato
elegir entre dos secuencias de instrucciones a ejecutar.
Elementos de Programación Curso 2006-2007
Funcionamiento de un
ordenador
• Para ejecutar un programa escrito en lenguaje
máquina, lo primero que hay que hacer es
introducirlo en la memoria principal: El
"cargador"
cargador se encarga de introducir el
programa en posiciones consecutivas de
memoria a partir de una dada "i".
• Una vez cargado, la UC (unidad de control)
pone el registro CP (contador de programa) a
"i", para que empiece a ejecutarse el programa.
Elementos de Programación Curso 2006-2007
Funcionamiento de un
ordenador
• La UC repite sucesivamente las siguientes fases:
a) Fase de captación de la instrucción.
• Memoria (CP) --- (instrucción) ---> UC
• Incremento de CP
b) Fase de ejecución de instrucción, y vuelta a fase a).
• Si la ejecución de una instrucción implica saltar a
una instrucción distinta a la siguiente, se pondrá
el CP al valor de la posición de dicha instrucción,
con lo que se cogerá en la siguiente fase a).
Elementos de Programación Curso 2006-2007
Funcionamiento de un
ordenador
• Ejemplo: se dispone de un ordenador con las siguientes
instrucciones máquina:
– ENT M (m). Lee de teclado un valor y lo almacena en la posición m de
memoria.
– SAL M (m). Escribe en impresora el contenido de la posición m de memoria.
– CAR M (m). Carga en la ALU un dato procedente de la posición m de memoria.
– MEM M (m). Almacena en la posición m de memoria el contenido de la ALU.
– SUM M (m). Suma el contenido de la ALU con el de la posición m de memoria,
y el resultado queda en la ALU.
• Se desea ejecutar un programa que sume dos números dados por
teclado y muestre el resultado en la impresora.
• El programador, en lenguaje máquina, ha de determinar las
posiciones de memoria que va a utilizar. Por ejemplo:
– Primer sumando, en posición 16
– Segundo sumando, en posición 17
– Suma, en posición 18.
Elementos de Programación Curso 2006-2007
Funcionamiento de un
ordenador
(7)
(8) ENT M(16)
(9) ENT M(17)
(10) CAR M(16)
(11) SUM M(17)
(12) MEM M(18)
(13) SAL M(18)
(14)
(15)
(16) 50
(17) 16
(18) 66
(19)
50 , 16
Teclado
instrucciones
66
Impresora
Memoria
50
UC
66
ALU
Elementos de Programación Curso 2006-2007
Funcionamiento de un
ordenador
• Animaciones y simuladores
Animació
Animación 1
Ejecució
Ejecución de instrucciones.
Universidad Queensland
Animació
Animación 2
Ejecució
Ejecución de instrucciones.
Animació
Animación 3
Programa para contar
Simulador 1
Simulador ABACO
Simulador 2
Simulador de procesador
EJEMEJEM-1 ETSIETSI-UAM
Simulador 3
EDSAC
Simulador 4
IMSAI 8080
Animació
Animación 4
Programa para Sumar
Simulador 5
MARK I
Elementos de Programación Curso 2006-2007
Otra estructura de ordenador
Elementos de Programación Curso 2006-2007
Bibliografía
• Estudio general del ordenador. P. Bishop. Ed. Alhambra 1985.
• Las computadoras y la información. Lawrence S. Orilia. Ed.
McGraw Hill 1987.
• Perspectivas de la revolución de los computadores. Selección de
Zenon W. Pylyshyn. Alianza Editorial 1975.
• El computador pensante. Bertram Raphael. Ediciones Cátedra 1984.
• El ordenador de quinta generación. Thoru Moto-oka y Masaru
Kitsuregawa. Ed. Ariel 1986.
• Organización de computadoras: Un enfoque estructurado. Andrew
S. Tanenbaum. Ed. Prentice-Hall 1999.
• Una introducción moderna a la ciencia de la computación con un
enfoque algorítmico. Goldschlager, Les & Lister, Andrew. Ed.
Prentice-Hall. 1988.
• Fundamentos de los computadores. Anasagasti, P. de Miguel. Ed
Paraninfo 1990.
Elementos de Programación Curso 2006-2007
Descargar