Post on 16-Oct-2018
TEMA 1. INTRODUCCIÓN Y CONCEPTOS BÁSICOSContenido del Tema
1. Introducción2. Clasificación3. Evolución histórica 4. Representación de la información
4.1. Códigos4.2. Sistemas de numeración4.3. Representación de números en el ordenador4.4. Códigos de Entrada/Salida
5. Estructura básica de un ordenador5.1. Hardware y Software5.2. Estructura del Hardware5.3. Estructura del Software
6. Funcionamiento de un ordenador
TEMA
1
TEMA
1
Elementos de Programación I
Elementos de Programación Curso 2006-2007
Introducción
INFORMINFORMÁÁTICATICA = INFORINFORmación + autoMMÁÁTICATICA
–– InformaciInformacióónn: Conjunto de símbolos usados para representar magnitudes, hechos, objetos o ideas.
–– ComputadoraComputadora: Máquina para procesar información.Proceso informático o computacicomputacióónn
ComputadoraInformación de entrada
e instruccionesInformación de salida o
resultados
Proceso Informático
Elementos de Programación Curso 2006-2007
Introducción
• Informática como ciencia y técnica–– CienciaCiencia: Estudio de la información y los
métodos para tratarla.–– TTéécnicacnica: 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.Velocidad.–– Fiabilidad.Fiabilidad.–– Capacidad de almacenamiento.Capacidad de almacenamiento.–– Costo.Costo.
La potencia de un ordenador es proporcional a su velocidad La potencia de un ordenador es proporcional a su velocidad de cde cáálculo, a su fiabilidad, su capacidad de almacenamiento lculo, a su fiabilidad, su capacidad de almacenamiento y normalmente a su coste. Es decir, los ordenadores my normalmente a su coste. Es decir, los ordenadores máás s potentes son los mpotentes son los máás rs ráápidos, fiables y con mayor pidos, fiables y con mayor capacidad de almacenamiento pero tambicapacidad de almacenamiento pero tambiéén los mn los máás caros.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”)– Computadores Personales/Profesionales (PS/PC)– Computadores portátiles (Notebook, PDA Hand-Held)– Network Computers (NC)– Nanocomputadores (“domésticos” o “familiares”)
Supercomputador CRAY
Elementos de Programación Curso 2006-2007
Clasificación
Number Cruncher Mainframe Servidor
WorkStation PC PortátilNC 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)• Tabuladores mecánicos
– Álgebra de Boole– Tabuladora de Hollerith– ASCC de Aiken
Telar de Jacquard
Tabuladora de Hollerith
Elementos de Programación Curso 2006-2007
Evolución Histórica
Ada ByronCharles Babbage George Boole
John Napier Blaise Pascal
Herman Hollerith
Gottfried VonLeibnitz
Joseph Marie Jacquard
Howard Aiken
Ibn Mohammedal-Khowârizmî
Elementos de Programación Curso 2006-2007
Evolución Histórica
Máquina Diferencial (detalle) Máquina Diferencial
Máquina de Leibnitz
Tarjetas de Jacquard
Elementos de Programación Curso 2006-2007
Evolución Histórica
ASCC
Calculador mecánico de Bollee
Reproducción de la Máquina Analítica de Babbage
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
– 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
Válvula de vacío
Tambor magnético
Elementos de Programación Curso 2006-2007
Evolución Histórica
Tarjeta y cinta perforada
Cinta magnética
Tambor magnéticoVálvula de vacío
Elementos de Programación Curso 2006-2007
Evolución Histórica
Konrad Zusse
John Von Neumman
Colossus
Eckert y MauchlyAlan Turing Claude Shanon
Elementos de Programación Curso 2006-2007
Evolución Histórica
ENIAC
Elementos de Programación Curso 2006-2007
Evolución Histórica
ABC
EDSAC
EDVAC
MARK IUNIVAC I
Atanasanoff
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
– 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
Transistores
Elementos de Programación Curso 2006-2007
Evolución Histórica
TransistoresMemoria de FerritasDiscos duros primitivos (RAMAC)
Elementos de Programación Curso 2006-2007
Evolución Histórica
John Backus CODASYL (Cobol)Grace Murray Hopper P. Naur
Thomas Kurtz y John KemenyWilliam ShockeyPrimer transistor
Elementos de Programación Curso 2006-2007
Evolución Histórica
MIT TX-0 IBM 7030
DIGITAL PDP-1 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, ...
– 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, ...
Circuito integrado
Elementos de Programación Curso 2006-2007
Evolución Histórica
Primer Circuito Integrado
Impresora de líneas
Circuito integrado primitivo
Perforadora y lectora de tarjetas
MODEM acústico
Elementos de Programación Curso 2006-2007
Evolución Histórica
Gene Amdahl
Kenneth Thompson Dennis Ritchie
E. DijkstraNiklaus WirthSeymour Papert
Brian KerniganJack Kilby Robert Noyce
Elementos de Programación Curso 2006-2007
Evolución Histórica
IBM 360
DEC PDP-11 UNIXCDC 6600 DEC VAX 11-750
Evolución de los disquetes
CPU Apollo XI
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
INTEL 8008Obleas de silicio con μP
Pentium IV
Elementos de Programación Curso 2006-2007
Evolución Histórica
Paul Allen y Bill Gates (MICROSOFT) Sir Clive Sinclair Ed Roberts (ALTAIR)
Gary Kildall (DR)C. Moore (INTEL)Steve Jobs y Stephen Wozniak (APPLE) Linus Torvalds (LINUX)
John Sculley (APPLE)
Elementos de Programación Curso 2006-2007
Evolución Histórica
APPLE I APPLE II MACINTOSH
APPLE LISAiMAC
iMAC II
iBOOK
Elementos de Programación Curso 2006-2007
Evolución Histórica
ALTAIR 8800
ZX-81
IBM-PC IBM PS-2AMSTRAD CPC 64
COMMODORE VIC-20
ZX SPECTRUM
Elementos de Programación Curso 2006-2007
Evolución Histórica
ATARI ST COMPAQ - 1
ATARI PONG
TANDY TRS-80
SONY MSX
SONY PS-2OSBORNE 1
XBOXCOMMODORE 64
GALAXY
Elementos de Programación Curso 2006-2007
Evolución Histórica
Fibra Óptica Cableado de red local
INTERNET
Router
WIRELESS
Networking
Teleinformática
Elementos de Programación Curso 2006-2007
Entornos gráficos
Evolución Histórica
Be OS GEM (DR) LINUX / MOTIF
OS/2 WARP XEROX STAR
Elementos de Programación Curso 2006-2007
Evolución Histórica
WINDOWS 1 WINDOWS 2
WINDOWS 98 WINDOWS XPWINDOWS NT
WINDOWS 3.11
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
Alan KayJohn McCarthy
Bjarne Stroustrup Red Neuronal
LISP SMALLTALK PROLOG
C++ Negroponte
Elementos de Programación Curso 2006-2007
Evolución Histórica
Oblea de circuitos con tecnología de Cobre (IBM)
DEEP BLUE (IBM) ROBOTS (SONY)EARTH SIMULATOR (NEC)
HAL 9000 Superconductor
Nanotecnología
VVíídeodeo2001 una odisea 2001 una odisea
en el espacioen el espacio
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
Historia de la Historia de la informinformááticatica
IBM 701IBM 701
IBM RAMACIBM RAMAC
IBM 360IBM 360
IBM NORCIBM NORC
IBM 1401IBM 1401
MacintoshMacintosh
FabricaciFabricacióón n MicroprocesadoresMicroprocesadores
PentiumPentium
Funcionamiento Funcionamiento vváálvula de vaclvula de vacííoo
Mecanismo Mecanismo caja de mcaja de múúsicasica
PowerPCPowerPC
• Videos y animaciones
iMaciMac
Elementos de Programación Curso 2006-2007
Códigos
•• DATODATO: 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 digitalSistema digital: Sistema de N estados estables–– DDíígitogito: 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
•• CCóódigodigo: Ley de correspondencia entre valores de información y combinaciones de dígitos de un sistema digital utilizadas para representarlos.–– CodificaciCodificacióónn: Información → Código
azul → 0 azul → 100verde → 1 ó verde → 101rojo → 2 rojo → 111
–– DecodificaciDecodificacióónn: Código → Informaciónazul ← 0 azul ← 100verde ← 1 ó verde ← 101rojo ← 2 rojo ← 111
•• CCóódigo binariodigo binario. Cuando el sistema digital utilizado tiene sólo 2 estados (0,1).
Elementos de Programación Curso 2006-2007
Códigos
•• BITBIT (BIBInary digiTT): Unidad elementalde información. Variable lógica que sólo admite dos valores.
• Agrupaciones de bits:– Para N valores hacen falta x bits ⇒ 2 2 xx -- 11 << NN ≤≤ 2 2 xx
–– BYTEBYTE u OCTETOOCTETO: Agrupación de bits necesaria para representar y almacenar un símbolo de escritura (8).
– Medidas clásicas de la capacidad de almacenamiento: KILOBYTEKILOBYTE (KB) 210 bytes, MEGABYTEMEGABYTE (MB) 210 KB, GIGABYTEGIGABYTE (GB) 210 MB, TERABYTETERABYTE (TB) 210 GB.
Elementos de Programación Curso 2006-2007
Códigos• Nuevos prefijos para múltiplos binarios
exa: (10 3) 6exabinary: (2 10) 6Eiexbi2 60
peta: (10 3) 5petabinary: (2 10) 5Pipebi2 50
tera: (10 3) 4terabinary: (2 10) 4Titebi2 40
giga: (10 3) 3gigabinary: (2 10) 3Gigibi2 30
mega: (10 3) 2megabinary: (2 10) 2 Mimebi2 20
kilo: (10 3) 1kilobinary: (2 10) 1Kikibi2 10
DerivaciónOrigenSímboloNombreFactor
1 GB = 10 9 Bytes = 1.000.000.000 Bytes1 gigabyte1 GiB = 2 30 Bytes = 1.073.741.824 Bytes1 gibibyte1 MB = 10 6 Bytes = 1.000.000 Bytes1 megabyte1 MiB = 2 20 Bytes = 1.048.576 Bytes1 mebibyte1 kbit = 10 3 bits = 1.000 bits1 kilobit1 Kibit = 2 10 bits = 1.024 bits1 kibibit
Ejemplos y comparaciones con prefijos del SI métrico
Elementos de Programación Curso 2006-2007
Sistemas de numeración
•• Sistema de numeraciSistema de numeracióón n posicionalposicional en base "en base "bb””::Utiliza un alfabeto compuesto por b símbolos o cifras. El valor de cada cifra depende de:– La cifracifra en sí.– La posiciposicióónn 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 ......nn33nn22nn11nn00.n.n--11nn--22... ... ((bb
NN =...+=...+nn33··bb33 ++nn22··bb22 ++nn11··bb11 ++nn00··bb00 + + nn--11··bb--11 + + nn--22··bb--22 +...+... 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 unidado 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ón5. 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 numeraciSistema de numeracióón n binariobinario.Aquí la base es 2 (b=2) sólo se necesitan dos símbolos : {0,1}
Binario Decimal
Tabla 1
000001010011100101110111
01234567
Elementos de Programación Curso 2006-2007
Sistemas de numeración
–– ConversiConversióón de decimal a binarion de decimal a binario. Se aplica el método de las “divisiones y multiplicacionesdivisiones y multiplicaciones”sucesivas por la base con divisor y multiplicador b=2.Ejemplo: 26.1875 (10 = 11010.0011 (2
Para la parte entera: 26 | 2 00 13 | 2
11 6 | 200 3 | 2
11 1 | 211 00
Para la parte fraccionaria:0.1875 0.3750 0.7500 0.5000
x 2 x 2 x 2 x 200.3750 00.7500 11.5000 11.0000
Elementos de Programación Curso 2006-2007
Sistemas de numeración
–– ConversiConversióón de binario a decimaln de binario a 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 (1010100.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 numeraciSistema de numeracióón octaln octal. La base es 8 y el conjunto de símbolos es: {0,1,2,3,4,5,6,7}–– ConversiConversióón de octal a decimaln de octal a decimal. Se desarrolla el
polinomio con b=8 y se opera en decimal.–– ConversiConversióón de decimal a octaln de decimal a octal. Aplicar el método de
“divisiones y productos” con divisor y multiplicador 8.–– ConversiConversióón n ““rráápidapida”” de binario a octalde binario a octal. Agrupar cifras
binarias de 3 en 3 y transformar con la tabla 1.• Ejemplo: 10001101100.11010 (2 = 2154.64 (8
–– ConversiConversióón n ““rráápidapida”” de octal a binariode octal a binario. Aplicar tabla 1.• Ejemplo: 537.24 (8 = 101011111.010100 (2
Elementos de Programación Curso 2006-2007
Sistemas de numeración
•• Sistema de Sistema de numeracinumeracióón n hexadecimalhexadecimal.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}
Binario Decimal
Tabla 2.
Hexadecimal00000001001000110100010101100111
01234567
01234567
10001001101010111100110111101111
89
101112131415
89ABCDEF
Octal01234567
1011121314151617
Elementos de Programación Curso 2006-2007
Sistemas de numeración
–– ConversiConversióón de hexadecimal a decimaln de hexadecimal a decimal. Se desarrolla el polinomio con b=16 y se opera en decimal.
–– ConversiConversióón de decimal a hexadecimaln de decimal a hexadecimal. Aplicar el método de “divisiones y productos” con divisor y multiplicador 16.
–– ConversiConversióón n ““rráápidapida”” de binario a hexadecimalde binario a hexadecimal. Agrupar cifras binarias de 4 en 4 y aplicar la tabla 2.
• Ejemplo: 100 1011 1011 111 . 1011 1010 (2 = 25DF.BA (16
–– ConversiConversióón n ““rráápidapida”” de hexadecimal a binariode hexadecimal a 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
Binario Decimal"d y m"
ex. I.1
OctalBinario Decimal
"d y m""d y m"
ex. I.1
ex. I.1
grupos3 bits
ex. I.1
HexadecimalBinario Decimal
"d y m""d y m"
ex. I.1
grupos4 bits
Elementos de Programación Curso 2006-2007
Representación de números en el ordenador
•• NNúúmeros de precisimeros de precisióón finitan finita: La memoria es limitada. Sólo se dispone de n bits para las representaciones.
•• Coma fija sin signo o binario puroComa fija sin signo o binario 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 signoComa fija signo--magnitudmagnitud. 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 dosComplemento a 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: 22nn -- ||xx||
– Una sola representación para el cero.– Ejemplo: para n = 8, para realizar la resta 7-5 = 2:
+7 = 00000111-5 = (complemento a dos) 11111011 ++2 100000010 = 2
acarreo final se elimina
+-
Elementos de Programación Curso 2006-2007
Representación de números en el ordenador
•• Complemento a unoComplemento a 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: (2(2nn --1) 1) -- ||xx||
– 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 = 00000111-3 en complemento a uno es 11111100
luego 0000011111111100 +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 grCaracteres grááficosficos.. Representan símbolos.–– Caracteres de controlCaracteres de 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 → ba = {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•• CCóódigo ASCII.digo ASCII.
CARACTERES DE CONTROLCARACTERES DE CONTROL0 NULNUL (nulo) 16 DLEDLE (escape de enlace de datos)1 SOHSOH (comienzo de cabecera) 17 DC1DC1 (control de dispositivo 1)2 STXSTX (comienzo de texto) 18 DC2 DC2 (control de dispositivo 2)3 ETX ETX (fin de texto) 19 DC3DC3 (control de dispositivo 3)4 EOTEOT (fin de transmisión) 20 DC4DC4 (control de dispositivo 4)5 ENQENQ (pregunta) 21 NAKNAK (acuse de recibo negativo)6 ACKACK (acuse de recibo) 22 SYNSYN (sincronización)7 BELBEL (campana sonora) 23 ETBETB (fin de bloque de transmisión)8 BSBS (retroceso de un espacio) 24 CANCAN (anulación)9 HTHT (tabulación horizontal) 25 EMEM (fin de medio físico)10 LFLF (cambio de renglón) 26 SUBSUB (carácter de sustitución)11 VTVT (tabulación vertical) 27 ESCESC (escape)12 FFFF (página siguiente) 28 FSFS (separador de ficheros)13 CRCR (retroceso del carro) 29 GSGS (separador de grupos)14 SOSO (fuera de código) 30 RSRS (separador de registros)15 SISI (en código) 31 USUS (separador de unidades)
Elementos de Programación Curso 2006-2007
Códigos de Entrada/SalidaCARACTERES GRCARACTERES GRÁÁFICOSFICOS
32 32 SP SP 48 48 00 64 64 @@ 80 80 PP 96 96 `̀ 112 112 pp33 33 !! 49 49 11 65 65 AA 81 81 QQ 97 97 aa 113 113 qq34 34 "" 50 50 22 66 66 BB 82 82 RR 98 98 bb 114 114 rr35 35 ## 51 51 33 67 67 CC 83 83 SS 99 99 cc 115 115 ss36 36 $$ 52 52 44 68 68 DD 84 84 TT 100 100 dd 116 116 tt37 37 %% 53 53 55 69 69 EE 85 85 UU 101 101 ee 117 117 uu38 38 && 54 54 66 70 70 FF 86 86 VV 102 102 ff 118 118 vv39 39 '' 55 55 77 71 71 GG 87 87 WW 103 103 gg 119 119 ww40 40 (( 56 56 88 72 72 HH 88 88 XX 104 104 hh 120 120 xx41 41 )) 57 57 99 73 73 II 89 89 YY 105 105 ii 121 121 yy42 42 ** 58 58 :: 74 74 JJ 90 90 ZZ 106 106 jj 122 122 zz43 43 ++ 59 59 ;; 75 75 KK 91 91 [[ 107 107 kk 123 123 {{44 44 ,, 60 60 << 76 76 LL 92 92 \\ 108 108 ll 124 124 ||45 45 -- 61 61 == 77 77 MM 93 93 ]] 109 109 mm 125 125 }}46 46 .. 62 62 >> 78 78 NN 94 94 ^̂ 110 110 nn 126 126 ~~47 47 // 63 63 ?? 79 79 OO 95 95 __ 111 111 oo 127 127 DELDEL
Elementos de Programación Curso 2006-2007
Hardware y Software
•• HARDWAREHARDWARE. 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
•• SOFTWARESOFTWARE. Elementos lógicos del ordenador.–– InstrucciInstruccióónn. Conjunto de símbolos que
representan una orden de operación para el ordenador.
–– ProgramaPrograma. Conjunto de instrucciones encadenadas para resolver un problema.
–– SoftwareSoftware. Conjunto de programas que puede realizar un ordenador.
–– Lenguaje de programaciLenguaje de programacióónn. Conjunto de reglas para describir programas.
Elementos de Programación Curso 2006-2007
Estructura del Hardware
MemoriaMasiva
Memoria Principaldatos e instrucciones
Procesador Central (CPU)
Unidadde Control
UnidadAritmético-
Lógica (ALU)
ENTRADA SALIDA
Datos e instruccionesDatos
Datose instrucciones
DatosInstrucciones
Señales de control
Elementos de Programación Curso 2006-2007
Estructura del Hardware
TecladoRatón
Unidad central
Impresora
Monitor
Elementos bElementos báásicos de un ordenadorsicos de un ordenador
Elementos de Programación Curso 2006-2007
Estructura del Hardware
•• Unidad Central de Proceso (CPU)Unidad Central de Proceso (CPU)–– Unidad AritmUnidad Aritmééticotico--LLóógica (ALU). gica (ALU). Realiza operaciones.–– Unidad de Control (UC). Unidad de Control (UC). Controla la ejecución de
instrucciones.• Contador de programa, Registro de instrucción, Reloj.
•• MemoriaMemoria. . Almacena información e instrucciones.–– Principal. Principal. Gran velocidad, poca capacidad.
• Dos tipos básicos: RAM y ROM.• Organizada en celdas, accesibles por posición (dirección).
–– Secundaria o Masiva. Secundaria o Masiva. Poca velocidad, gran capacidad.
Elementos de Programación Curso 2006-2007
Estructura del Hardware
•• PerifPerifééricosricos. . Dispositivos de comunicación con el exterior.–– Entrada. Entrada. Recogida de información e instrucciones.–– Salida. Salida. Obtención de resultados.
•• BusesBuses..– Señales de datosdatos. Transfieren información e
instrucciones.– Señales de direccidireccióónn. Selección de celdas de
memoria/periféricos.– Señales de control y estadocontrol y estado.
Elementos de Programación Curso 2006-2007
Estructura del Hardware
Circuito de Memoria RAM
CPU
Disco Duro (Memoria Secundaria)
Circuito de Memoria ROM
Circuitos Impresos PCB (BUSES)Impresora Inyección Teclado
Monitor
Ratón
CPUMEMORIAENTRADASALIDABUSES
Elementos de Programación Curso 2006-2007
Estructura del Hardware
Impresora Matricial
Impresora Láser
Escáner
Vídeo Proyector
Teclado y ratón inalhámbrico Teclado musicalSistema de sonido
Tarjeta de TV y radio
Tarjeta gráficaTableta digitalizadora
Plotter
PC-Cam
Multifunción
Elementos de Programación Curso 2006-2007
Estructura del Hardware
Grabador DVD
Disco magneto-óptico
UPSNetworking
Unidad ZIP externa
Pen drive
Unidad de cinta DDSDisquetera
WirelessRouter ADSLMódem
Elementos de Programación Curso 2006-2007
Estructura del Software
• Software de aplicaciaplicacióónn.– Programas de usuario.– Programas verticales.– Paquetes estándar.
• Software de sistemasistema.– 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).
Usuario FinalSoftware de aplicaciones
Software de sistemaHardware
Elementos de Programación Curso 2006-2007
Funcionamiento de un ordenador
• Principios de la Arquitectura de Arquitectura de VonVon NeumannNeumann.– 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 "cargadorcargador" 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
Teclado Impresora
ALUUC
instrucciones 50 66
6650 , 16
(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) Memoria
Elementos de Programación Curso 2006-2007
Funcionamiento de un ordenador
• Animaciones y simuladores
Simulador 2Simulador 2Simulador de procesador Simulador de procesador
EJEMEJEM--1 ETSI1 ETSI--UAMUAM
AnimaciAnimacióón 1n 1EjecuciEjecucióón de instrucciones.n de instrucciones.
Universidad Universidad QueenslandQueensland
AnimaciAnimacióón 2n 2EjecuciEjecucióón de instrucciones.n de instrucciones.
AnimaciAnimacióón 3n 3Programa para contarPrograma para contar
AnimaciAnimacióón 4n 4Programa para SumarPrograma para Sumar
Simulador 3Simulador 3EDSACEDSAC
Simulador 4Simulador 4IMSAI 8080IMSAI 8080
Simulador 5Simulador 5MARK IMARK I
Simulador 1Simulador 1Simulador ABACOSimulador ABACO
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. EdParaninfo 1990.