B. Universidad Autónoma de Puebla Algoritmos y Programación Primavera de 2006 Lectura 1: Conceptos Básicos Javier M Hernández FCFM, BUAP 1 eureka! Algoritmo: Un conjunto de instrucciones que describen como hacer una tarea (o proceso) Programación: C++, Fortran 2 Temas Componentes de hardware Redes de computadoras 3 Transistor Colector Base Emisor “semi-conductor” Dígito binario o “bit”: 0 off 1 on 4 Transistor (cont) Colector Base Emisor off : 0 5 Transistor Colector Base Emisor on : 1 6 Transistor Colector Base Emisor “Chips” modernos (cerca de 3 x 3 mm en tamaño) pueden contener millones de transistores 7 Gates • Puerta: un grupo de transistores • Gates son switches que distinguen entre dos voltajes eléctricos: – Corriente es baja => 0 – Corriente es alta => 1 • Tipos: AND Gate OR Gate NOT Gate 8 Ejemplo: AND Gate A A AND B B A A B 0 0 1 1 0 1 0 1 A AND B B A AND B 9 Gates y Algebra Booleana AND Gate A B 0 0 1 1 0 1 0 1 OR Gate A AND B A OR B 10 Gates y Algebra Booleana (cont) NOT Gate A NOT A 0 1 11 Gates y Algebra Booleana (cont) Una secuencia de bits a un tiempo: A = B = 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 0 A AND B = • La mayoría de las PCs realizan 32 bits a un tiempo (“máquinas de 32-bit”), otras tanto como 128 bits a un tiempo 12 0 or 1 • Gates son las componentes básicas de las computadoras 13 Componentes de Hardware de una Computadora Típica Dispositivos Periféricos Central Processing Unit (CPU) Memoria • Los “Buses" permiten a los componentes pasar los datos uno al otro 14 Componentes del Hardware Almacenamiento Secundario Disco Duro Teclado Mouse Disco Floppy Cinta Magnética Central Processing Unit Control Unit (CU) Arithmetic and Logic Unit (ALU) Escaner Pantalla Impresión Audífono Memoria Principal 15 Hardware de Computo Monitor CD-ROM Tarjeta de Audio Mouse Tarjeta de red Memoria cache Teclado Conector Graficas Tarjeta Grafica Slots Adicionales Hard Drive Bahia Extra Memoria CPU Floppy Drive 16 Componentes de Hardware de una Computadora Típica - CPU Dispositivos Periféricos Central Processing Unit (CPU) Memoria Central Processing Unit (CPU) • Realiza las operaciones básicas • consiste de dos partes: – Arithmetic / Logic Unit (ALU) – manipulación de datos – Control Unit – coordina las actividades de la máquina 17 Central Processing Unit (CPU) • CPU es el “cerebro” de la computadora, que entiende y ejecuta a los programas de computo escritos en lenguaje de máquina (a.k.a. código de máquina) • Componentes de un CPU: – Unidad de Control (UC): decodifica las instrucciones de máquna y envia las señales de control a los otros componentes para que realizen las instrucciones. – Unidad Aritmética y Lógica (ALU): realiza la aritmética (suma, subtracción, etc.) y operaciones lógicas (and, or, comparaciones, etc.) – Registros: locaciones de memoria de alta velocidad dentro del CPU, usada para guardar temporalmente las instrucciones actuales y los valores de los datos. • La circuitería de un CPU moderno consiste de millones de circuitos en miniatura manufacturados en una oblea de silicio conocido como un Circuito Integrado (IC) o chip. • Microprocesador = un CPU completo en un solo chip. 18 Componentes de Hardware de una Computadora Típica - Memoria Dispositivos Periféricos Central Processing Unit (CPU) Memoria Memoria Principal • mantiene los programas y los datos • almacena los bits en pedazos de tamaño fijo: “word” (8, 16, 32, o 64 bits) • cada word se guarda en una celda, que posee dirección unica • las celdas se pueden accesar en cualquier orden => random-access memory o “RAM” 19 Componentes de Hardware de una Computadora Típica - Memoria • La memoria computacional es comparable a una colección de buzones de correo numeradas. Cada celda de memoria tiene dos atributos importantes: – dirección o locación – contenido o valor, el cual se representa digitalmente como un número binario • La RAM reside en los circuitos integrados lo que requiere energía para retener su contenido, asi la RAM es volatíl Address 0010011010 Conversión de base 2 a base 10: Contenido 00101001 1010012 = 1x25 + 0x24 + 1x23 + 0x22 + 0x21 + 1x20 = 32 + 0 + 8 + 0 + 0 + 1 = 4110 20 Bits, Bytes, Kilo-, Mega-, Giga-, … • Un bit: 0 o 1 • Un word: conjunto de bits (8, 16, 32 o 64 bits) • un byte = 8 bits • un kilobyte = 210 bytes = 1024 bytes • un megabyte = 1024 KB = 220 bytes = 1,048,576 bytes • un gigabyte = 1024 MB = 230 bytes • un terabyte = 1024 GB = 240 bytes 21 Componentes de Hardware de una Computadora Típica - Periféricos Dispositivos Periféricos Central Processing Unit (CPU) Memoria • Se comunican con el mundo exterior • Almacenan los datos a largo plazo – ventajas: mucha mayor capacidad, memoria no-volatíl – desventajas: tiempo de acceso más lento (debido al movimiento mecánico) 22 Periféricos que se Comunican con el Mundo Exterior Dispositivos Periféricos Central Processing Unit (CPU) Memoria • Input/Output o Entrada/Salida (I/O) – Input: teclado, mouse, microfono, escaner, sensores (camara, infra-red) [convierten entrada a código digital] – Output: video, impresoras, bocinas, etc • Comunicación – modem, tarjeta ethernet o de red, tarjeta wireless, pcmcia 23 Periféricos que Almacenan Datos a Largo Plazo Almacenamiento Secundario (masivo) guardan la información por largos periodos de tiempo como archivos • Ejemplos: hard drive, floppy disk, tape, CD-ROM (Compact Disk Read-Only Memory), DVD, USB HD 24 Características de las Computadoras -- Rapidez • Rapidez del CPU – Rapidez del reloj del CPU: en ciclos por segundo ("hertz") » Ejemplo: 2700MHz Pentium IV – pero diferentes diseños de CPU hacen diferentes cantidades de trabajo en un ciclo del reloj – “flops” (floating-point operations per second) – “mips” (million instructions per second) 25 Características de las Computadoras -- Rapidez (cont) • Rapidez del reloj/bus del sistema – comunicación entre CPU, memoria y periféricos – depende del diseño de la tarjeta madre (a.k.a. "motherboard") » Ejemplos: »Intel 2.50GHz Pentium-4 funciona con una rapidez de bus de 400MHz »50MHz, 60MHz, 66MHz, 100Mhz, 133MHz, y subiendo 26 Características de las Computadoras -- Rapidez (cont) • Rapidez de acceso a la memoria – RAM » Cerca a 60ns (1 nanosegundo = una billonésima de un segundo), y en incremento » Puede ser marcada con respecto a “bus speed’’ (e.g., PC100) – Memoria cache » Más rápido que la memoria principal (cerca de 20ns de rapidez de acceso), pero mas cara » contiene solo datos que usará el CPU a continuación 27 Características de las Computadoras -- Rapidez (cont) • Rapidez de los periféricos – Almacenamiento masivo » Ejemplos: »3.5in 1.4MB floppy disk: cerca 500kb/seg a 300 rpm (revoluciones por minuto) »3.5in hard disk: promedio del tiempo de búsqueda 8.5 microsegundos, y 7,200 rpm – Comunicaciones » Ejemplos: modems a 56 kilobits por segundo, y tarjetas de red a 10 o 100 megabits por segundo – I/O » Ejemplos: ISA, PCI, IDE, SCSI, ATA, USB, etc.... 28 Características de las Computadoras -- Confiabilidad Factores que afectan la confiabilidad: • calor, ventilación, “over-clocking”, fallas de potencia La mayoría de las fallas en los sistemas se deben a errores en el software mas que en el hardware 29 Modos de comunicación • Comunicación en paralelo: – todos los bits se transfieren al mismo tiempo – cada bit en una línea separada • Comunicación serial: – un bit al tiempo 1 0 1 1 0 0 0 1 1 0 30 Modems (MOdulator-DEModulator) Máquina Remota Dato Digital Modem Señal de audio por líneas de tel Máquina en casa Dato Digital Modem 31 Redes de Computadoras • Tipos – Local Area Networks (LAN, Redes locales) » LAN conectan a computadoras y otros dispositivos localizadas de forma cercana (en un edificio) por medio de cables » Ventaja: el compartir la información y los recursos, tales como archivos, dispositivos de almacenamiento secundario, impresoras, escaners, etc. » El lab de AyP usa Sunrays conectadas en una LAN que comparte impresora y el servidor de archivos asi como el software del sistema 32 Redes de Computadoras (cont) – Wide Area Networks (WAN) » WANs conectan muchas computadoras individuales y LANs sobre una gran área geográfica, separada por cientos o miles de kms » Comunicaciones sobre distancias intermedias usan líneas de teléfono; a gran distancia usan líneas de teléfono o señales de microonda que pueden ser reenviadas por satélite, además de fibra óptica »Ejemplo: la WAN más conocida es el “backbone” de Internet. Esta comenzó como un proyecto de una red del Departamento de Defensa de EU en 1969: ARPAnet. 33 Redes de Computadoras – Métodos de Comunicación • Cada computadora tiene una dirección – Ejemplo: dirección IP de www.fcfm.buap.mx es 148.228.125.1 • Una computadora remitente transmite datos a travez de la red en paquetes; cada paquete se marca con las direcciones del destinatario y la de retorno – Cuando los datos son muy grandes para caber en un paquete, el remitente puede dividir los datos en varios paquetes, marcados en secuencia 34 Redes de Computadoras– Métodos de Comunicación (cont) • Los paquetes se envian por medio de links de computadora a computadora (“ruteamiento”) • Cada computadora intermediaria recibe y retransmite el mensaje (“hops”) – Los paquetes no necesariamente llegan en el orden en que fueron enviados • La computadora receptora pone los paquetes en la secuencia correcta y recupera los datos 35 Sumario • Transistors, gates, chips, hardware • Computer = CPU + Memory + I/O Devices • Networks, modems • Jargon and acronyms 36 Computer Software • Two main types of components of a computer system: – Hardware: physical devices – Software: computer programs • Software classification according to its role and purpose: – Operating system (OS): software responsible for directing all computer operations and managing all computer resources (hardware and software). OS works closely with the computer hardware. – Application software: software used for a specific task such as word processing, database management, environments for developing user programs, spreadsheets, etc. The applications are running on top of the OS using its services, and therefore must be compatible with it. – User Programs: developed by the users with the help of specialized application software. Run on top of the OS. 37 Operating Systems • Example of OS responsibilities: – Communicating with the computer user: receiving commands and carrying them out or rejecting them with an error message – Managing allocation of memory, of processor time, and of other resources for various tasks – Collecting input from the input devices and providing this information to the currently running program – Conveying program output to the screen, printer or other output devices – Reading/writing data from/to secondary storage. • Widely used Operating Systems – Unix, Linux, MS-DOS, OS/2, VMS, Macintosh OS, Windows 98, Windows NT 38 Software de Computo Aplicacion Software que realiza operaciones de alto nivel (computacion, graficas, etc.) Sistema Operativo Software que envia mensajes entre las aplicaciones y el hardware Hardware Acceso directo a circuitos, discos, mouse, teclado, monitor, etc. 39