Tema 1. Introducción Contenido del tema: Conceptos básicos Sistemas de numeración posicionales Historia de la computación Componentes de un computador Francisco J. Veredas Dpto. Lenguajes y Ciencias de la Computación Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 1 Conceptos básicos INFORMATICA = INFOR INFORmación + autoMÁTICA MÁTICA – Información: Información conjunto de símbolos usados para representar magnitudes, hechos, objetos o ideas. – Ordenador Ordenador: máquina para procesar información. Computación Ordenador Información de entrada e instrucciones Introducción a los Computadores ITTSEA, Tema 1. Introducción Información de salida o resultados 23-sep-04 2 1 Codificación de datos • 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 Dígito: variable capaz de asumir un estado. • Los dígitos se agrupan para representar más estados. Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 3 Códigos y código binario • Código: Código correspondencia entre valores de información y combinaciones de dígitos de un sistema digital. – Codificación Codificación: Información → Código azul ----> verde ----> rojo ----> 0 1 2 ó azul ----> verde ----> rojo ----> 100 101 111 – Descodificación Descodificación: Código → Información azul <---verde <---rojo <---- 0 1 2 ó azul <---verde <---rojo <---- 100 101 111 • Código binario: el sistema digital utilizado tiene sólo 2 estados (0 y 1). Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 4 2 Bits, bytes y otras agrupaciones de bits • BIT (BI BInary digiT T ): unidad elemental de información. Variable lógica que sólo admite dos valores. • Agrupaciones de bits: – Para n valores hacen falta x bits, tal que 2x - 1 < n <= 2x – BYTE u OCTETO OCTETO: agrupación de bits necesaria para representar y almacenar un símbolo de escritura (8). – Medidas de la capacidad de almacenamiento: KILOBYTE (KB): 210 bytes, MEGABYTE (MB): 210 KB, GIGABYTE (GB): 210 MB, TERABYTE (TB): 210 GB. Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 5 Sistemas de numeración • Sistema de numeración: – Sistema de símbolos (cifras) para representar cantidades y realizar operaciones aritméticas con ellas. • Número: Ejemplos: Arábico: posicional Romano: no posicional – Concatenación de símbolos para representar una cantidad. • Sistemas de numeración posicional: – El valor representado depende del conjunto de cifras utilizado y de sus posiciones en el número Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 6 3 Sistemas de numeración posicionales • Sistema de numeración posicional en base b: – Utiliza un alfabeto compuesto por b símbolos o cifras. El valor de cada cifra del número depende de: • La cifra en sí. • La posición dentro del 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 ...n2n1n0,n-1n-2...(b N =... +n2·b2 +n1·b1 +n0·b0 + n-1·b-1 + n-2·b-2 +... Expresión I.1 Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 7 Sistema de numeración binario • Base 2 (b = 2) • Alfabeto: {0, 1} Binario Decimal 000 001 010 011 100 101 110 111 0 1 2 3 4 5 6 7 Tabla 1 Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 8 4 Conversión de decimal a binario • Método de las divisiones y multiplicaciones sucesivas por la base con divisor y multiplicador b = 2. Ejemplo: 26,1875(10 = Para la parte entera: 11010.0011(2 26 | 2 0 13 | 2 1 6 | 2 0 3 | 2 1 1 Para la parte fraccionaria: 0.1875 0.3750 x 2 x 2 0.3750 0.7500 0.7500 x 2 1.5000 Introducción a los Computadores ITTSEA, Tema 1. Introducción 0.5000 x 2 1.0000 23-sep-04 9 Conversión 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(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 (2i) de las posiciones (i) en las que hay un 1. Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 10 5 Sistema de numeración octal • Base 8. Alfabeto: {0,1,2,3,4,5,6,7} – Conversión de octal a decimal decimal. Se desarrolla el polinomio con b=8 y se opera en decimal. – Conversión de decimal a octal octal. Aplicar el método de “divisiones y productos” con divisor y multiplicador 8. – Conversión “rápida” de binario a octal octal. Agrupar cifras binarias de 3 en 3 a partir de la coma decimal y transformar con la tabla 1. Ejemplo: 10001101100,11010(2 = 2154,64(8 – Conversión “rápida” de octal a binario binario. Aplicar tabla 1. Ejemplo: 537,24(8 = 101011111.010100(2 Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 11 Sistema de numeración hexadecimal Binario • Base 16 (b=16) • Alfabeto: {0,1,2,3,4,5,6,7,8,9, A,B,C,D,E,F} Decimal Octal 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. Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 12 6 Conversiones de hexadecimal • Conversión de hexadecimal a decimal decimal. Se desarrolla el polinomio con b=16 y se opera en decimal. • Conversión de decimal a hexadecimal hexadecimal. Aplicar el método de “divisiones y productos” con divisor y multiplicador 16. • Conversión “rápida” de binario a hexadecimal hexadecimal. Agrupar cifras binarias de 4 en 4 y transformar con la tabla 2. – Ejemplo: 010010111011111,10111010(2 = 25DF,BA (16 • Conversión “rápida” de hexadecimal a binario binario. Convertir cada cifra hexadecimal mediante la tabla 2. – Ejemplo: 1ABC,C4(16 = 0001101010111100,11000100(2 Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 13 23-sep-04 14 Esquema 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 Introducción a los Computadores ITTSEA, Tema 1. Introducción 7 Códigos de entrada/salida • Asocian a cada símbolo de la escritura una determinada combinación de bits. – Caracteres gráficos. Representan símbolos. – Caracteres de control. Son órdenes para controlar los dispositivos de E/S. (p.ej. 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 : correspondencia de a → b a = {0,1,2,...,8,9,A,B,...,Y,Z,a,b,...,y,z,*," ,/,...} b = {0,1}n • Existen muchos códigos normalizados. Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 15 Código ASCII (ISO 646) CARACTERES DE CONTROL 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 (nulo) (comienzo de cabecera) (comienzo de texto) (fin de texto) (fin de transmisión) (pregunta) (acuse de recibo) (campana sonora) (retroceso de un espacio) (tabulación horizontal) (cambio de renglón) (tabulación vertical) (página siguiente) (retroceso del carro) (fuera de código) (en código) Introducción a los Computadores ITTSEA, Tema 1. Introducción 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 DEL DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US (escape de enlace de datos) (control de dispositivo 1) (control de dispositivo 2) (control de dispositivo 3) (control de dispositivo 4) (acuse de recibo negativo) (sincronización) (fin de bloque transmisión) (anulación) (fin de medio físico) (carácter de sustitución) (escape) (separador de ficheros) (separador de grupos) (separador de registros) (separador de unidades) 23-sep-04 16 8 Código ASCII (ISO 646) CARACTERES GRAFICOS 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 SP ! " # $ % & ' ( ) * + , . / 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 @ A B C D E F G H I J K L M N O 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 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 110 111 ` a b c d e f g h i j k l m n o Introducción a los Computadores ITTSEA, Tema 1. Introducción 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 p q r s t u v w x y z { | } ~ DEL 23-sep-04 17 23-sep-04 18 Otros códigos normalizados • ASCII extendido de 8 bits (256 caracteres) • Latino 1 (ISO 8859-1) – 8 bits: 256 caracteres. – Europa occidental. – Los 128 primeros caracteres coinciden con el ASCII. • Latino 9 (ISO 8859-1) – Es Latino 1 ligeramente modificado: incluye el símbolo €. • Unicode (ISO 10646): – – – – 16 bits: 65.536 caracteres. Incluye alfabetos orientales muy extensos. Los 256 primeros caracteres coinciden con Latino 1. Se utiliza, sobre todo, para Internet. Introducción a los Computadores ITTSEA, Tema 1. Introducción 9 Componentes de un ordenador • Componente física o hardware – Elementos “tangibles” del ordenador: • • • • Unidad central de proceso (CPU). Buses. Memoria. Subsistema de entrada/salida: teclado, ratón, monitor, etc. • Componente lógica o software – Programas que ejecuta el ordenador. • Software de sistema: sistema operativo, compiladores, programas de comunicaciones, bibliotecas estándares. • Software de aplicaciones: bases de datos, navegadores, hojas de cálculo, procesadores de texto, juegos, etc. Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 19 Componente física • Arquitectura von Neumann (1) Programa almacenado (2) Lógica binaria (George Boole) (3) División en UCP, memoria y E/S (Charles Babbage) Buses Unidad de procesamiento Memoria (datos+instrucciones ) Subsistema de E/S Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 20 10 Unidad de procesamiento Almacén temporal (muy rápido) Unidad de control Registros Bus sistema control reloj Señales del control al resto del sistema Procesamiento aritméticológico U.A.L. estado AC U.C.P. Parámetros: • Velocidad (MIPS o MFLOPS) • Longitud de palabra • Número de registros • Nivel de paralelismo Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 21 Unidad de control • La Unidad de Control (UC) Unidad de control reloj . . . – – – – Emisión de señales de sincronización. Decodificación de la instrucción. Ejecución secuencial. Repertorio de instrucciones simples: (1) de tratamiento aritmético-lógico. (2) de transferencia de datos. UCP MP (3) saltos de control del flujo. (4) otras (parada, paso-a-paso...) ES MP CLK ES UCP UCP UCP MP ES ciclo reloj Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 22 11 El ciclo máquina ciclo máq uina Memoria instrucción (fetching) Unidad de control reloj opcional Almacenamiento de resultados Fetching . . . Actualización del C.P. Ejecución Búsqueda de operandos Decodificación opcional Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 23 Unidad aritmético-lógica Ejecuta las instrucciones de tratamiento aritméticológico. Memoria Registros U.C. CP Instrucción actual a decodificar RI Otros registros: •Propósito general •Direcciones temp. •Puntero de pila (PP) U.A.L. AC Acumulador: Último resultado Introducción a los Computadores ITTSEA, Tema 1. Introducción Contador de programa: PE Palabra de estado: CY (carry) Acarreo O (overflow) Desborde N (negative) Negativo Z (zero) Resultado cero ... Se actualizan tras cada operación aritméticológica 23-sep-04 24 12 Memoria principal, secundaria y caché Cache MP UCP Si el dato no está en la cache se accede a MP y se copia un nuevo trozo. MP Cache MS Si el dato no está en la cache se accede a MS y se copia un nuevo trozo. MS La memoria almacena datos e instrucciones. La MP es directamente accesible por la UCP. La MS necesita un controlador de E/S. Las memorias caché evitan accesos a MP o MS más lentos. Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 25 La memoria principal (RAM) • La UCP ve lógicamente la MP como un conjunto de posiciones o celdas donde leer y escribir que se llama mapa de memoria. direcciones en hex. BBA0 BBA1 BBA2 BBA3 S.O. ... Proceso 1 ... • Cada posición del mapa corresponde a una palabra y se numera consecutivamente mediante una dirección. R/W CS otras datos direcciones control Proceso 2 ... mapa de memoria Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 26 13 Longitud de palabra y capacidad • La longitud de palabra, m, de la MP suele coincidir con la del procesador y con el ancho del bus de datos, y es la anchura en bits de una palabra. • La capacidad de la memoria viene determinada por el número de hilos, n, del bus de direcciones: 2n palabras: 32 bus del sistema 16 0000 0001 0002 0003 0004 0005 216 palabras longitud de palabra = 32 FFFE FFFF Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 27 Subsistema de entrada/salida UCP MP • Permite al procesador comunicarse con distintos dispositivos o periféricos del exterior. bus de e/s Contr. • Cada tipo de dispositivo debe conectarse al sistema a través de un controlador. Introducción a los Computadores ITTSEA, Tema 1. Introducción disco Contr. vídeo Contr. teclado 23-sep-04 28 14 Puertos de entrada/salida • La UCP ve lógicamente todo el subsistema de E/S como posiciones de memoria. datos direcciones control Puertos disp. 1 Puertos disp. 6 • Una posición del mapa de E/S se llama puerto. I/ O INT otras • Físicamente, los puertos son posiciones de memoria dentro de los controladores. Introducción a los Computadores ITTSEA, Tema 1. Introducción Puertos disp. 8 mapa E/S 23-sep-04 29 Clasificación de ordenadores • Criterio: magnitudes físicas – Analógicos: magnitudes continuas – Digitales: magnitudes discretas – Híbridos: magnitudes continuas y discretas • Criterio: propósito – General: ejecutan cualquier programa (PC) – Específico: ejecutan siempre el mismo programa (empotrados) • Criterio: potencia – Ordenadores personales – Gamas de estaciones de trabajo (HP®, Sun®, Silicon®, IBM®...) – Supercomputadores: Cray (Silicon®), Fujitsu®, Convex (HP®) Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 30 15 Componente lógica: clasificación del sw • De sistemas: fuerte interacción con el hardware, gestión de recursos. Ejemplos: traductores, sistemas operativos, bibliotecas estándares, comunicaciones, etc. • Empotrado: controla productos de consumo y sistemas industriales. Ejemplos: integrados en electrodomésticos, automóviles, etc. • De tiempo real: interacciona con sucesos del mundo real conforme ocurren. Ejemplos: control tráfico aéreo, cadenas industriales, etc. Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 31 Clasificación del software (continuación) • Ingeniería y ciencia: procesamiento intensivo y basado en muchas matemáticas. Ejemplos: simuladores, resolución de grandes sistemas de ecuaciones, CAD, etc. • De gestión: procesado de información comercial y administrativa. Ejemplos: bases de datos, contabilidad, sistemas de reserva, etc. • De Inteligencia artificial: Uso de técnicas de resolución de problemas cercanas al comportamiento humano. Ejemplos: reconocimiento de voz, planificaciones robots, juegos, etc. Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 32 16 Sistemas operativos • El SO es el software de sistemas que hace posible el uso eficiente del ordenador ocultando en la medida de lo posible las dificultades de utilización. • Para el usuario tiene la forma de lenguaje de comandos o interfaz de usuario. Para el programador tiene la forma de biblioteca de subprogramas o llamadas al sistema. • Los interfaces de órdenes, intérpretes de órdenes o shells, pueden ser de texto o gráficos (GUI). usuario programador interfaz usuario llamadas al sistema sistema operativo núcleo (kernel) hardware shell = cubierta (del SO) GUI: Graphical User Interface Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 33 Tipos de sistemas operativos – Por el número de procesos: Un proceso es un programa en ejecución, ya cargado en MP. • Monotarea: MS-DOS • Multitarea: Unix (abierto), VMS (Digital), MVS (IBM), Windows NT. – Por el número de usuarios utilizando simultáneamente el ordenador: • Monousuario: Windows 3.11 o inferior • Multiusuario: Unix, VMS, Windows NT – Por el número de máquinas controladas: • Monopuesto: Unix, Windows • Distribuidos o en red: Novell Netware Introducción a los Computadores ITTSEA, Tema 1. Introducción La carga es el proceso por el cual un SO convierte a un programa (en MS) en un proceso (en MP). 23-sep-04 34 17 Modos de operación de un SO • Modos de operación: – Modo usuario: acceso restringido y controlado según permisos. – Modo supervisor: acceso sin restricciones. Concede los permisos. • La función de un SO es gestionar, de forma eficiente y segura, los recursos hardware del sistema, tanto a nivel de usuario como a nivel de proceso. Los recursos a gestionar son: • • • • Tiempo de procesamiento. Memoria principal. Memoria secundaria. Dispositivos de E/S. En sistemas multitarea, los programas compiten por el uso de la UCP y la MP. Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 35 Partes de un sistema operativo – Gestión del tiempo de procesamiento. – Gestión de la memoria principal. – Gestión de la memoria secundaria (ficheros y directorios). – Gestión del subsistema de e/s (drivers). – Seguridad y protección del sistema. – Interfaz de llamadas al sistema. – Interfaz de usuario y utilidades del sistema. Gestión de procesos driver = manejador Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 36 18 Lenguaje de programación vs traductor Lenguaje Conjunto de símbolos y reglas para generar cadenas de símbolos Lenguaje de programación Conjunto de caracteres y reglas para construir programas Lenguaje máquina Conjunto de instrucciones y convenios simples para elaborar programas codificados con bits directamente ejecutables en ordenador Introducción a los Computadores ITTSEA, Tema 1. Introducción Especificaciones, documentos Implementación, software Traductor Herramienta software para traducir un programa a lenguaje máquina 23-sep-04 37 23-sep-04 38 Proceso de compilación Introducción a los Computadores ITTSEA, Tema 1. Introducción 19 Bibliografía • Joyanes, L. Fundamentos de Programación. Algoritmos y Estructuras de Datos. 3ª Edición, McGraw-Hill, 2003. • Prieto, A., Lloris, A., Torres, J.C. Introducción a la Informática. 3ª edición, McGraw-Hill, 2001. • Brookshear, J.G. Introducción a las Ciencias de la Computación. 4ª Edicion, Adisson Wesley, 1995. • Goldschlager, L., Lister, A. Computer Science: A Modern Introduction. Prentice Hall. International Series in Computer Science, 1988. Introducción a los Computadores ITTSEA, Tema 1. Introducción 23-sep-04 39 20