PROGRAMACION, ALGORITMOS Y ESTRUCTURAS DE DATOS Profesor Titular: Ing. Graciela TOCCACELI. email: [email protected] Profesor Adjunto: Mag. Ing. Pablo A. GARCIA. [email protected] 1 Objetivo de la materia: Estudiar Informática a través de uno de los lenguajes de programación más utilizados el lenguaje “C”. 2 INFORmación y autoMATICA La Informática trata de la adquisición, representación, tratamiento y transmisión de la información. Estas operaciones se realizan automáticamente utilizando máquinas llamadas computadoras. Ordenador Datos Resultado 3 HISTORIA DE LA INFORMÁTICA • El ábaco 500 años AC. • Siglo XVII Blaise Pascal . Crea la primera máquina de sumar y restar mecánica la Pascalina. Esta calculadora estaba basada en una serie de engranajes y ruedas dentadas. La base de las operaciones consistía en contar los dientes de un engranaje. 4 • En 1671, Gottfried Wilhelm Leibniz construye la Máquina Universal, la primera máquina capaz de sumar, restar, multiplicar y dividir. El mecanismo también era de engranajes. Las multiplicaciones se realizaban como sumas sucesivas y las divisiones como restas sucesivas. Estas no eran máquinas automáticas ya que requerían la Intervención humana durante el proceso. • Inicio XIX Joseph Marie Jacquard, inventa un telar mecánico cuyos diseños se reproducían gracias a una serie de tarjetas perforadas. Las tarjetas perforadas transmitían a la tejedora las instrucciones necesarias para su funcionamiento. • 1834-35 Charles Babbage utilizando tarjetas perforadas y ruedas mecánicas diseña la máquina analítica. La diseña con Memoria, Unidad de cálculo y Unidad de control basada en tarjetas perforadas. Era capaz de realizar cualquier cálculo y de almacenar programas. La tecnología de la época no permitió construirla. 5 • En 1890 Herman Hollerith, crea una máquina para realizar el censo de EEUU. Esta máquina utiliza un sistema electrónico para la lectura de las tarjetas perforadas y un sistema mecánico para calcular. En 1924 la compañía fundada por Hollerith cambia de nombre para denominarse "International Business Machines" (IBM). • Luego el avance tecnológico marcó distintas generaciones de computadoras: Se destacan -> 6 En 1943, J. Mauchly y J. Presper Eckert crean el primer equipo sin piezas mecánicas: el ENIAC (Calculador e integrador numérico electrónico). -utilizada por el Laboratorio de Investigación Balística del Ejército de los EEUU. -18.000 válvulas o tubos de vacío. -ocupaba 167 m2. -programación manual, mediante el seteo de interruptores o conectando cables -5000 instrucciones por segundo. – Sistema decimal - gran consumo energético (160 kW). • 7 • En 1944 Von Newmann propone que el programa debía almacenarse electrónicamente dentro de la computadora junto con los datos y el uso del sistema binario. • En 1946 J. Mauchly y J. Presper Eckert y John Von Neumann crean EDVAC (Equipo electrónico de variable discreta), que podía almacenar programas en la memoria (1.024 palabras en la memoria central y 20.000 palabras en la memoria magnética). - 6.000 tubos de vacío y 12.000 diodos. - Consumía 56 kilowatts de potencia. - Cubría 45,5 m² de superficie. - Pesaba 7.850 kg. - Binaria. • En 1953 IBM lanza el IBM 701: conocido como la "calculadora de Defensa" mientras era desarrollado, fue anunciado al público el 29 de abril de 1952 y era la primera computadora científica comercial de IBM. Durante los cuatro años de producción se vendieron 20 unidades La memoria contenía 72 tubos de vacio con una capacidad de 1024 bits, dando una memoria total de 2048 palabras de 36 bits cada una. Cada uno de los 72 tubos eran de 76 mm de diámetro. La memoria se podía ampliar a un máximo de 4096 palabras El tiempo de acceso de la memoria de 12 microsegundos. La memoria de tubos necesitaba "refrescarse" periódicamente. 8 El avance de la electrónica… 1947 1907 1957 1971 291 millones de transistores - Actual 9 Hitos de las diferentes generaciones: • Generación 1 (1940-1960) (válvula de vacío): Se sustituye la programación de 1s y 0s por un lenguaje simbólico. • Generación 2 (1960-1965) (transistor): Se introducen los lenguajes de alto nivel, se ampliaron las memorias auxiliares y se crearon los discos magnéticos de gran capacidad. Se diseñaron las impresoras y lectores ópticos • Generación 3 (1965-1975) (circuitos integrados): Aparecen los sistemas operativos para el control de la computadora. Aparecen lenguajes como Cobol y Fortran • Generación 4 (1975-1990) (microprocesadores) : Aparece el microprocesador. Nuevos lenguajes de programación :Logo, Pascal, Basic, C, C++. En 1976 Steve Wozniak y Steve Jobs fabrican en el garaje de su casa la primera microcomputadora Apple I del mundo y más tarde fundan la compañía Apple. En 1981 IBM lanza al mercado su primer IBM-PC. 10 • Generación 5 (1990 – hoy): supercomputadores que incorporan varios microprocesadores en la misma máquina. 384000 procesadores 11 ¿Que es un computador? Dispositivo capaz de aceptar unos datos de entrada, efectuar con ellos operaciones lógicas y aritméticas, y proporcionar la información resultante a través de un medio de salida; todo ello sin intervención de un operador humano y bajo el control de un programa de instrucciones previamente almacenado en el propio computador. 12 En el interior del ordenador la información se almacena y transfiere utilizando el sistema binario 1s y 0s. En las E y S se efectúan las transformaciones alfanumérico a binario y viceversa. Ordenador 321.15 E rojo 0110111000011 0110101001110 0000110100100 001110010 1001111000010 1001010001110 0111111001010 1001001001001 0111010010100 0000000010001 011111110010 1000101010010 1010011111000 2300,34 S Rosario 13 Los valores 0s y 1s pueden interpretar en el interior del ordenador dependiendo del dispositivo: -Un estado magnético (N/S) -Un nivel de tensión (5V/0V) -Un valor de corriente ( 20mA/0 mA) -Presencia o ausencia de Luz Bit (Binary Digit) es la mínima unidad de información que representará un 1 o un 0. 14 Estructura de un Ordenador tipo Von Newmann Unidades de Entrada: Teclado, lector de tarjeta, lápiz óptico, escáner, etc. Unidades de Salida: Monitor, impresora, plotter, etc. Unidades de E/S: Discos duros, sólidos, flash USB, cintas magnéticas, etc. 15 Memoria principal (MP): -El programa que se ejecuta debe almacenarse en la MP. -Gran velocidad de acceso (decenas de ns). -Formada por Circuitos integrados IC. -Volátil. -Estructurada en direcciones de un dado número de bits (palabra). -Para leer o escribir una palabra de información se debe dar la dirección de la posición en el IC. -Capacidad de GBytes. Dirección contenido 0000 0001 0002 ……….. ……….. ……….. ……….. ……….. FFFF 16 Memoria Auxiliar: -Presenta una capacidad de 100 a 1000 veces mayor que la MP. -Es 10000 a 100000 veces mas lenta que la MP (decenas de ms). -La información se almacena en forma permanente (Gbytes y TBytes. 17 UNIDAD ARITMETICO LOGICA (ALU): -formada por circuitos electrónicos que realizan operaciones aritméticas y lógicas -registros temporales le ayudan a operar -las señales de control especifican la acción: (Sumar, restar, dividir, multiplicar, etc.). -un registro de estado guarda información del resultado de la última operación ( cero, signo, acarreo, desborde, paridad.) Registro de estado Registros temporales R0 Z R1 S R2 C R3 V 18 UNIDAD DE CONTROL (UC) -Detecta las señales de estado provenientes de las distintas unidades. -Toma de la MP una de las instrucciones. -Decodifica la instrucción. -genera las señales necesarias para llevar a cabo la ejecución. -repite el proceso hasta finalizar el programa. -un clock sincroniza todas las operaciones. Clock Registro de instrucción Registro de estado Lógica de Control Señales de control Máquina de estados f = 1/T T Tiempo de ciclo Mhz, GHz 19 BUS (Conexión eléctrica entre las distintas unidades.) Tipos de Buses: -Serie -Paralelo de (8,16,32,64 o 128 líneas conductoras) Bus del Sistema informático: -Bus de Datos -Bus de Direcciones -Bus de Control CPU Memoria Entradas/ Salidas Bus de datos Bus de direcciones Bus de control 20 Aspecto de los buses del sistema: 21 MEDIDA DEL RENDIMIENTO O VELOCIDAD DEL PROCESADOR: MIPS: Millones de instrucciones máquina por segundo MIPS = NI /(te . 106) MFLOPS.: Millones de operaciones con números reales de 64 bits por segundo. MFLOPS = NOcf/(te. 106) NOcf: número de operaciones en coma flotante. te: tiempo de ejecución de programas especiales o benchmarks como Linpack o SPEC. 22 Clasificación de los ordenadores por el grado de paralelismo de su arquitectura: SISD Monoprocesadores -Una instrucción , un dato -Computadora Von Newman (ya analizada) SIMD Computadoras matriciales y vectoriales -Una instrucción , múltiples datos (No existen ninguna) MIMD Supercomputadoras -Múltiples instrucciones, Múltiples datos 23 MIMD MULTIPROCESADORES MULTICOMPUTADORES 24 Clasificación de los ordenadores según su uso: -Computadores de uso general. -Computadores embebidos (lavadoras, teléfonos inteligentes, controladoras de disco, teclado, impresora, etc.). 25 Clasificación de los computadores por su potencia de cálculo: Precio US$ Número procesado res Memoria Principal Memoria auxiliar Usuarios Supercomputador >5.000.000 miles TB EB Decenas a miles Servidor de gama alta (Mainframe) >500.000 cientos Cientos de GB TB Cientos a Miles Servidor de gama media 25.000 a 500.000 decenas Cientos de GB TB Decenas a cientos Servidor Básico <25.000 4, 16 Decenas de GB Cientos de GB decenas Computador personal 50010000 2,4 GB Cientos de GB personal 26 SUPERCOMPUTADORES: -Ejemplos: ASCI Whute, Earth Simulator, Tianhe 2. -Ejecutan Petaflops (billones de FLOPS). -Cientos o Miles de procesadores trabajando en paralelo. -Muy costosos. -Utilizados en aplicaciones de cálculo complejo (HPC High Perfomance Computing) : •Analisis de sismos o movimientos en la corteza terrestre •Predicción climática, etc. 27 El ciclo de máquina de cualquier instrucción consta de dos fases: Adquisición y ejecución EL (PC) ->(AR) Adquisición M(AR)->(DR) (DR)->(IR) (PC+1)->(PC) ALU Ejecución UC IR AR DR PC Memoria Entradas/ Salidas Bus de datos Bus de direcciones Bus de control 28 En la actualidad los procesadores incorporan: -Un procesador gráfico. -Un procesador de punto flotante -Un controlador de Memoria -Varios niveles de memoria caché -Varios cores. 29 Microcontrolador: (Presente en electrodomésticos, periféricos, teléfonos) Núcleo procesador Memoria EEPROM o Flash Puertos paralelos de E/S RAM Temporizadores Puertos series de E/S Conversor D/A Conversor A/D 30 Tipos de Memoria Memoria Interna: -Registros -caché (SRAM) -Memoria Principal (DRAM) -Memoria ROM Memoria auxiliar, externa o masiva: -Discos de estado sólido y flash USB -Dispositivos magnéticos -Dispositivos ópticos 31 JERARQUIA DE MEMORIA 1 ciclo Caché interna L1 1 ciclo Caché externa L2/L3 3 a 5 ciclos precio capacidad DRAM SSD velocidad Registros CPU 30 a 100 ciclos 10k a 20k ciclos Flash USB 300k a 3M ciclos HDD 10M a 100M ciclos Cinta magnética Mayor 100M ciclos 32 ¿ Porque se introducen las memorias chachés? -Porque la velocidad del procesador es del orden de los ns. Y la velocidad de la memoria principal es de 30 a 100 veces mas lenta que el procesador. En consecuencia el procesador se ve frenado cuando debe acceder a memoria. SOLUCION: Utilizar memoria caché mas rápidas con tecnología SRAM de 1 a 5 veces mas lenta que el procesador. 33 CORE i7 con 3 niveles de caché -Caché L1 : 32KB dentro del núcleo -Caché L2: 256KB por núcleo -Caché L3: 12 MB compartida 34 DISCO DE ESTADO SÓLIDO (SSD) Dispositivo de almacenamiento masivo basado en circuitos integrados, emulando un disco duro. Almacenan información en forma permanente. 35 GRABACIÓN Y LECTURA MAGNÉTICA Información leida Información a grabar Cabeza Lectora / Grabadora Material magnetizable substrato movimiento 36 Discos Duros (HDD) -La información se guarda por sectores (arcos de pistas). -El brazo con la cabeza lectora/grabadora tiene movimiento axial. 37 El HDD consiste en varios platos y un peine con varias cabezas lectoras/grabadoras que permiten acceder simultáneamente a un sector de un cilindro. 38 Primera Generación de CD -La información va troquelada en una superficie de aluminio -Si hay reflexión del haz laser se tiene un 0 sino un 1. 39 GENERACIONES DE DISCOS ÓPTICOS 40 Si conectamos todo mediante un solo bus, el del sistema……… CPU MEMORIA PUERTO IP PUERTO OP Bus del sistema Ventajas: Sencillo, barato. Desventaja: Toda la información se transmite por el mismo bus. Los dispositivos mas lentos frenan el funcionamiento del ordenador, por ejemplo mandar datos a una impresora. 41 SOLUCIONES A LA ESTRUCTURA DE UN ÚNICO BUS: -Memorias intermedias (buffer) -Buses específicos -Controladores de E/S -Controlador de Acceso Directo a Memoria DMA 42 BUFFER: Memoria intermedia que sirve para almacenar datos. El procesador carga el buffer con datos y se dedica a ejecutar otros procesos, mientras el periférico a su velocidad lee los datos del buffer. Un controlador o secuenciador controla las operaciones que se realizan en el interior del periférico. 43 BUSES ESPECIFICOS: Un bus especifico frontal, comunica procesador y memoria MEMORIA Bus frontal CPU PUERTO IP PUERTO OP Bus del sistema 44 Un Controlador de E/S es un procesador con memoria local, especializado en controlar operaciones de transferencia de datos entre periféricos conectados a él y el procesador MEMORIA P0 P1 P2 P3 P4 P5 CPU Controlador de E/S Canal 0 Controlador de E/S Canal 1 Bus del sistema 45 Un Controlador de Acceso Directo a Memoria (DMA) es un procesador que permite la transferencia de datos entre memoria y un periférico sin intervención del procesador. P0 P1 P2 Controlador de E/S P3 P4 P5 Controlador de E/S Canal 0 Canal 1 Bus de E/S MEMORIA CPU Bus frontal DMA PRINCIPAL CACHE Bus del sistema 46 UTILIZACIÓN DE BUSES Tipo Periféricos de bus AGP Adaptadores Gráficos PCI Discos duros, otros dispositivos, tarjeta gráfica, Tarjeta de red, controlador SCSI. ISA Lpt1 (impresora), COM1, COM2 (ratón , módem) disquetera, teclado. Teclado, mouse, cámara, escaner, impresora USB 47 ESQUEMA DE UN PC (1990-2000) 48 ESQUEMA DE UN PC ACTUAL Chipset: Conjunto de chips con la misma arquitectura del procesador que sirven de puente entre éste y la memoria y las E/S. PUENTE NORTE: Enlaza la CPU y la memoria. Controla el tráfico entre éste, la memoria y la tarjeya gráfica. Contiene el controlador de DMA: PUENTE SUR: comunica el procesador con el resto de los periféricos(IDE,USB ,PCI, ETC): 49 PINES DEL PROCESADOR INTEL CORE i7 50 SISTEMA INFORMÁTICO APLICACIONES DE USUARIO APLICACIONES DEL SISTEMA SISTEMA OPERATIVO HARDWARE 51 EL SISTEMA OPERATIVO Definición: Es el programa o grupo de programas que controlan el funcionamiento del hardware y nos ofrecen un modo sencillo de acceso al ordenador. El sistema operativo se compone de un núcleo o Kernel y un intérprete de comandos denominado Shell. El shell es un interfaz entre la CPU y el usuario. Cuando le pedimos algo al ordenador, el shell se encarga de traducirlo en llamadas o peticiones a los programas que componen el kernel o núcleo, y éste acciona el hardware. El kernel del sistema operativo tiene entre otros los siguientes componentes: o Cargador inicial (programa de arranque) o Planificador de trabajo de la CPU (Planifica procesos y tareas) o Administrador de periféricos o Comunicador entre procesos o Administrador de memoria o Administrador de archivos 52 Arranque del Ordenador Para que el ordenador pueda arrancar, los programas de arranque y otros de utilidades básicas se guardan en la ROM, que tiene especificado pedir un disco de sistema. Una vez se introduce este disco, el control lo asume el sistema operativo. El disco de sistema puede ser flexible A: o duro C: . 53 Cuando se enciende un ordenador Cuando se conecta el interruptor de un ordenador, ocurren una serie de operaciones que se pueden englobar en dos grupos: 1. Los test de comprobación: o Entrada de la alimentación eléctrica al ordenador desde la fuente de alimentación o Llamada del microprocesador a la ROM-BIOS o La BIOS le da las indicaciones de los test a realizar o Comprobación del bus de expansión (placas instaladas) o Verificación de la tarjeta de vídeo o Comprobación de la memoria caché o Comprobación de la memoria RAM o Comprobación del teclado o Comprobación de las unidades de disco 2. La carga del resto del sistema operativo: según el sistema operativo que se tenga. 54 USOS DE SISTEMAS OPERATIVOS DENTRO DE WINDOWS PARA MÓVILES 55 UNIX -SO estándar -Comercializado en los 90. -Se desarrollaron mas de 100 versiones en las dos primeras décadas. -Es la columna vertebral de Internet -Es un SO multiprogramación, multiusuario y multiprocesamiento -Muy utilizado en los supercomputadores actuales. -Presenta una versión para PC (Linux) 56 Bibliografía: 1. Programación en C, Metodología, estructura de datos y objetos de Luis Joyanes Aguilar. 2. Organización y Arquitectura de Computadores de Stalling. 3. Sistemas Operativos Modernos de Andrew S. Tanenbaum 4. Introducción a la Informática de A. P. Espinosa 57