I. 1.- INTRODUCCION A LA INFORMATICA. - Origen: francés.Unión de dos vocablos INFORMATICA = INFORmación + autoMATICA - Definición: Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de computadoras electrónicas.Trata la adquisición, representación, tratamiento y transmisión de la información. -Información:yuxtaposición de simbolos con los cuales se pueden representar hechos, objetos o ideas.Por ejemplo, la matricula de un coche es información. - Informática como ciencia y como técnica. La informática debe de ocuparse de dos labores fundamentales: labor técnica:fin primordial es el diseño de ordenadores que admitan el mayor número posible de datos y procesarlos a la mayor velocidad. Labor científica:estudio de la información y su descomposoción en elementos procesables por el ordenador. I.1.1.- Informática. Ambito de aplicación. - Area fabril.Automatización de los procesos de producción "Robótica" "Cibernética" CAM (Computer Aided Manufacturing) CIM (Computer Integrated Manufacturing) - Medicina. "Informática médica".Equipos para la obtención de datos(scanners, ecógrafos, resonancia magnética,etc), e incluso ayuda al diagnóstico. Tambien se pueden informatizar todos los aspectos relacionados con la gestión de entidades sanitarias. Tema I. Introducción y conceptos básicos 1 - Agricultura y ganadería. "Agrónica"(electrónica e informática aplicada a la agricultura y a la ganadería). - Enseñanza. CAI (Computer Aided Instruction).Ayudas al instructor. - Diseño (industrial y artístico). CAD (Computer Aided Design) - Campos científicos y técnicos. Navegación Meteorología Astronomía "Simulación por ordenador" - Ingeniería. CAE (Computer Aided Engineering) - Telecomunicaciones. "Teleinformática" o "Telemática" - "Informática de gestión". - "Ofimática". - ..... Tema I. Introducción y conceptos básicos 2 I.1.2.- Evolución histórica. - Prehistoria. - Abaco (siglo XI A. C.).Varillas sobre las que se deslizan unas bolas, las cuales tienen unos valores asignados(calculus). -Notación numérica: permite el manejo más preciso de los datos. Este es el sistema de numeración Hindú. - Calculadores mecánicos. -Base: Aparición de los Logaritmos de Napier y de la regla de cálculo de Patridge. - Blaise Pascal: primera calculadora mecánica (sumar y restar) (1642).Consiste en una serie de ruedas dentadas y engranajes.(parecido a los contadores de agua). -Von Leibnitz (1.646). Máquina de multiplicar con sumas progresivas. Maquina con dos contadores, uno para las sumas y otro para detener la suma. - Procesadores mecánicos. -El trabajo se concentra más que en el cálculo, en el proceso de grandes cantidades de información. - Tarjetas perforadas de Jacquard (1802).Mediante agujeros en unas tablillas, se rrgistran los datos codificados. - Charles Babbage: "Máquina Analítica" (1837). Primer ordenador moderno. Maquina capaz de ejecutar distintos programas. Cada vez que se quería ejecutar un programa, habría que introducirlo a la máquina. - Augusta Ada Byron (1842). Se considera la precursora de la programación, pues realizó algunos programas para la máquina analítica. - Tabuladores mecánicos. - Herman Hollerith: Diseña la Máquina Tabuladora (1890). Basada en las tarjetas perforadas de Jaquard. Funda la "Hollerith Tabulating Tema I. Introducción y conceptos básicos 3 Machine Company" en 1897, primera empresa de ordenadores del mundo que dio lugar en 1911 a la "International Business Machines" (IBM). - Howard Aiken: Calculador automático electromecánico ASCC (1937).Tardaba 4 segundos en realizar una multiplicación de dos números de 6 cifras. - Válvulas electrónicas. Primera Generación de Ordenadores. - Primera mitad del siglo XX. Gran avance en electrónica.Esto dá pie a la construcción de máquinas más rápidas, pequeñas y silenciosas que las electromecanicas -Se desarollan dispositivos magnéticos para almacenar más cantidad de información.(cinta y tambor magnético por Poulsen). - La invención más importante es la válvula de vacío por Lee Forest (1906). -Se construye el COLOSSUS(1.500 válvulas de vacío). Para descifrar mensajes alemanes de la segunda guerra mundial cifrados mediante un código denominado ENIGMA. - Primera máquina calculadora totalmente electrónica: ENIAC por Eckert y Mauchly (1946). Programación cableada.18.000 válvulas de vacío, 30 toneladas.Suma dos números en 200 microsegundos. - Destaca Alan Turing con su "Máquina de estados" o "Máquina de Turing" (1936).Maquina abstracta. - Arquitectura de Von Neumann (1946).Plantea la construcción de una máquina con programa almacenado. Es decir, laa memoria se usaba además de para contener datos, para contener los programas que pueden ser ejecutados. La idea de Neumann consistía en una serie de principios: ??mantener conectadas permanentemente determinadas unidades de la computadora, colocándolas bajo una unidad central.. ??Las instrucciones del programa se almacenan y se tratan igual que los datos. El programa debe de ser una secuencia de decisiones lógicas. ??La máquina consta de 5 unidades básicas:Entrada, salida, memoria, unidad aritmético-lógica y unidad de control. - Ejemplos de máquinas: Mark Y(1.2 milisegundos por instrucción), EDSAC, EDVAC, ACE, ... Tema I. Introducción y conceptos básicos 4 - Los transistores. Segunda Generación. - Se investiga en lograr máquinas más pequeñas y rápidas. - Esta generación nace con la invención del Transistor (1958) que sustituye a las Válvulas de Vacío, más grandes y costosas. - Aparece la construcción de las Memorias de Ferritas(toritos de material magnetizable). - Se desarrollan almacenamientos secundarios más potentes y con grandes capacidades.Disco magnético rígido (Winchester) (1959-65). - Ejemplos de máquinas: TXO del MIT, IBM-7000, Atlas,... - Gran avance en el Software: primeros lenguajes de alto nivel: FORTRAN, ALGOL, COBOL,...PL1(I.B.M., orientado a la programación estructurada), pues antes los programas se introducían en código binario. -Estos ordenadores tienen una gran demanda de mercado, pero por poco tiempo, ya que muy pronto se ven desbancados por la aparición de la tercera generación. - Circuitos integrados. Tercera Generación. - Los circuitos integrados contienen sobre un mismo soporte de silicio, cientos o miles de transistores. Disminuye el tamaño y aumenta la rapidez de las máquinas(se mide el tiempo en nanosagundos).Fueron construídos por dos ingenieros de I.B.M.,Noyce y Moore) - Ejemplos de máquinas: IBM-360, 370, PDP-8, CDC-6000, ... -Además de la invención del circuíto integrado, se produce un gran avance en el campo de los elementos periféricos. Aparecen los terminales de video y la posibilidad de instalar terminales a distancia lo que se denominan terminales remotas. - De forma paralela al diseño del circuíto integrado, se empiezan a diseñar amplios sistemas software(Sistemas Operativos). - Sistema Operativo UNIX(Bell). Compartición del ordenador por varias personas.Sistema Operativo V.M.S.(Digital).O.S./360 de I.B.M. - Lenguajes PASCAL(Wirth), C(Laboratoios Bell) orientado al diseño de sistemas informáticos, LOGO(capacidad de aprender), etc, ... Tema I. Introducción y conceptos básicos 5 - Microprocesadores. Cuarta Generación. - Invención del Microprocesador (1972) (4004 INTEL). - Aparecen los circuítos de gran escala de integración (LSI). Superficies de silicio donde en 1 cm2 puede haber 500.000 transistores. - Se abarata el Hardware de los ordenadores y se popularizan estos. - Ordenadores personales. En 1.977 Wozniak y Jobs desarrollanen casa de uno de ellos y basado en el procesador 6502 de Rockwell, el popular Apple1, lo que da lugar posteriormente a la fundación de la compañia con el mismo nombre, y cuyo producto más representativo es el popularísimo MACINTOSH. -Aparecen nuevos fabricantes debido al auge del mercado.(Sinclair, Commodore, Atari,Amstrad). - Gran auge de las Telecomunicaciones. "Teleinformática".Aparecen las redes de ordenadores, los sistemas distribuídos. - Sistemas Operativos para esos ordenadores personales: CP/M, MSDOS, ... - Lenguajes de programación buscando nuevas formas de representar la información (Objetos Abstractos):El precursor de estos lenguajes fué el SIMULA desarrollado por Dahl.Aparece en 1.982 el MODULA-2, diseñado por Wirth, que pretendía corregir las deficiencias del Pascal.Aparece también el ADA, ... - Inteligencia Artificial. Quinta Generación. - Se puede decir que es en la que estamos situados actualmente. - Se abandona el esquema de Von Neumann, pues se vé que para la cantidad tan ingente de datos que hay que manejar y la velocidad necesaria para los procesos, no es la arquitectura más adecuada. - Las investigaciones se dirigen a ordenadores con procesamiento paralelo.(Havard).Ordenador Facom de Fujitsu. -Se investiga sobre el mejor procesador de datos conocido, el cerebro, y se intenta reproducir su funcionamiento, mediante técnicas conocidas como Redes Neuronales. - El desarrollo del Software se encamina al tratamiento de la información como conocimiento y no como datos. - Lenguajes no procedurales: LISP, PROLOG, SMALLTALK... - Se desarrollan sistemas capàces de aprender por si solos. Sistemas expertos, sistemas inteligentes. Tema I. Introducción y conceptos básicos 6 I.2.- LA COMPUTADORA. HERRAMIENTAS BASICAS DE UN SISTEMA. Computadora. Datos. Programa. Instrucción. Lenguaje de programación. Hardware. Software. datos de entrada e instrucciones datos de salida o resultados Computadora -Computadora u Ordenador:Máquina capaz de aceptar unos datos de entrada, efectuar con ellos operaciones aritméticas y lógicas y proporcionar la información a través de un medio de salida. Todo ello bajo el control de un programa de instrucciones previamente almacenado en la computadora. -Operaciones lógicas:comparar, seleccionar o copiar símbolos. -Operaciones aritméticas: las de la aritmética clásica. -Datos: son conjuntos de símbolos utilizados para expresar o representar un valor numérico, un hecho, un objeto, o una idea, en la forma adecuada para su tratamiento. Esto implica que es un concepto más amplio que en Matemáticas o Física. - Datos captados directamente frente a datos captados por medio de caracteres. - BIT: unidad más elemental de información.Es un valor binario que puede tomar dos posibles valores, ó 1 ó 0 Es la capacidad mínima de información que puede almacenar la computadora. Por lo tanto, la capacidad de esta se puede madir en bits. - BYTE: La información se representa por medio de caracteres usualmente, y se codifica a un alfabeto binario a la hora de tener que representarla en la computadora, es decir, se debe de hacer una conversión a bits. Un BYTE es el número de bits para almacenar un caracter.Este número depende de la computadora, sien lo más normal 8 bits, de ahí que también se le llame OCTETO. Tema I. Introducción y conceptos básicos 7 - KILOBYTES (KB)=210bytes, MEGABYTES (MB)=210 KB, GIGABYTES (GB)=210MB, TERABYTES (TB)=210 GB: para medir capacidad de almacenamiento. I.2.1.- Sistemas de numeración usuales en Informática. Códigos de E/S. -La información se le dá a la computadora de forma escrita mediante caracteres, usando para ello un alfabeto o conjunto de simbolos. Los caracteres que constituyen el alfabeto suelen agruparse en 4 categorias, aparte de los caracteres gráficos:alfabéticos(letras minusculas y mayusculas), numéricos(diez cifras decimales), especiales(imprimibles que no son de los grupos anteriores) y caracteres de control. -La información se representa en el interior de la computadora por medio de bits, por lo que habrá que realizar una transformación sobre la información legible por el humano a una información representable en la máquina. - Codificación es la tarea de representar los elementos de un conjunto mediante los de otro conjunto, de forma tal que a cada elemento del primer conjunto le corresponda un elemento distinto del segundo conjunto.Por ejemplo, el código que hace corresponder a cada coche matriculado una única matrícula. - Código binario. Código mediante el cual se representa la información en el interior de la computadora. Este código está formado sólo por dos posibles elementos, el 1 y el 0. Se debe de establecer una correspondencia entre el conjunto de todos los caracteres legibles y el conjunto binario. -Esta codificación se realiza automaticamente en la E/S, de ahí que se le llamen también Códigos de entrada salida.(o tb. códigos externos). Representación posicional de los números. - Un sistema de numeración en base "b" utiliza para representar los números un alfabeto compuesto por b símbolos o cifras. Así, todo número se expresa medinate un conjunto de cifras correspondientes a esa base. Cada cifra que compone un número contribuye con un valor que depende de: a) La cifra en sí b) La posición dentro del número. - Ejemplo: En el sistema decimal (b=10) Tema I. Introducción y conceptos básicos 8 {0,1,2,3,4,5,6,7,8,9} (cifras decimales) El número 3278.52 puede obtenerse como: 3278.52 = 3 103 + 2 102 + 7 101 + 8 100 + 5 10-1 + 2 10-2 Cada posición tiene un peso y un nombre específicos: posición 0 peso b 0 --unidades (8) posición 1 peso b 1 --decenas (7) posición 2 peso b 2 --centenas (2).... - Generalizando, dado el número ... n4 n3 n2 n1 n0. n-1 n-2 ..., representado en un sistema de numeración en base b, su valor es: N = ...+ n4 b4 + n3 b3 + n2 b2 + n1 b1 + n0 b0 + n-1 b-1 + n-2 b-2 +... (Expresión I.1).A esta expresión también se le llama expresión polinómica) Sistema de numeración en base 2 o binario. - Aquí b = 2 y sólo se necesitan dos símbolos para representar cualquier número: {0,1} -Los elementos de este alfabeto(o cjto. de símbolos) se llaman cifras binarias o bits. Según la expresión polinómica, la representación de los dígitos decimales desde el 0 al 7 sería la que muesta la siguiente tabla. Tema I. Introducción y conceptos básicos 9 Binario Decimal 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 Tabla I.1 - Conversión de binario a decimal. - Aplicar la expresión I.1 para b = 2. - Ejemplos: 110100)2 10100.001 )2 = 52)10 = 20.125 )10 - En realidad basta con sumar los pesos (2i) de las posiciones (i) en las que hay un 1. 1 0 0 1 . 0 0 1(2 =8 +1+1/8= 9.125(10 pesos 8 4 2 1 ½ ¼ 1/8 - Conversión de decimal a binario. - Aplicar el método de las "divisiones y multiplicaciones". - Ejemplo: 26.1875)10 = 11010.0011)2 Para la parte entera: 26 | 2 Tema I. Introducción y conceptos básicos 10 0 13 | 2 1 6|2 0 3 |2 1 1 Para la parte fraccionaria: 0.1875 x2 0.3750 0.3750 0.7500 0.5000 x2 x2 x2 0.7500 1.5000 1.0000 -Otro ejemplo: 74.423(10 . Solo la parte decimal. 0.423 x2 0.846 x2 0.846 1.692 0.692 0.384 x2 x2 1.384 0.768 0.768 x2 1.536........ 74.423(10=1001010.01101.....(2. -Un número decimal con cifras decimales puede dar lugar a un número binario con muchas más cifras decimales o incluso infinita. Problema: número de bits para representar los números limitado(error de truncamiento). Sistema de numeración en base 8 u octal. - En este sistema de numeración intermedio b = 8 y el conjunto de símbolos necesarios es: {0,1,2,3,4,5,6,7} - Conversión de octal a decimal. - Aplicar la expresión I.1(polinómica) para b = 8. - Conversión de decimal a octal. - Aplicar el método de las "divisiones y multiplicaciones" con divisor y multiplicador 8. - Conversión “rápida” de binario a octal. Tema I. Introducción y conceptos básicos 11 - Agrupar cifras binarias de 3 en 3 a partir del punto decimal hacia la izquierda y hacia la derecha y transformar mediante la Tabla Y.1 cada grupo construído. - Ejemplo: 10 001 101 100 .110 10 )2 = 2154.64)8 En el caso en el que nos falte en alguno de los extremos alguna cifra, siempre se añadirá un cero a la izquierda del grupo en el que falte la cifra (o cifras, pues pueden faltar dos). Ocurre en el caso del ejemplo. - Conversión “rápida” de octal a binario. - Convertir cada cifra octal mediante la tabla I.1, manteniendo el orden del número. - Ejemplo: 537.24 )8 = 101011111.010100)2 Sistema de numeración en base 16 o hexadecimal. - En este sistema de numeración intermedio b = 16 y el conjunto de símbolos necesarios es {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} - Conversión de hexadecimal a decimal. - Aplicar la expresión I.1 para b = 16. - Conversión de decimal a hexadecimal. - Aplicar el método de las "divisiones y multiplicaciones" con divisor y multiplicador 16. Tema I. Introducción y conceptos básicos 12 Binario Decimal 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 1000 1001 1010 1011 1100 1101 1110 1111 8 9 10 11 12 13 14 15 8 9 A B C D E F Tabla I.2. - Conversión “rápida” de binario a hexadecimal. - Agrupar cifras binarias de 4 en 4 y transformar mediante la Tabla I.2. - Ejemplo: 010010111011111.1011101)2 = 25DF.BA)H - Conversión “rápida” de hexadecimal a binario. - Convertir cada cifra hexadecimal mediante la tabla I.2. - Ejemplo: 1ABC.C4)H = 0001101010111100.11000100)2 Tema I. Introducción y conceptos básicos 13 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 - Al igual que manualmente es muy fácil convertir de octal a binario y de hexadecimal a binario y viceversa, también resulta sencillo efectuar esta operación electrónicamente o por programa, por lo que a veces la computadora utiliza este tipo de sistemas intermedios. Operaciones aritméticas y booleanas con variables binarias: -El sistema de numeración en base dos se compone de un alfabeto de dos cifras. Al igual que con cualquier sistema de numeración, se pueden realizar operaciones aritméticas con valores de este sistema. -Las operaciones aritméticas más importantes son:suma, resta, multiplicación y división. Sólo de interés la suma y la resta. Suma con variables binarias 0+0=0 0+1=1 1+0=1 1+1=1 y me llevo 1 Resta con vbles. binarias. 0-0=0 0-1=1 y debo 1 1-0=1 1-1=0 Tema I. Introducción y conceptos básicos 14 -También se pueden realizar operaciones de otro tipo, llamadas operaciones booleanas u operaciones lógicas.Son operaciones equivalentes a las operaciones del a Algebra de Conmutación. -Las más importantes:Suma Lógica(OR), Producto Lógico(AND), Complementación o inversión(NOT). Suma Lógica(OR) Producto Lógico(AND) 0+0=0 0.0=0 0+1=1 0.1=0 1+0=1 1.0=0 1+1=1 1.1=1 Complem.(NOT) 0=1 1=0 Números negativos en binario. -Disponemos de n bits para la representación de los números en la máquina.Cada máquina usará un “n” propio. Con “n” bits se pueden representar 2n combinaciones distintas. - Coma fija sin signo o binario puro. - Permite representar números enteros positivos. 0 <--> 2n - 1 - Rango: 000...n...0 <--> 111...n...1 (en binario puro) - Dificultades: - Desbordamiento al realizar una suma.Al sumar con n=2, 2+3=5, 10 +11 ---10 1. Se desprecia la primera cifra. - Al no poder representarse los negativos, antes de realizar A-B, se ha de comprobar que A >= B. - Coma fija signo-magnitud. Tema I. Introducción y conceptos básicos 15 - Se reserva un bit para indicar el signo.El bit de signo se representa en el dígito situado más a la izquierda de la representación del número. - Rango:si tenemos un bit para el signo, nos quedan n-1 para el número - (2n-1 - 1) <--> (2n-1 - 1) 000...n...0 <--> 011...n...1 para positivos 100...n...0 <--> 111...n...1 para negativos -primer bit para signo y el resto en binario puro. - Dificultades: - El cero tiene dos representaciones. Comprobaciones con el número 0. - La operación a realizar (suma o resta) depende de los operandos.Si el segundo operando es negativo, es una resta. (3+(-2) es una resta). -Perdemos un bit en la representación. - Complemento a la base(en este caso a dos). - El bit más a la izquierda indica el signo, pero no está separado de la magnitud. - Rango: - 2n-1 <--> (2n-1 - 1) 000...n...0 <--> 011...n...1 para positivos (en binario puro) 100...n...0 <--> 111...n...1 para negativos (en complemento a dos) - Objetivo: poder restar dos números sumando al minuendo el complemento a la base del sustraendo y en el caso de acarreo final Tema I. Introducción y conceptos básicos 16 eliminarlo. De esta forma, sólo se necesitan circuítos sumadores en la parte de la máquina que realiza las operaciones. -Para obtener el C-a la base de un número negativo, se resta dicho número sin el signo de la base elevada al número de digitos para representar los números. -Ejemplo: Sup. la base=10 , n=1 Rango=(- bn/2, b n/2 - 1)= (-5,4) (0,bn/2 - 1) para positivos (b n/2,bn-1)para negativos 0-->0 1-->1 2-->2 3-->3 4-->4 5-->-5 6-->-4 7-->-3 8-->-2 9-->-1 Por ejemplo, la operación 2+3=5 -5+1= c-10(-5)=10-5=5 5+1=6, que representa al -4. 3-4= c-10(-4)=10-4=6 3+6=9, que representa al -1. -1-3= c-10(-1)=9 c-10(-3)=7 9+7=16 ¡¡Error¡¡¡. -Ejemplo: Sup. b=2 y n=3 Rango=(- 23 / 2 , 23 / 2 - 1) 000-->0 ( -4 , 3 ) 3 001-->1 (0,2 / 2 - 1) para positivos. 010-->2 ( 4 , 7) para negativos. 100-->-4 101-->-3 110-->-2 111-->-1 011-->3 Asi, la operación: Tema I. Introducción y conceptos básicos 17 3-4 011 1000 100 100 ----------111 que es el -1 0100 -1-3 c-2(-1)= 1000-001=0111 c-2(-3)= 1000-011=0101 111+101=1100. expresión de -4. -4-3 c-2(-4)=1000-100=0100 c-2(-3)=1000-011=0101 100+101=1001. Es un positivo.¡¡ 2+3=010+011=101=-3, negativo¡¡¡. -3-1 c-2(-3)=1000-011=0101 c-2(-1)=1000-001=0111 111+101=1100, es el -4. -Otra método más directo para calcular el complemento a dos : c-2(-7) -32 16 8 4 2 1 1 1 1 0 0 1=-32+16++8+1=-7 -Una sola representación para el 0, luego ganamos una combinación para representar un número negativo más. -No es trivial encntrar el complemento a la base de un número negativo. - Complemento a la base menos 1 (uno). - Al igual que en complemento a dos, el bit más a la izquierda indica el signo, pero no está separado de la magnitud. - Rango: - (2n-1 - 1) <--> (2n-1 - 1) 000...n...0 <--> 011...n...1 para positivos (en binario puro) 100...n...0 <--> 111...n...1 para negativos (en complemento a uno) Tema I. Introducción y conceptos básicos 18 -Esta representación si es simétrica, pues tiene la misma cantidad de positivos que de negativos. - El cero tiene dos representaciones. -Calculo del complemento a 1:restamos de la representación de la base elevada al número de digitos menos 1( con el número de dígitos necesarios) el número a complementar. Por ejemplo, b=10 , con 1 dígito ,el c-9 de 8 es 9-8=1 b=10, con 3 dígitos, el c-9 de 999=999-999=0 b=2 , con 5 dígitos, el c-1 de 5 es 11111-00101=11010. - Las sumas y restas también se reducen a sumas, pero hay que tener en cuenta el acarreo final, sumándolo al resultado. -Ejemplo:n=3, b=10 , c-9(296)=(103-1)-296=999-296=703. c-9(127)=872 (-127)-296=872+703=(1)575=575+1=576, que es el c-9 de 423. n=3, b=2 Rango (-2n-1-1,2n-1-1) (-3,+3) 000-->0 001-->1 010-->2 011-->3 100-->-3 101-->-2 110-->-1 111-->-0 -3+2= 100+010=110=-1 c-1(-3)= 111-011=100 -3-3=100-100=(1)000=000+1=001=1 positivo¡¡¡¡. Tema I. Introducción y conceptos básicos 19 - Ventaja:Observamos que b n-1 es un número de n dígitos, los cuales son todos iguales a b-1 en el sistema de numeración usado(103-1 es 999). Dado cualquier número x en base b, sus dígitos serán siempre inferiores o a lo sumo iguales al dígito que representa b-1. Así, el cálculo se simplifica bastante, pues en ninguna de las fases de la resta nos vamos a llevar nada hacia la fase posterior.(ceros por unos y unos por ceros). -Inconveniente:dos representaciones para el cero. -Ventaja:muy fácil calcularlo, pues sólo se han de invertir todos los dígitos del número(en caso de c-1, se cambian los ceros por unos y los unos por ceros). -Paso entre complementos: Sup. un número a= - x , para b=2 y un “n” dado, este número se representa en c-2 como 2n-x y en c-1 como (2n-1)-x. (2n-1)-x+1=2n-x, es decir, para pasar el número a c-2, invierto los bits y sumo 1 al resultado. I.2.2.- Estructura funcional de las computadoras. Señales de control Memoria Masiva Datos e instrucciones Datos e instrucciones Memoria Principal datos e instrucciones Instrucciones ENTRADA Unidad de Control Datos Datos SALIDA Unidad AritméticoLógica (ALU) Procesador Central (CPU) Tema I. Introducción y conceptos básicos 20 Unidades funcionales: Unidad de Entrada: dispositivo por donde se introducen datos e instrucciones.Se realiza una conversión a señales binarias de naturaleza electrica. Unidad de Salida: para obtener los resultados de los programas ejecutados. Se hace una conversión inversa a la anterior. Memoria:Dispositivos en los que se almacena tanto los datos como las instrucciones. Distintos tipos, que se diferencian por su velocidad (ROM,RAM,secundaria). A.L.U.:En ella se realizan operaciones de tipo aritmético y lógico. Unidad de Control(U.C.): es el dispositivo que gobierna el funcionamiento interno de la máquina. Trabaja con señales de estado que le envían las distintas unidades, y devuelve otras señales dependiendo de la instrucción a ejecutar y de las señales recibidas. Periféricos:son el conjunto de las unidades de E/S y de dispositivos de memoria secundaria. -Al conjunto de la U.C. y de A.L.U. se le llama tambien Unidad Central de Proceso(C.P.U.). - Buses:son el sistema físico par interconectar todas las unidades de la computadora. Se componen de una serie de cables con una determinada tecnología. - Reloj: la unidad de control tiene un reloj para sincronizar todas las operaciones de la computadora. Este reloj emite una serie de pulsos .En cada uno de los pulsos la computadora realiza una operación elemental. Al periodo de esta señal se le llama Tiempo de ciclo. La frecuencia del reloj se suele dar en millones de ciclos por segundo, o lo que es lo mismo, en Mhz. - Palabra de CPU:número de bits máximo de los datos con los que puede operar la A.L.U. - Palabra de Memoria: la memoria está dividida en una serie de casillas con un número determinado de bits. A esta cantidad de bits se le llama palabra de memoria. En definitiva, es la cantidad de bits que se pueden leer o escribir en la memoria simultaneamente Tema I. Introducción y conceptos básicos 21 - Potencia: Tiempo de ciclo, Longitud de palabra, capacidad de Memoria. I.2.3.- Clasificación de las computadoras. - En los procesos de tratamiento de la información, ésta se representa mediante magnitudes físicas (tensión, intensidad, ...). - Sistema analógico: aquel en el que las magnitudes físicas que se utilizan para representar la información pueden tomar un valor cualquiera dentro de un rango prefijado.Por ej. la velocidad de un vehículo se mide generando una tensión proporcional a la velocidad. - Sistema digital: las magnitudes físicas sólo toman valores discretos.Por ej., si se usan señales de tensión que sólo pueden tomar tres valores, +5 V, 0 V, -5 V.Sistema binario:restringido a sólo dos valores. - Un criterio para clasificar las computadoras es teniendo en cuenta cómo se representa la información. - Computadoras analógicas. -Datos representados por magnitudes físicas. -Son usados para resolver sistemas matemáticos complicados. -Los módulos se conectan manualmente. - Computadoras digitales. -Datos representados por magnitudes discretas que sólo puede tomar dos valores. -Uso mucho más amplio. - Computadoras híbridas. -Tienen elementos de los dos tipos anteriores. - Otro criterio está basado en su construcción: - Computadoras de Lógica Cableada. El algoritmo está implantado en el cableado de los circuitos. Tema I. Introducción y conceptos básicos 22 Calculadoras. Computadores Analógicos - Computadoras de Lógica Programada. Algoritmo almacenado en memoria - Otra forma de clasificar las computadoras hace referencia al uso o propósito para el que fueron diseñadas: - Computadora de uso general.(todo tipo de aplicaciones). - Computadora de uso específico.(solo para aplicaciones concretas). - Por último, atendiendo a la potencia: -Supercomputadoras.rápidas.50MIPS.Cray1,Cyber250.VariasCPU. - Macrocomputadoras ("Mainframes").Se pueden usar por varios usuarios.Longitud de palabra de 32 bits. Memoria de 16 a 64 MGB. - Superminicomputadoras.Ap. 16 puestos. Palabras de 32 bits. - Estaciones de trabajo ("Workstations").Memoria de 2 a 32 MGB” MIPS.Aplicaciones científicas y de diseño gráfico. - Computadoras Profesionales/Personales (PS/PC).16 a 32 bits. Memoria de 1 MGB 32 MGB. Frecuencias de reloj de 33 a 100 Mhz.Gran cantidad de software disponible para ellas. - Nanocomputadoras ("doméstica" o "familiar").En desuso total. Longitud de 8 bits y memoria de varios KB. Esta clasificación es muy difusa debido a los avances y desarrollo de la microelectrónica. Tema I. Introducción y conceptos básicos 23 I.2.4.- Programas e instrucciones. Lenguajes. Hardware y Software. -Instrucción:conjunto de símbolos que representan una orden de operación para la computadora. Suelen realizarse con o sobre los datos. -Programa: conjunto ordenado de instrucciones que se da a la computadora indicándole las operaciones o tareas que se desea que se realicen. -Lenguaje de programación:Lenguaje con determinadas reglas para la construcción de sus frases, que se va a usar para representar las instrucciones del programa que se desea ejecute la computadora. -Hardware y Software: .Hard:soporte físico de la computadora. Es la computadora en sí, con todos sus circuítos, cables armarios, monitores, teclados, etc. .Soft:soporte lógico o lógical de la computadora. Es el conjunto de programas ejecutables por la computadora. La computadora por sí sola no funciona; debe de procesar instrucciones que rigen su comportamiento. Estas instrucciones son el Software. - Lenguaje máquina. Es el único lenguaje que entienden los circuítos de la computadora. Las instrucciones de este lenguaje están formadas por ceros y unos(bits), agrupados en al menos dos campos, el codigo de operación y la dirección del operando. Inconvenientes: -depende de la computadora. -repertorio de instrucciones reducido. -laborioso de programar. -conduce a muchos errores. - Lenguajes de alto nivel.Evitar los problemas del código máquina.Son generales para todas las máquinas. Un programa en este lenguaje, debe de ser traducido a código máquina para que sea entendible por el computador. - Traductores.Son programas ejecutables en la computadora que reciben como datos de entrada programs escritos en determinado lenguaje de programación y dan como salida programas en lenguaje máquina directamente ejecutables por la máquina.Existen dos tipos de traductores: Compiladores. Traducen el programa inicial(programa fuente)globalmente y generan un programa (objeto) traducido a código máquina. Intérpretes.No consideran el programa como un todo, sino que va traduciendo y a la vez ejecutando las instrucciones una a una. No generan código objeto. Tema I. Introducción y conceptos básicos 24 - Sistema Operativo. Conjunto de programas necesarios para el control y para la utilización eficiente de la computadora. Copias, edición, borrados, diagnóstico, etc. Se utiliza con un lenguaje específico llamado lenguaje de control. Las instrucciones de este lenguaje se llaman órdenes o comandos.MS-DOS,Unix, OS/2, Windows95. I.2.5.- Funcionamiento de las computadoras. - Para ejecutar un programa escrito en lenguaje máquina, lo primero que hay que hacer es introducirlo en la memoria principal. - El "cargador" se encarga de introducir el programa en posiciones consecutivas de memoria a partir de una dada "i". - Una vez cargado, se le da paso a la UC (unidad de control), poniendo el registro CP (contador de programa) a "i", para que empiece a ejecutar el programa. - La UC repite sucesivamente las siguientes fases: a) Fase de captación de la instrucción. Mem(CP) --- (instrucción) ---> UC Incremento de CP b) Fase de ejecución de la instrucción, se interpreta el código de la operación y se mandan las señales de estado adecuadas, y vuelta a la fase a). - Si la ejecución de una instrucción implica saltar a una instrucción distinta a la siguiente, pondrá el CP al valor de la posición de dicha instrucción, con lo que se cogerá en la siguiente fase a). - Ejemplo: Supongamos que se dispone de una computadora con el siguiente repertorio de instrucciones máquina: Tema I. Introducción y conceptos básicos 25 - ENT M(m). Lee desde teclado un valor y lo almacena en la posición m de Memoria. - SAL M(m). Escribe por 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 efectuar un programa que sume dos números dados por teclado y muestre el resultado por 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. Trabajando en lenguaje de alto nivel, sería el programa traductor el que determinaría esas posiciones. Tema I. Introducción y conceptos básicos 26 (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 66 UC ALU I.2.6.- Visión general de un sistema informático. GENERADORES DE PROGRAMAS. PROGRAMAS DE APLICACION COMPILADORES E INTERPRETES GESTORES DE BASES DE DATOS ENSAMBLADORES Y EDITORES SISTEMAS OPERATIVOS RUTINAS DE ENTRADA / SALIDA HARDWARE Tema I. Introducción y conceptos básicos 27