Fundamentos de Computadores PDF
Document Details
Escuela de Ingenierías Industriales y Civiles
2020
Tags
Summary
This document is a module on computer fundamentals, covering topics such as basic computer concepts, data representation, hardware, software, programming languages, software licensing, and system and application software.
Full Transcript
Módulo 1. Grupo Docente IyP – Departamento de Informática y Sistemas Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2019/2020 1...
Módulo 1. Grupo Docente IyP – Departamento de Informática y Sistemas Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2019/2020 1 CONTENIDO Grupo Docente IyP – Departamento de Informática y Sistemas Tema 1. Introducción y conceptos básicos Tema 2. Representación de la información Tema 3. Hardware. Tema 4. Software. 2 Definiciones Grupo Docente IyP – Departamento de Informática y Sistemas Instrucción Los ordenadores sólo tienen capacidad para realizar operaciones matemáticas básicas y operaciones lógicas, dentro de un repertorio limitado de operaciones disponibles. Las instrucciones se pueden clasificar en función de la utilidad de las mismas: transferencia de datos, aritmética, lógica, control del flujo y otras. Programa Conjunto ordenado de instrucciones que le indican al ordenador lo que tiene que hacer para resolver un problema determinado. Los programas interactúan entre sí, y manejan los recursos del sistema informático para conseguir objetivos más complejos. Lenguaje de programación Herramienta para construir programas. Puede ser de bajo nivel o de alto nivel. 3 Lenguajes de programación Grupo Docente IyP – Departamento de Informática y Sistemas El lenguaje de programación es la herramienta que se utiliza para generar programas. El ordenador solo reconoce un limitado conjunto de instrucciones muy básicas. Por medio del lenguaje de programación indicamos al ordenador qué instrucciones ha de ejecutar y sobre que datos ha de operar. Lenguaje de bajo nivel Conocido por ensamblador, solo dispone de las mismas instrucciones sencillas que entiende directamente el ordenador. Es muy complejo de programar, y depende directamente del tipo de computador que lo ejecuta. Lenguaje de alto nivel Los lenguajes de alto nivel están más cercanos al lenguaje natural, con la ventaja de que son más fáciles de programar y son menos dependientes del tipo concreto de ordenador que lo ejecuta. Algunos ejemplos de este tipo de lenguaje son C, Java, Matlab, LISP, etc. Puede ser compilado o interpretado. 4 Lenguajes de programación ✓ No depende del Grupo Docente IyP – Departamento de Informática y Sistemas ordenador ✓ Facilita la programación ✓ Depende del microprocesador ✓ Repertorio de instrucciones reducido ✓ Laborioso de programar 5 Tipos de licencia software Grupo Docente IyP – Departamento de Informática y Sistemas La licencia del software es el contrato por el que se establece la propiedad del mismo, y regula la forma en la que se realiza el desarrollo, la adquisición, el uso y el mantenimiento del software. Software propietario Licencia para usarlos como decida la empresa que lo vende (Copyright). Shareware La distribución y la utilización se permite durante un tiempo de prueba de forma gratuita, pero el autor exige que superado ese tiempo de prueba, el usuario pague por su uso regular. Software abierto Garantiza libertades de uso y redistribución. Poseen código fuente abierto, es decir, puede ser consultado por cualquiera. Software libre Añade, a las libertades del software abierto, la posibilidad de modificar libremente el 6 código para adaptarlo a las necesidades propias. Tipos de software Grupo Docente IyP – Departamento de Informática y Sistemas Todos los programas que conforman el software pueden ser divididos en dos grupos bien diferenciados según su función. Software de sistema Compuesto por el conjunto de programas imprescindibles para el funcionamiento del hardware, más un conjunto de utilidades cuya misión es la de facilitar el uso del sistema y optimizar sus recursos, sistemas operativos, software de utilidad, compiladores, seguridad, etc. Software de aplicaciones Es el conjunto de programas que manejará el usuario para realizar cualquier tarea con el sistema informático, aplicaciones ofimáticas, diseño gráfico, software a medida, programas usuario, etc. 7 Software de sistema Grupo Docente IyP – Departamento de Informática y Sistemas Dentro del software del sistema podemos encontrar los siguientes componentes. Arranque BIOS Tareas que se realizan en el ordenador en el momento de encenderlo (chequeo, configuración de sistemas básicos, etc.). Cargador Carga en la memoria RAM el núcleo del sistema operativo que está contenido en el disco o en otro dispositivo de almacenamiento permanente. Sistema operativo Conjunto de programas que permiten a los usuarios y a otros programas de aplicación interactuar de forma sencilla con el hardware específico del ordenador, de manera que oculta sus detalles, como el tipo o la marca y modelo concretos (sistemas de ficheros, 8 protocolos de red, control de seguridad, etc.). Software de sistema Grupo Docente IyP – Departamento de Informática y Sistemas Interfaz de usuario Es lo que el usuario ve en pantalla y hace posible la interacción hombre-máquina, permitiéndole dar órdenes o ejecutar programas. Puede estar basada en texto (UNIX, MS- DOS), o tener una interfaz gráfica (Windows, Ubuntu, Snow Leopard, iOS, Android, etc.). Programas de ayuda al sistema operativo Herramientas de apoyo al SO entre los que figuran programas de diagnóstico y programas de mantenimiento del sistema: añadir o modificar elementos hardware en el sistema, añadir y gestionar usuarios, etc. Utilidades generales Traductores de lenguajes de alto nivel (compiladores e intérpretes), depuradores, ensambladores y cargadores, editores de programas, etc. 9 Software de sistema Grupo Docente IyP – Departamento de Informática y Sistemas Programas de aplicación Interfaz con el usuario Utilidades Sistema operativo BIOS Hardware 10 Sistema operativo Parte del software del sistema que sirve de intermediario entre el hardware y los usuarios. Realiza las siguientes funciones principales: Grupo Docente IyP – Departamento de Informática y Sistemas Gestión de procesos: Actúa como árbitro, encargándose de repartir la CPU entre los procesos activos, de la creación y eliminación de procesos, conocer el estado de los procesos, planifica, sincroniza y facilita la comunicación entre los mismos. Gestión de memoria: La memoria es un recurso igualmente escaso por el que compiten los distintos procesos. El SO debe conocer qué zonas de memoria están libres y cuáles están ocupadas para decidir qué procesos hay que cargar cuando haya memoria libre, así como reservar y liberar zonas de memoria según se solicite. También se encarga de gestionar la memoria utilizando el almacenamiento secundario como una extensión de la memoria principal. Gestión de E/S: Proporciona una interfaz uniforme de acceso a los dispositivos de E/S a través de los manejadores o drivers y planifica las peticiones para que los dispositivos puedan ser compartidos de forma eficiente. Sistema de archivos: Un archivo es un concepto de alto nivel que representa un conjunto de datos identificado por un nombre y almacenarlo en dispositivos de E/S. El SO se encarga de realizar todas las operaciones relativas a la creación, manejo y mantenimiento de los ficheros. 11 Sistema operativo Grupo Docente IyP – Departamento de Informática y Sistemas Sistema de seguridad: Mecanismos destinados a controlar el acceso de los usuarios y los procesos a los recursos de acuerdo con los privilegios que se definan. Comunicación entre procesos: El sistema operativo proporciona las primitivas de comunicación entre procesos (IPC), para que los procesos puedan comunicarse e intercambiarse información. Gestión de redes: En un sistema distribuido, existen varios ordenadores con sus propios recursos locales (memoria, archivos, etc.), conectados mediante una red. Los objetivos del SO en cuanto a redes son: proporcionar primitivas para conectarse con equipos remotos y acceder de forma controlada a sus recursos, permitir llamada remota a procedimientos, etc.. Interfaz de órdenes: Para que un usuario pueda dialogar directamente con el SO, se proporciona una interfaz de usuario básica para cargar y finalizar programas, introducir datos a los programas, trabajar con archivos y con redes. 12 Sistemas operativos comunes Grupo Docente IyP – Departamento de Informática y Sistemas En los ordenadores personales podemos encontrar los siguientes Sistemas Operativos: Microsoft Windows: SO de propósito general creado para procesadores Intel y compatibles. Monousuario, multiproceso y dotado de mecanismos de seguridad e interfaz gráfica. UNIX y Linux: Son sistemas operativos de propósito general, desarrollados para multitud de plataformas hardware. Es multiusuario, multiproceso e incorpora mecanismos de seguridad. Hay multitud de versiones y adaptaciones de este SO a máquinas de diferente propósito (ordenadores personales, servidores, teléfonos móviles, etc.) Mac OS X: Son SO que solo funcionan en equipos Macintosh de Apple Computer, pionero en la utilización de un entorno operativo gráfico, incluyendo el uso de ventanas, menús desplegables y el ratón. Es multitarea y está basado en Unix. 13 Software de aplicación Grupo Docente IyP – Departamento de Informática y Sistemas Podemos encontrar aplicaciones de uso común (software estándar) que los fabricantes diseñan y distribuyen para un gran número de usuarios, y software a medida desarrollado por programadores para cubrir las necesidades de un cliente concreto. Entre los tipos de software más comunes que podemos encontrar están: Procesadores de texto: Se utilizan para crear, manejar e imprimir todo tipo de documentos como cartas, artículos, informes e incluso libros completos. Tienen multitud de funciones, y casi todos son WYSIWYG (What You See Is What You Get), que permiten trabajar directamente en pantalla con la presentación final del documento. Entre los procesadores de texto más conocidos cabe citar: Word (Microsoft), OpenOffice (Sun), WordPerfect y Pages (Mac). También hay variantes más potentes destinadas al mundo profesional: PageMaker (Aldus), Publisher, QuarkXpress. 14 Software de aplicación Grupo Docente IyP – Departamento de Informática y Sistemas Hoja de cálculo: Distribución tabular en filas y columnas de un conjunto de celdas en las que se pueden colocar números, texto, operaciones matemáticas o funciones. Algunos ejemplos son Excel (Microsoft), Numbers (Mac), 123 (Lotus). Gestor de comunicaciones: Aisla al usuario de los problemas inherentes a la comunicación entre ordenadores. Algunos gestores de comunicaciones de propósito variado que podemos encontrar son: Skype, SSH, Filezilla, etc. 15 Software de aplicación Grupo Docente IyP – Departamento de Informática y Sistemas Gestor de bases de datos: Aplicación que permite manejar un conjunto grande de datos organizados en archivos e interrelacionados entre sí. Un archivo estará formado por un número variable de registros, cada uno de los cuales contendrá una información individual mediante un número predeterminado de campos. Debido a la gran cantidad de información que se puede manejar, es fundamental una buena organización de los datos. El modelo de base de datos más usado es el modelo relacional, en el que la información está organizada en forma de tablas. Algunos ejemplos son Access y SQLServer (Microsoft), Oracle, Gestor de gráficos: Programa que permite crear y manipular imágenes gráficas. Hay variantes, en función de si procesan las imágenes en forma mapa de bits (Photoshop, GIMP, etc.) o de forma vectorial (AutoCAD, CorelDraw, Fireworks, etc.). 16 Software de aplicación Grupo Docente IyP – Departamento de Informática y Sistemas Software para internet Conjunto de aplicaciones que aprovechan el desarrollo y despliegue de la red de redes. Navegadores: Este software nos permite conectarnos desde nuestro computador a otro computador para acceder a información y visualizarla, mediante tecnología web. Entre los más populares podemos destacar: Mozilla, Safari, Opera, Explorer o Google Chrome. Motores de búsqueda: Software que nos permite realizar búsquedas de información a través de internet. Los más conocidos pueden ser Google, Yahoo y Bing. 17 Software de aplicación Grupo Docente IyP – Departamento de Informática y Sistemas Software para internet Audio y Video a la carta: Aplicaciones Web que nos permiten ver vídeos o escuchar música directamente en nuestro ordenador y, en muchos casos, compartirlo con otros usuarios de la red. Ejemplos: Youtube, Vimeo, Google Video, Spotify, Lastfm etc. Redes sociales: Son aplicaciones que permiten a los usuarios definir una identidad propia que posibilita tener parte de nuestra vida resumida en la red para que pueda ser consultada por otros usuarios. Aplicado al mundo empresarial, favorecen la participación y el trabajo colaborativo entre las personas. Algunos ejemplos, Facebook, Twitter, MySpace. Conocimiento distribuido: Ofrecen un servicio de almacenamiento e indización de 18 contenidos para favorecer el acceso al conocimiento global. El ejemplo más conocido es Wikipedia. Software de aplicación Grupo Docente IyP – Departamento de Informática y Sistemas Software de programación Para poder realizar programas hace falta escribir el conjunto de instrucciones a ejecutar (código) en archivos de texto, para después pasar un compilador que traduzca ese código a un lenguaje entendible por el computador. Generalmente los lenguajes de programación disponen de un entorno que incluye herramientas de edición, compilación, etc. Existen entornos de desarrollo integrados en los cuales se han empaquetado varios programas en una única aplicación que combina un editor de código, un compilador, un depurador y un constructor de interfaz gráfica. Estos entornos proveen de un marco de trabajo amigable para la mayoría de los lenguajes de programación. En algunos lenguajes, un software de programación puede funcionar como un sistema en tiempo de ejecución, en donde se permite utilizar el lenguaje de programación en forma interactiva, sin necesidad de trabajar sobre archivos de texto. Algunos ejemplos de entornos de programación son: Eclipse, Visual Studio, Dev-C++ 19 Bibliografía Grupo Docente IyP – Departamento de Informática y Sistemas Fundamentos de Informática y Programación para Ingeniería. Ejercicios Resueltos para C y Matlab. Modesto Castrillón et al, Paraninfo, 2011. Introducción a la informática, A. Prieto Espinosa, A. Lloris Ruiz, J.C. Torres Cantero, McGraw-Hill, Madrid, 1989. 20 Grupo Docente IyP – Departamento de Informática y Sistemas Módulo 2 Estructura de computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2019/2020 CONTENIDO Grupo Docente IyP – Departamento de Informática y Sistemas Tema 1. Introducción y conceptos básicos Tema 2. Representación de la información Tema 3. Hardware. Tema 4. Software. Contenidos Grupo Docente IyP – Departamento de Informática y Sistemas Esquema funcional de un ordenador Unidad Central de Proceso Memorias Memoria Principal Memorias Secundarias Dispositivos de Entrada/Salida Buses y conectores Referencias 3 Esquema Funcional de un Grupo Docente IyP – Departamento de Informática y Sistemas ordenador Definíamos el ordenador como una máquina capaz de realizar, bajo el control de un conjunto ordenado de instrucciones, llamado programa, las siguientes acciones: 1.Aceptar unos datos de entrada. 2.Efectuar con ellos operaciones lógicas y/o aritméticas (procesamiento). 3.Proporcionar la información resultante a través de unos datos de salida. 4 Esquema Funcional de un Grupo Docente IyP – Departamento de Informática y Sistemas ordenador Además de las funciones descritas, también el ordenador tiene que ser capaz de almacenar información, por lo que un esquema más general sería: 5 Esquema Funcional de un Grupo Docente IyP – Departamento de Informática y Sistemas ordenador En 1945, el matemático y químico John von Neumann, presentó el diseño conceptual que especifica cómo debería funcionar una máquina programable, de propósito general, capaz de procesar información, en el que se basan los ordenadores actuales. La máquina von Neumann deberá tener las siguientes características: La máquina debe ser controlada por un conjunto de instrucciones con un pequeño número de elementos centrales de proceso. Tanto la información (datos) como el programa (método de procesado de la información) deben almacenarse en el interior del computador en formato binario (con un alfabeto compuesto exclusivamente de ceros y unos). 6 Esquema Funcional de un ordenador Grupo Docente IyP – Departamento de Informática y Sistemas Esquema funcional de la máquina von Neumann 7 Esquema Funcional de un ordenador Grupo Docente IyP – Departamento de Informática y Sistemas Las unidades funcionales de la máquina von Neumann son las siguientes: Unidad de entrada (input): Dispositivos que permiten introducir información (datos o instrucciones) en el sistema. Unidad de salida (output): Dispositivos que permiten mostrar información (resultados). Unidad de control y proceso (CPU): Procesa información y realiza operaciones aritmético/lógicas. Se puede dividir en dos componentes: Unidad de control 8 Unidad aritmético-lógica Unidad Central de Proceso (CPU) Grupo Docente IyP – Departamento de Informática y Sistemas Es el “cerebro” del ordenador. Es el elemento que controla y procesa la mayoría de las operaciones que se llevan a cabo en el ordenador. La CPU de un ordenador está contenida en el chip microprocesador central. Existen varios fabricantes (Intel, AMD, Motorola) y modelos de procesadores (Pentium, Core Duo, Core Quad, I7, 68000, PowerPC, …), pero es INTEL la que hasta la fecha ha marcado la pauta. Los términos CPU, procesador y microprocesador suelen ser sinónimos. (Dentro contiene ALU, UC, memoria caché y coprocesador matemático en una pastilla). 9 Unidad Central de Proceso (CPU) Grupo Docente IyP – Departamento de Informática y Sistemas Familia Modelo Intel 8088,8086 80286,80386 80486 Celeron Pentium Dual Core Quad Core I7 AMD K5, K6 Turion Dual Core Athlon Quad Core IBM Power 5, Power PC 10 Unidad Central de Proceso (CPU) Grupo Docente IyP – Departamento de Informática y Sistemas Los factores o parámetros principales a tener en cuenta a la hora de elegir una CPU son los siguientes: Compatibilidad Dos microprocesadores son compatibles si el software escrito para uno de ellos puede ser ejecutado en el otro. Ejemplo: la familia de microprocesadores de Intel y AMD son compatibles, no lo son con PowerPC (de Motorola-IBM) Nuevos microprocesadores pueden correr software antiguo, pero nuevo software es incompatible con antiguos microprocesadores 11 Unidad Central de Proceso (CPU) Grupo Docente IyP – Departamento de Informática y Sistemas Rendimiento La velocidad con la que el procesador manipula la información. El rendimiento global viene determinado por los siguientes factores: ▪ Frecuencia de reloj: Velocidad a la que trabaja el reloj interno que sirve para sincronizar las señales eléctricas (media en GHz) ▪ La arquitectura del ordenador (RISC, CISC) ▪ Tamaño de la palabra de la CPU y Ancho del bus (32,64) ▪ Procesamiento paralelo, varias CPUs 12 Unidad Central de Proceso (CPU) Grupo Docente IyP – Departamento de Informática y Sistemas Los componentes de la Unidad Central de Proceso (UCP ó CPU en inglés) son los siguientes: La Unidad de Control La Unidad Aritmética Lógica Los registros (como el RI, AX y otros) usados durante la ejecución de cada instrucción. 13 Unidad Central de Proceso (CPU) Grupo Docente IyP – Departamento de Informática y Sistemas La Unidad de Control (UC), es un circuito especializado que controla la ejecución de las instrucciones en el orden establecido en el programa, realizando la secuenciación de las acciones necesarias para la ejecución de cada instrucción, según el código de la misma. Establece la comunicación entre la ALU, la memoria principal y el resto de componentes. – Componentes de la UC PC (Program Counter, registro Contador de Programa), contiene la dirección de memoria de la siguiente instrucción a ejecutar. RI (Registro de Instrucción), contiene el código de la instrucción que se está ejecutando. Decodificador, circuitos especiales encargados de determinar qué se debe hacer en función de: – El código de la instrucción a ejecutar – Señales de estado de los dispositivos 14 Unidad Central de Proceso (CPU) Grupo Docente IyP – Departamento de Informática y Sistemas Esquema de la Unidad de Control (UC) 15 Unidad Central de Proceso (CPU) Grupo Docente IyP – Departamento de Informática y Sistemas La Unidad Aritmético-Lógica (UAL/ALU) sólo sirve para realizar las operaciones aritméticas (sumas, restas, multiplicaciones, …) o lógicas (NOT, AND, OR, …) que le ordene la UC, siendo auxiliada por registros acumuladores para guardar transitoriamente datos y resultados. La ALU está compuesta por: Circuitos operacionales: circuitos digitales que realizan las operaciones Registros: almacenan temporalmente los datos de E/S de los circuitos operacionales – Registro acumulador: almacena temporalmente el resultado de las operaciones – Registros de operandos – Registro de estados: registro especial que indica el estado de la última operación (si ha sido 0, si ha sido negativo, si ha habido desbordamiento,...) 16 Unidad Central de Proceso (CPU) Grupo Docente IyP – Departamento de Informática y Sistemas Contiene los circuitos electrónicos que realizan las operaciones aritméticas y lógicas, es decir, producen unos datos a partir de una entrada Dispone generalmente de registros o almacenes temporales de datos. 17 Unidad Central de Proceso (CPU) Grupo Docente IyP – Departamento de Informática y Sistemas Las fases para la ejecución de una instrucción en la CPU de un ordenador son las siguientes: 1. Búsqueda de la instrucción – Carga en el RI la instrucción que indique el PC – Se modifica el PC para que apunte a la siguiente instrucción 2. Ejecución – Se decodifica el código de la instrucción almacenada en el RI – Se generan las señales de control necesarias, que se envían a los dispositivos correspondientes a través del bus de control (ALU, Memoria principal, canales de E/S) 3. Si no ha terminado el programa, volver a 1. 18 Memoria Grupo Docente IyP – Departamento de Informática y Sistemas Memoria: Almacena los datos y programas. Se puede clasificar, según el grado de accesibilidad como: Estas unidades se conectan entre sí mediante buses 19 Memoria Principal Grupo Docente IyP – Departamento de Informática y Sistemas Unidad de almacenamiento de instrucciones y datos. Formada por circuitos electrónicos integrados capaces de almacenar valores binarios (0 ó 1) en cada celda de memoria (bit) Palabra de memoria: menor conjunto de celdas de memoria que se pueden leer o escribir simultáneamente (ancho del bus). Dirección de memoria: número que identifica de forma unívoca cada palabra de memoria. 20 Memoria Principal Grupo Docente IyP – Departamento de Informática y Sistemas Memoria RAM (Random Access Memory) Memoria de acceso directo Memoria de lectura/escritura Volátil: Si se apaga el ordenador se pierden los contenidos. Almacena instrucciones del programa y datos. Varias tecnologías de fabricación (DRAM, SDRAM, SRAM) Pueden presentarse en chips agrupados formando módulos (SIMM y DIMM) que además pueden tener diferentes capacidades (512, 1024, 2048 Mb) 21 Memoria Principal Grupo Docente IyP – Departamento de Informática y Sistemas Memoria ROM (Read Only Memory) Memoria de acceso directo Memoria de sólo lectura No es volátil: no se borra al desconectarle la alimentación. Contiene la siguiente información: Programa para la puesta en marcha del ordenador (Power On Self Test): rutinas de inicialización y arranque. BIOS (Basic Input Output System): incluyen una utilidad llamada SETUP que es un sistema basado en menús donde se pueden configurar muchos parámetros del equipo (tipo de disco duro, la fecha y hora del sistema, etc…). Dichos parámetros se guardan en una memoria tipo CMOS, de muy bajo consumo y que es mantenida con una pila cuando el ordenador está desconectado. Existen diversos tipos (PROM, EPROM, EEPROM) 22 Memoria Principal Grupo Docente IyP – Departamento de Informática y Sistemas Memoria Caché: ▪ Memoria cara, de tipo estático (SDRAM), rápida y pequeña se suele ubicar entre la memoria principal y la CPU. ▪ Acelera los accesos a memoria principal. ▪ Hay dos tipos de caché, la de primer nivel (integrada en el chip microprocesador) y la de segundo nivel (fuera del chip). ▪También puede colocarse en los accesos a dispositivos de almacenamiento secundario (memoria masiva) como los discos rígidos. 23 Memoria Principal Grupo Docente IyP – Departamento de Informática y Sistemas Funcionamiento de una memoria caché 1. La CPU necesita una palabra de memoria (la 2) y se la pide a la caché 2. La caché no la tiene y se la solicita a la RAM. 3. La RAM envía a la caché además de la palabra solicitada (la 2), la siguiente (la 3). 4. La caché le envía a la CPU la palabra que pidió (la 2) 5. La CPU pide una nueva palabra a la caché (la 3) 6. En esta ocasión la caché tiene la palabra que se solicita con lo que nos ahorramos el acceso a la RAM que es bastante más lento. 24 Memorias Secundarias Grupo Docente IyP – Departamento de Informática y Sistemas Los sistemas de almacenamiento secundarios mas usados: Cintas magnéticas (DIC, DAT) Discos magnéticos (discos duros) Discos ópticos (CD, DVD, etc.) Discos USB El acceso a estos dispositivos es generalmente cuasi-aleatorio o secuencial, a diferencia del acceso a la memoria principal (totalmente aleatorio). Ello se debe, por lo general, a la presencia de elementos mecánicos. 25 Memorias Secundarias Grupo Docente IyP – Departamento de Informática y Sistemas Cintas Magnéticas La información se almacena de forma secuencial a lo largo de la cinta en distintas pistas paralelas a lo ancho de la cinta. Las cintas se usan solamente cuando la información se almacena y recupera de forma secuencial (sobre todo copias de seguridad). 26 Memorias Secundarias Grupo Docente IyP – Departamento de Informática y Sistemas Discos Magnéticos La información se almacena usando las propiedades magnéticas del material (cambios de imantación) en círculos concéntricos (pistas) en un disco. Las pistas se dividen en sectores que contienen un número de bytes (caso típico 512) almacenados de forma secuencial. El disco gira a altas velocidades y una cabeza se mueve sobre las distintas pistas concéntricas. La cabeza se puede mover a una pista cualquiera proporcionando de alguna forma acceso aleatorio. Sin embargo, el controlador debe esperar a que la información a leer dentro de la pista pase por debajo de la cabeza. Sobre todo en el caso de discos duros puede haber varios en paralelo formando un sistema RAID (Redundant Array of Independent Disks), conjunto redundante de discos independientes. 27 lectora Cabeza Pistas Sector Memorias Secundarias Grupo Docente IyP – Departamento de Informática y Sistemas 28 Memorias Secundarias Grupo Docente IyP – Departamento de Informática y Sistemas Periféricos del ordenador: ◼Dispositivos de memoria secundaria: Discos magnéticos Discos magneto - ópticos Diskettes Cintas magnéticas CD-Rom Vídeo Disco Versátil (DVD) 29 Organización jerárquica memoria Grupo Docente IyP – Departamento de Informática y Sistemas Objetivo: Dar la impresión al usuario de que tiene una memoria grande, rápida y barata. Tan grande y barata como los discos externos. “Casi” tan rápida como la RAM. ¿Cómo? Organizando la memoria de forma jerárquica, llegando así a un compromiso entre Tecnología, Coste y Velocidad. ¿En qué consiste? En utilizar distintos niveles de memorias de forma que los niveles más cercanos al procesador utilizan tecnología más rápida (aunque son de menor tamaño y más caras) y los niveles más lejanos al procesador utilizan tecnología más lenta (y son de mayor tamaño y más baratas). 30 Organización jerárquica memoria Grupo Docente IyP – Departamento de Informática y Sistemas Visión general del sistema de memorias. Procesador Control Memoria Memoria Memoria Memoria Memoria Ruta de Datos Velocidad: Más rápida Más lenta Tamaño: Más pequeña Más grande 31 Coste: Más cara Más barata Organización jerárquica memoria Grupo Docente IyP – Departamento de Informática y Sistemas Niveles de jerarquía y tecnologías asociadas Procesador Aplicando el Principio de Localidad: Registros L1 Cache ◼Presentamos al usuario tanta memoria como sea posible en la tecnología más barata. L2 Cache Memoria principal ◼Proporcionamos acceso a la velocidad ofrecida por la tecnología más rápida. Disco Cinta Magnética Discos ópticos 32 Dispositivos de Entrada/Salida Grupo Docente IyP – Departamento de Informática y Sistemas Los dispositivos de E/S pueden clasificarse según diferentes criterios: Comportamiento: Entrada (leer una vez), salida (sólo escribir, no se puede leer), o almacenamiento (puede ser releído y habitualmente reescrito) Compañero: Una persona o una máquina está en el otro extremo del dispositivo de E/S, introduciendo datos en la entrada o leyendo datos en la salida Frecuencia de datos: La frecuencia máxima a la cual pueden ser transferidos datos entre el dispositivo de E/S y la memoria principal o procesador 33 Dispositivos de Entrada/Salida Grupo Docente IyP – Departamento de Informática y Sistemas ¿Cómo se conectan los dispositivos de E/S? Las operaciones de E/S las realizan los controladores de los dispositivos. conectores Dispositivos Control Control del dispositivo dispositivo ordenador E/S 1 E/S 2 Bus 34 Ordenador Dispositivos de Entrada/Salida Grupo Docente IyP – Departamento de Informática y Sistemas Los ordenadores no serían de utilidad si no pudieran intercambiar información con el exterior. La idea básica es transferir información entre memoria y los dispositivos de entrada/salida. Sistemas de E/S separados. Existen 3 formas de controlar un periférico: Por consulta Periódicamente la CPU consulta al controlador de dispositivo si tiene datos y se le envían comandos. Por interrupción Cuando el dispositivo quiere comunicar algo, el controlador interrumpe a la CPU. El número de interrupción se establece para saber de qué dispositivo se trata. DMA (Direct Memory Access) La información se transmite directamente de memoria a periférico (y viceversa) sin intervención de la CPU excepto al principio y final de la transmisión. 35 Dispositivos de Entrada/Salida Grupo Docente IyP – Departamento de Informática y Sistemas Permiten introducir información en el ordenador. La información se convierte en bits. Teclado Dispositivos de captura de imágenes: Cámaras (Video, Foto digital, Webcam) Scanner Otros dispositivos: Lectores de código de barras Lectores de bandas magnéticas Micrófonos Dispositivos apuntadores: Ratón Joystick Tabla digital 36 Dispositivos de Entrada Grupo Docente IyP – Departamento de Informática y Sistemas 37 Dispositivos de Salida Grupo Docente IyP – Departamento de Informática y Sistemas Utilizados para transmitir información al exterior. Transforman las señales del PC en algo que los usuarios entiendan. Dispositivos de salidas visuales: Monitores (TRC, plasma, cristal líquido): El ordenador se comunica con el monitor a través de la tarjeta gráfica, o el chip grafico. Impresoras (matriciales, láser, chorro tinta) Plotters Dispositivos de salida sonora: Altavoces 38 Dispositivos de Salida Grupo Docente IyP – Departamento de Informática y Sistemas Monitores Impresora Plotters Altavoces 39 Dispositivos de Entrada/Salida Grupo Docente IyP – Departamento de Informática y Sistemas Router Modem (Modulador/demodulador): Elemento de comunicación que permite conectar un ordenador a la red INTERNET (permite conectar dos ordenadores entre sí a través de la red telefónica). Es el puente entre una señal digital (el PC) y una analógica (sonidos y tonos), el teléfono. Tarjeta de sonido: Digitaliza ondas sonoras introducidas a través de un micrófono o convierte archivos sonoros almacenados en formato digital en formato analógico para que puedan ser reproducidos por los altavoces. Tarjeta de red: Permiten que el ordenador se conecte a una red local. 40 Buses y Conectores Grupo Docente IyP – Departamento de Informática y Sistemas Buses Conjunto de cables (hilos, pistas) encargados de comunicar todos los módulos del ordenador entre sí. Por cada hilo o pista se puede transmitir un bit – Tipos de transmisiones: Serie: transmite varios bits por el mismo hilo uno detrás de otro Paralelo: transmite conjuntos de bits a la vez uno por cada hilo. 41 Buses y Conectores Grupo Docente IyP – Departamento de Informática y Sistemas Según el tipo de información que circula por ellos Bus de datos: transmite instrucciones y datos. Bus de direcciones: transmite direcciones de memoria. Con un bus de n hilos podemos direccionar 2n posiciones de memoria. Bus de control: transmite señales para controlar y sincronizar todos los componentes del ordenador y señales que indican el estado de los componentes. Unidad de Entrada y memoria CPU (ALU y salida control) Bus de datos Bus de sistema Bus de dirección 42 Bus de control Buses y Conectores Grupo Docente IyP – Departamento de Informática y Sistemas Según los elementos que conectan Bus local, interno o de CPU: establece un camino entre la CPU y la memoria. Los datos se transfieren a la máxima velocidad que permite el procesador. Bus de expansión o del sistema: establece un camino entre la CPU y el resto de componentes. Es más lento que el bus local 43 Buses y Conectores Grupo Docente IyP – Departamento de Informática y Sistemas 44 Buses y Conectores Grupo Docente IyP – Departamento de Informática y Sistemas Conectores externos (puertos) Puerto serie: para conectar dispositivos que envían/reciben mensajes de bit en bit (módems). Puerto paralelo: para conectar dispositivos que envían/reciben mensajes con los bits agrupados (impresoras). Puerto de teclado/ratón Puerto de video: Usado para conectar un monitor a la tarjeta de video. Puertos MIDI: para conectar dispositivos de sonido. Puerto Fireware (IEEE1394):Puede mover datos entre dispositivos a 400 megabits por segundo, o más. Puerto USB (Universal Serial Bus): transmite cientos de veces más rápido que el puerto serie del PC. Puede conectarse con hasta 127 dispositivos como fotografía digital, monitores, teclados, ratones, impresoras y escáneres. Estos dos últimos permiten conexión “en caliente”: 45 Buses y Conectores Grupo Docente IyP – Departamento de Informática y Sistemas Conectores internos Ranuras ISA: Son antiguas. Se emplean para dispositivos que no requieran una gran capacidad de transferencia de datos (modem interno) Ranuras PCI, PCI EXPRES: La mayoría de las tarjetas de expansión se fabrican para ranuras PCI. Usan el bus local que ofrece una vía de comunicación directa con el procesador. Aquí se conectan dispositivos como las tarjetas de sonido y video. 46 Buses y Conectores Grupo Docente IyP – Departamento de Informática y Sistemas Tecnología inalámbrica Las redes locales inalámbricas (WLAN) son un sistema de comunicación que transmite y recibe datos utilizando ondas electromagnéticas, en lugar del par trenzado, coaxial o fibra óptica utilizados en las LAN convencionales y que proporciona conectividad inalámbrica de igual a igual (peer to peer), dentro de un edificio, de una pequeña área residencial/urbana o de un campus universitario. Se componen fundamentalmente de dos tipos de elementos: puntos de acceso y dispositivos de cliente. Ventajas: No necesitan licencia para instalación Libertad de movimientos Deventajas: Velocidad de transmisión más baja que las LAN cableadas Menos seguras. Requieren encriptación Bluetooth: Pocos metros Wi-Fi (802.11b IEEE): Hasta 100m. 47 Referencias Grupo Docente IyP – Departamento de Informática y Sistemas Capítulos 1 y 14 de Introducción a la informática, A. Prieto Espinosa, A. Lloris Ruiz, J.C. Torres Cantero, McGraw-Hill, Madrid (1989) Funcionamiento del ordenador (Univ. De Navarra) Capítulo 1 de Una introducción a la programación. Un enfoque algorítmico. J. García Molina et al., Thomson, 2005. Ejemplo de funcionamiento del ábaco Wikipedia 48 Módulo 2. Grupo Docente IyP – Departamento de Informática y Sistemas Fundamentos de Computadores Informática y Programación Escuela de Ingenierías Industriales y Civiles Curso 2019/2020 1 CONTENIDO Grupo Docente IyP – Departamento de Informática y Sistemas Tema 1. Introducción y conceptos básicos Tema 2. Representación de la información Tema 3. Hardware. Tema 4. Software. 2 Introducción Grupo Docente IyP – Departamento de Informática y Sistemas Recordemos nuevamente la definición de ordenador: “Computadora, computador u ordenador es una máquina 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 la propia computadora.” Recordemos también el concepto de dato Los 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 ser objeto de tratamiento. 3 Introducción Grupo Docente IyP – Departamento de Informática y Sistemas Los ordenadores aparecieron en primer lugar como máquinas para realizar cálculos (del latín calculus, que significa contar con piedras), para dicha tarea los humanos empleamos el sistema decimal que hace uso de diez símbolos. ¿Por qué el sistema decimal? Contando con los diez dedos: La tecnología electrónica que utilizan los ordenadores sólo permite distinguir dos estados diferentes: encendido y apagado. El sistema de numeración de dos estados o valores se denomina 4 binario, y los dos dígitos que emplea son el 0 y el 1. Siendo el bit (binary digit) la unidad de información más elemental. Introducción Grupo Docente IyP – Departamento de Informática y Sistemas La información en los ordenadores se almacena y procesa haciendo uso de la codificación basada en el sistema de numeración binario. Tanto en la entrada como en la salida de datos, se efectúan las transformaciones de código oportunas, codificación y decodificación respectivamente, para que la información sea comprendida por el usuario. Codificación: transformación de elementos de un conjunto en elementos de otro conjunto siguiendo un método determinado, de tal forma que posteriormente se pueda efectuar el proceso inverso de decodificación 5 Introducción Grupo Docente IyP – Departamento de Informática y Sistemas Los ordenadores realizan las operaciones con información representada en forma digital, es decir que tienen valores discretos. Durante muchos años, las aplicaciones de la electrónica digital se limitaba a los sistemas informáticos. Hoy en día, la tecnología digital tiene aplicación en prácticamente todas las áreas. La información antes de ser procesada por un ordenador debe codificarse en términos comprensibles para la máquina, es decir, debe convertirse al formato binario, para obtener su código (un grupo de bits) correspondiente. Los códigos permiten representar: - números - símbolos - caracteres alfanuméricos - instrucciones - cualquier otro tipo de información 6 Introducción Grupo Docente IyP – Departamento de Informática y Sistemas Por homogeneidad se utiliza un número fijo de bits como unidad de información. Un byte es el número de bits necesarios para almacenar un carácter, y en general se asume que son 8 bits. La cantidad de memoria de un ordenador o de un dispositivo de almacenamiento se describe empleando múltiplos de 8. 1 Kilobyte (KB) = 103 bytes ≈ 210 Bytes = 1024 bytes = 1 Kibibyte (KiB) 1 Megabyte (MB) = 106 bytes ≈ 220 Bytes = 1024 Kibibytes = 1 Mebibyte (MiB) 1 Gigabyte (GB) = 109 bytes ≈ 230 Bytes = 1024 Mebibytes = 1 Gibibyte (GiB) 1 Terabyte (TB) = 1012 bytes ≈ 240 Bytes = 1024 Gibibyte = 1 Tebibyte (TiB) 1 Petabyte (PB) = 1015 bytes ≈ 250 Bytes = 1024 Tebibytes = 1 Pebibyte (PiB) Exabyte, Zettabyte, Yottabyte Dos sistemas alternativos: el sistema internacional, basado en potencias de 10, y el ISO/EIC-80000-13, donde se usan potencias de dos. 7 tamaño de la memoria Dos sistemas para cuantificar el Grupo Docente IyP – Departamento de Informática y Sistemas 8 Sistemas de numeración Grupo Docente IyP – Departamento de Informática y Sistemas Todos estamos familiarizados con el sistema de numeración decimal: Lo utilizamos cotidianamente. Es un sistema de representación posicional, en concreto un sistema de numeración de base 10 Un sistema de numeración en base b se caracteriza por: Disponer de un alfabeto con b símbolos o cifras. En el sistema de base 10 disponemos de 10 símbolos o cifras: S10={0,1,2,3,4,5,6,7,8,9} Todo número se expresa empleando un conjunto de dichas cifras donde el valor de cada cifra depende: De sí misma, y De la posición que ocupa Por ejemplo en el sistema de base 10 no representan el mismo número 986 9 que 869 aún cuando los símbolos utilizados son los mismos. Sistemas de numeración Grupo Docente IyP – Departamento de Informática y Sistemas Ocurre en el caso general que la interpretación de una cifra, c, es igual a una potencia de la base, b, en función de la posición. Para 986 y 869 se observa que no son iguales 986 = 9 * 102 + 8 * 101 + 6 * 100 869 = 8 * 102 + 6 * 101 + 9 * 100 La regla se extiende para números no enteros 986,21 = 9 * 102 + 8 * 101 + 6 * 100 + 2 * 10-1 + 1 * 10-2 10 Sistemas de numeración: binario Grupo Docente IyP – Departamento de Informática y Sistemas Un ordenador utiliza en sistema binario natural, binario o de base 2, que consta de dos símbolos S2={0,1} Ejemplo: Para codificar 4 símbolos, necesitamos 2 bits. Símbolo a codificar Código binario 0 00 1 01 2 10 3 11 ¿Cuántos bits son necesarios para codificar m símbolos? n bits, de modo que 2n ≥m => n >= log2(m) para 4 símbolos necesitamos 22 2 bits para 256 símbolos necesitamos 28 8 bits para 257 símbolos necesitamos 29 9 bits 11 para 512 símbolos necesitamos 210 10 bits Sistemas de numeración: binario Grupo Docente IyP – Departamento de Informática y Sistemas La conversión de binario a decimal es sencilla siguiendo la regla vista anteriormente para el sistema decimal, es decir, multiplicamos la cifra por la potencia de la base en función de la posición de dicha cifra 01101)2 = 1 * 23 + 1 * 22 + 1 * 20 = 13)10 010101,011)2 = 1 * 24 + 1 * 22 + 1 * 20 + 1 * 2-2 + 1 * 2-3 = 21 + 1/22 + 1/23 = 21 + 0,25 + 0,125 = 21,375)10 12 Sistemas de numeración: binario Grupo Docente IyP – Departamento de Informática y Sistemas Para la conversión de decimal a binario debemos tratar por separado la parte entera (método de las divisiones) y la parte fraccionaria (método de las multiplicaciones) El equivalente binario a la parte entera se obtiene dividiendo por 2 y tomando los sucesivos restos y el último cociente. El último cociente se corresponde al bit más significativo (MSB), y el primer resto al menos significativo (LSB) 116 2 13 2 0 58 2 1 6 2 0 29 2 0 3 2 1 14 2 1 1 0 7 2 1 3 2 1 1 13 13)10 = 1101)2 116)10 = 1110100)2 Sistemas de numeración: binario Grupo Docente IyP – Departamento de Informática y Sistemas La parte fraccionaria del número binario se obtiene multiplicando por dos sucesivamente, si no resulta nulo, la parte fraccionaria del número decimal. El número binario se forma con las partes enteras que se van obteniendo. Puede dar lugar a un número largo o, incluso, infinito de cifras binarias, por lo que si el número de bits para la parte fraccionaria estuviera limitado podría existir error de truncamiento. 0,1875)10 0,1875 0,375 0,75 0,5 x2 x2 x2 x2 0,3750 0,750 1,50 1,0 0,1875)10 = 0,0011)2 De esta forma para un número con parte entera (supongamos 116 de la transparencia anterior) y fraccionaria 14 116,1875)10 = 1110100,0011)2 Sistemas de numeración: binario Grupo Docente IyP – Departamento de Informática y Sistemas Ejercicios Binario a decimal 11001 01110 100111 0,10010 101101,11 110101001 10101,001 Decimal a binario 869 34,1875 7463 142,34 15 Sistemas de numeración: octal, hexadecimal Grupo Docente IyP – Departamento de Informática y Sistemas El ordenador hace además uso de Decimal Binario Hexadecimal Octal otros dos códigos, empleados como 0 0 0 0 intermedios 1 1 1 1 2 10 2 2 Hexadecimal, código de base 16 3 11 3 3 4 100 4 4 5 101 5 5 S16={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} 6 110 6 6 7 111 7 7 Octal, código de base 8 8 1000 8 10 9 1001 9 11 S8={0,1,2,3,4,5,6,7} 10 1010 A 12 11 1011 B 13 12 1100 C 14 13 1101 D 15 14 1110 E 16 15 1111 F 17 16 Sistemas de numeración: octal Grupo Docente IyP – Departamento de Informática y Sistemas Para la conversión de octal (Base octal S8={0,1,2,3,4,5,6,7}) a decimal puede emplearse una técnica análoga a los números en base diez (métodos divisiones y multiplicaciones). Conversión de octal a decimal Número: 432)8 Valor: 4 * 82 + 3 * 81 + 2 * 80 = 282)10 Conversión de decimal a octal, métodos de las divisiones, (y nos quedamos con los restos) y multiplicaciones (nos quedamos con la parte entera) con divisor y multiplicador 8 Número: 234,1285)10 Valor: 352,10162540…)8 17 Sistemas de numeración: octal Grupo Docente IyP – Departamento de Informática y Sistemas Sin embargo es más sencillo aplicar un esquema Binario Octal aprovechando que la base es potencia de 2, b=8=23 000 0 Conversión de binario a octal: Cada cifra octal se 001 1 corresponde con un grupo de tres cifras binarias, y a la 010 2 inversa cada grupo de tres cifras binarias se corresponde 011 3 con un cifra octal. Podemos agrupar de 3 en 3 y 100 4 transformar mediante tabla de conversión. 101 5 110 6 111 7 10100101,1101)2 010 100 101 , 110 100)2 2 4 5 , 6 4)8 Conversión de octal a binario, utilizar tabla de conversión para cada cifra de forma similar 18 Número: 3245,765)8 Valor: 011010100101,111110101)2 Sistemas de numeración: hexadecimal Grupo Docente IyP – Departamento de Informática y Sistemas Para las conversiones entre hexadecimal (Base Decimal Hexadecimal hexadecimal S16={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}): 0 0 1 1 2 2 Conversión de hexadecimal a decimal, sumar los pesos (2n) de las posiciones en las que hay un 1. 3 3 4 4 Número: 857A)16 5 5 Valor: 8*163 + 5*162 + 7*161 + A*160 = 34170)10 6 6 7 7 8 8 Conversión de decimal a hexadecimal, métodos de las 9 9 divisiones y multiplicaciones con divisor y multiplicador 16 10 A Número: 234)10 Valor: EA)16 11 B 12 C 13 D 14 E 19 15 F Sistemas de numeración: hexadecimal Grupo Docente IyP – Departamento de Informática y Sistemas Para las conversiones del sistema hexadecimal Binario Hexadecimal (S16={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}) a binario 0000 0 0001 1 De nuevo es más sencillo aplicar un esquema 0010 2 aprovechando que la base es potencia de 2, 0011 3 b=16=24 0100 4 Cada cifra hexadecimal se corresponde con un 0101 5 grupo de cuatro cifras binarias, y a la inversa 0110 6 cada grupo de cuatro cifras binarias se 0111 7 corresponde con un cifra hexadecimal. 1000 8 Podemos emplear la tabla en ambos sentidos. 1001 9 1010 A 1011 B 10100101,1101)2 1100 C 1101 D 1010 0101 , 1101)2 1110 E 1111 F A 5 , D)16 20 Sistemas de numeración: octal, hexadecimal Grupo Docente IyP – Departamento de Informática y Sistemas Observando la tabla, puedes buscar reglas de formación que te eviten depender de memorizar: Decimal Octal 0 000 La columna más a la derecha alterna ceros y 1 001 unos. 2 010 La inmediatamente a su izquierda, la segunda, 3 011 alterna de dos en dos. 4 100 5 101 La tercera de cuatro en cuatro (22) 6 110 La cuarta (para el código hexadecimal) de ocho 7 111 en ocho (23) 21 Sistemas de numeración: octal, hexadecimal Grupo Docente IyP – Departamento de Informática y Sistemas Para convertir entre octal y hexadecimal: Conversión de hexadecimal a octal, se convierte cada cifra del número a binario y luego se transforma a octal agrupando las cifras de 3 en 3 mediante tabla de conversión Número: AF,16C16) ➔ en binario 1010 1111,0001 0110 1100)2 Agrupamos de 3 en 3: 010 101 111,000 101 101 100 Valor: 257,0554)8 Conversión de octal a hexadecimal, se utiliza también la transformación intermedia en base 2. Número: 257,0554)8 ➔ en binario 010 101 111,000 101 101 100)2 Agrupamos de 4 en 4: 1010 1111,0001 0110 1100 22 Valor: AF,16C)16 Sistemas de numeración: octal, hexadecimal Grupo Docente IyP – Departamento de Informática y Sistemas Ejercicios Octal a binario 2067 14267 Hexadecimal a binario 2D5E Octal a decimal 3261 Hexadecimal a decimal A912,C Binario a octal y hexadecimal 11001 110101001 Convierte a las otras bases 1010110101)2 y 10101,11001)2 376,765)10 5AC3)16 y F743)16 23 0523)8 y 6455)8 Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Operaciones aritméticas en código binario. Las tablas de sumar y restar son: a b a+b 110101 0 0 0 +101001 0 1 1 1011110 1 0 1 1 1 0 y me llevo 1 a b a-b 0 0 0 110101 -101001 0 1 1 y debo 1 001100 1 0 1 1 1 0 24 Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Cuando la suma de dos dígitos excede los símbolos numéricos disponibles en la notación, se lleva un 1 (acarreo) a la posición de dígito inmediatamente superior. 1 1 1 1 1010 101010 00111001 = 57 +101 +001001 +00100011 = 35 1111 110011 01011100 = 92 11 1 11 1 1111 10111000 = 184)10 +111 +00111011 = 59)10 10110 11110011 = 243)10 25 Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Para realizar la resta se puede utilizar la tabla de la suma contando hacia atrás (descontando). Cuando la resta de dos dígitos excede (por debajo) los símbolos numéricos disponibles en la notación, se realiza un pedido o deuda de 1 a la posición de dígito inmediatamente superior. 1 1 11 110101 1100011 -101001 -101001 001100 0111010 26 Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Otra técnica eficiente para realizar sustracciones consiste en sumar al minuendo el complemento a 1 del sustraendo. El complemento a 1 de un número N, es el número que resulta de restar cada una de las cifras de N a la base menos uno del sistema de numeración que se esté utilizando. Es equivalente a intercambiar unos y ceros. Así el complemento a 1 de 1011 es 0100. Podemos restar dos números sumando al minuendo el complemento a 1 del sustraendo. Si hubiera un acarreo final, ese dígito se descarta y se suma al resultado así obtenido. 27 Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Veamos un ejemplo: minuendo 1. Si la cantidad de dígitos del sustraendo es menor 100011.101 que la del minuendo, se completa el sustraendo -10101.000 sustraendo con ceros a la izquierda de la parte entera, y a la derecha de la parte decimal (encolumnar por la coma) 111111.111 2. Se halla el complemento del sustraendo, -010101.000 restando este valor del máximo valor binario con 101010.111 complemento la misma longitud del minuendo, cambiar 0 por 1 y 1 por 0. 100011.101 3. Se suma el minuendo al complemento del +101010.111 sustraendo 1)001110.100 4. Se elimina el 1, acarreo, de la izquierda y se suma 001110.100 con el dígito más a la derecha del resultado, sin + 1 28 importar la coma decimal. 001110.101 resultado Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Las comprobaciones pueden realizarse 100011.101 = 35.625)10 convirtiendo a decimal las cifras del minuendo -10101.000 = 21)10 y del sustraendo y realizando la resta. 1110.101 = 14.625)10 Otro modo de controlar el resultado es sumar el resultado al sustraendo, debiendo obtenerse 1110.101 el minuendo +10101.000 100011.101 29 Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Las tablas de multiplicar y dividir en binario a b axb 110101 x 10 0 0 0 000000 0 1 0 110101 1 0 0 1101010 1 1 1 110101 101 a b a/b - 101 1010,1… 0 0 indeterminado 00110 0 1 0 - 101 1 0 infinito 00110 30 1 1 1 - 0101 0001 … Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Operaciones aritméticas en código octal: Tabla de sumar. + 0 1 2 3 4 5 6 7 0 0 1 2 3 4 5 6 7 1 1 2 3 4 5 6 7 10 2 2 3 4 5 6 7 10 11 3 3 4 5 6 7 10 11 12 4 4 5 6 7 10 11 12 13 5 5 6 7 10 11 12 13 14 6 6 7 10 11 12 13 14 15 7 7 10 11 12 13 14 15 16 1 1 31 4 1 6 3 + 7 5 2 0 1 3 7 0 3 Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Operaciones aritméticas en código hexadecimal: Tabla de sumar. + 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 0 1 2 3 4 5 6 7 8 9 A B C D E F 1 1 2 3 4 5 6 7 8 9 A B C D E F 10 2 2 3 4 5 6 7 8 9 A B C D E F 10 11 3 3 4 5 6 7 8 9 A B C D E F 10 11 12 4 4 5 6 7 8 9 A B C D E F 10 11 12 13 5 5 6 7 8 9 A B C D E F 10 11 12 13 14 6 6 7 8 9 A B C D E F 10 11 12 13 14 15 7 7 8 9 A B C D E F 10 11 12 13 14 15 16 8 8 9 A B C D E F 10 11 12 13 14 15 16 17 9 9 A B C D E F 10 11 12 13 14 15 16 17 18 A A B C D E F 10 11 12 13 14 15 16 17 18 19 B B C D E F 10 11 12 13 14 15 16 17 18 19 1A C C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B D D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C E E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D F F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 11 1 11 6AE 9654 = 38484 8F97.F00 32 +1FA +4528 = 17704 +D44C.F9E 8A8 DB7C = 56188 163E4.E9E Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Suma en código octal y hexadecimal. Una manera sencilla de realizar la suma en octal y hexadecimal es usando el método del reloj. Consiste en ordenar todos los símbolos en un círculo, de menor a mayor como en un reloj. Para realizar la suma se procede de la siguiente manera: 1. Posicionarse en el lugar correspondiente al primer sumando. 2. Desplazarse en el sentido de las agujas del reloj, avanzando tantas posiciones como lo indique el segundo sumando. 3. El resultado de la suma será la última posición a la que se llegue. 4. Cuando al sumar se supere el valor del último dígito del sistema de numeración, se produce un acarreo y debe añadirse una unidad a la posición inmediata superior. 33 Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Suma en código hexadecimal. 34 Sistemas de numeración: aritmética 6204,02 Grupo Docente IyP – Departamento de Informática y Sistemas Minuendo La resta en código octal (en hexadecimal es análoga) - 5173 Sustraendo podemos aplicar la técnica del complemento 1. Si la cantidad de dígitos del sustraendo es menor que la del minuendo, se completa el sustraendo con ceros a la izquierda de la parte entera, y a la derecha de la parte decimal (encolumnar por la coma) 2. Se halla el complemento del sustraendo, restando este valor del máximo valor octal con la misma longitud del 7777,77 minuendo - 5173,00 2604,77 Complemento 3. Se suma el minuendo al complemento del sustraendo 4. Se elimina el posible acarreo de la izquierda, 6204,02 sumándose al dígito más a la derecha, sin importar la + 2604,77 coma decimal. 11011,01 + 1 1011,02 resultado 35 Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas La resta hexadecimal sigue las mismas reglas que la resta decimal y binaria, con la salvedad que un pedido de 1 en la notación hexadecimal representa el número decimal 16. Usando el método del reloj se procede de la siguiente manera: 1. Posicionarse en el símbolo correspondiente al minuendo 2. Desplazarse en el sentido contrario a las agujas del reloj la cantidad de veces indicada por el sustraendo. 3. El resultado de la resta será la última posición a la que se llegue. 4. Cuando al restar se llega a un valor inferior a 0, se realiza un pedido y se debe restar una unidad a la posición inmediata superior. 36 Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Resta en código hexadecimal. 37 Sistemas de numeración: aritmética Grupo Docente IyP – Departamento de Informática y Sistemas Ejercicios Operaciones aritméticas 1110101)2 + 1010010)2 1110101)2 - 1010010)2 1110101)2 * 101)2 1110101)2 / 10)2 456)8 + 22)8 98)16 + 7)16 76)8 – 32)8 22)10 + 1001)2 + 32)8 + FF)16 El complemento a 1 del número binario es: 0101 0111 1011. ¿Cuál es el número expresado en hexadecimal? Convierte los números 239)10 y 37)10 a código binario, octal y 38 hexadecimal. Posteriormente realiza la suma y la resta de los mismos en código binario. Representación de datos Grupo Docente IyP – Departamento de Informática y Sistemas Conocidos los internos códigos que emplea un ordenador, es interesante describir el modo en que distintas entidades u objetos se codifican empleando dichos códigos. Las entidades que consideraremos brevemente serán: Texto o Alfanuméricos Valores numéricos ASCII BCD Unicode Coma fija Decimal desempaquetado Decimal empaquetado Sonidos Binario puro Signo y módulo Imágenes Complemento a uno Mapa de bits Complemento a dos Vectorial Coma flotante 39 Representación de datos: alfanuméricos Grupo Docente IyP – Departamento de Informática y Sistemas Los principales caracteres alfanuméricos utilizados son: Alfabéticos: A, B, C, D, E,..., X ,Y, Z, a, b, c, d,..., x, y, z Numéricos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Especiales: ) ( , * / ; : + Ñ ñ = ! ?. " & > # < ] Ç [ SP De control: Por ejemplo el fin de línea Gráficos: ♣♦♥♠αβ⌠⌡∑ Los códigos de texto son la traducción de estos caracteres a conjuntos de bits. El número de bits necesario, n siendo un valor entero, depende del número de caracteres distintos que se desea se puedan representar. Con dos bits podemos representar 4 caracteres, con 8 256, etc. n>=log2 número de caracteres 40 Representación de datos: alfanuméricos Grupo Docente IyP – Departamento de Informática y Sistemas El código más frecuente utiliza 7 bits y se conoce como ASCII (American Standard Code for Information Interchange). El código ASCII surgió originalmente como estandarización en 7 bits de varias codificaciones especiales y luego se extendió a una codificación de 8 bits. Se usa especialmente para la transmisión de datos y ha sido adoptado actualmente por la gran mayoría de los fabricantes de teclados. Utiliza únicamente 7 bits para la representación de los datos y están almacenados justificados por la derecha dentro de un campo estándar de 8 bits. El octavo bit se utiliza para la paridad de los anteriores. Unicode (16 bits): Moderno, desarrollado como estándar. Es una ampliación del código ASCII de 8 bits para poder codificar distintos juegos de caracteres (latino, griego, árabe, kanji, cirílico, etc…) 41 Representación de datos: alfanuméricos Grupo Docente IyP – Departamento de Informática y Sistemas Existen ampliaciones para incorporar caracteres de distintas lenguas. Pero no son suficientes para considerar también caracteres no latinos, por ello ha surgido Unicode que con 16 bits representa 65536 caracteres. 42 Representación de datos: valores numéricos Grupo Docente IyP – Departamento de Informática y Sistemas Valores numéricos Los valores numéricos se transmiten a través de las unidades E/S como alfanuméricos. La representación alfanumérica no es válida para operar. Antes de operar se transforman a su correspondiente valor en base 2 Hay muchas maneras de representar datos numéricos en forma binaria. Directamente el número en base 2, denominada representación binaria directa. Otras codificaciones: BCD, coma fija, coma flotante 43 Representación de datos: valores numéricos Grupo Docente IyP – Departamento de Informática y Sistemas BCD: Codifica los números decimales dígito a dígito. A Binario BCD esta codificación, que requiere 4 bits por cada dígito 0000 0 decimal, se le llama codificación BCD (Binary Coded 0001 1 Decimal). 0010 2 0011 3 Se usa codificación ponderada, en la cual, se le dan a 0100 4 los bits, de izquierda a derecha, los pesos 8-4-2-1, respectivamente. Como estos pesos son precisamente 0101 5 los valores de posición en el sistema binario, un dígito 0110 6 decimal está codificado como su representación 0111 7 binaria, según la tabla. 1000 8 1001 9 Ejemplo: El número 469)10 0100 0110 1001 ➔ BCD 111010101)2 ➔ Binaria directa 4 6 9 (3 bits menos) 44 Representación de datos: valores numéricos Grupo Docente IyP – Departamento de Informática y Sistemas Coma Fija: La computadora dispone de un número finito de bits (llamado palabra) para la representación interna de los datos, lo que hace que los números reales sufran un determinado truncamiento en su parte decimal. El tamaño de la palabra depende del ordenador que se utilice y se corresponde con la cantidad de bits que es capaz de transferir en una operación de E/S. La representación en coma fija recibe su nombre de la posición en que se supone situado el punto decimal, que es una posición fija. Actualmente esta representación se utiliza sólo para números enteros suponiendo que la coma decimal fija figura implícitamente a la derecha de los dígitos. Existen tres formas de representar números en coma fija. Decimal desempaquetado, decimal empaquetado, y binario puro. 45 Representación de datos: valores numéricos Grupo Docente IyP – Departamento de Informática y Sistemas Decimal desempaquetado: Un número se almacena con un byte para cada cifra. Cada byte lleva en su cuarteto de la izquierda (denominado bits de zona) cuatro unos (F en hexadecimal) y en el de la derecha (bits de dígitos) la cifra en BCD. El cuarteto de la izquierda de la última cifra representa el signo, conteniendo 1100 (C en hexadecimal) para el (+), y 1101 (D en hexadecimal) para el (-). Ejemplo: 1992)10 1111 0001 1111 1001 1111 1001 1100 0010 F1 F9 F9 C2 - 1992)10 1111 0001 1111 1001 1111 1001 1101 0010 F1 F9 F9 D2 46 Representación de datos: valores numéricos Grupo Docente IyP – Departamento de Informática y Sistemas Decimal empaquetado: En este sistema se representa cada dígito en un cuarteto (sin bits de zona), salvo el primero por la derecha, que lleva el signo con los mismos valores que antes, conteniendo 1100 (C en hexadecimal) para el (+), y 1101 (D en hexadecimal) para el (-). Ejemplo: 199210) 0000 0001 1001 1001 0010 1100 0 1 9 9 2 C -199210) 0000 0001 1001 1001 0010 1101 0 1 9 9 2 D 47 Representación de datos: valores numéricos Grupo Docente IyP – Departamento de Informática y Sistemas Binario puro: El número se representa en una palabra, utilizando el bit de más a la izquierda para representar el signo (0 para el + y 1 para el -). Para los números positivos, el resto de los bits (N-1) representan el módulo del número. El rango de representación, para N dígitos es de: -2N-1 + 1 X 2N-1 – 1 Excepto en el Complemento a dos que es de: -2N-1 X 2N-1 – 1 Los números negativos varían en su representación según los 3 métodos siguientes Módulo y signo (MS) Complemento a uno (C1) Complemento a dos (C2) 48 Representación de datos: valores numéricos Grupo Docente IyP – Departamento de Informática y Sistemas Módulo y signo (MS): El resto de los (N-1) bits representan el módulo del número, tanto de los positivos como de los negativos. Ejemplo: 10)10 00001010 -10)10 10001010 + módulo - módulo Complemento a uno (C1): El negativo de un número se obtiene complementando todos sus dígitos (cambiando ceros por unos y viceversa) incluido el bit de signo. Ejemplo: 10)10 00001010 -10)10 11110101 + módulo - módulo 49 Representación de datos: valores numéricos Grupo Docente IyP – Departamento de Informática y Sistemas Complemento a dos (C2): El negativo de un número se obtiene en dos pasos: 1. Se complementa el número positivo en todos sus bits incluido el bit de signo (se realiza el C1 del número) 2. Al resultado obtenido en el paso anterior se le suma 1 (en binario) despreciando el último acarreo, si existe Ejemplo: 10)10 0 0001010 -10)10 11110101 ➔ C1 + módulo + 1 11110110 Su principal inconveniente es el rango de representación asimétrico. 50 Representación de datos: valores numéricos Grupo Docente IyP – Departamento de Informática y Sistemas Coma Flotante: Para representar dentro de los ordenadores números muy grandes o muy pequeños, se usa la notación científica o exponencial matemática: Número = mantisa * Base exponente En notación científica estándar, los números se expresan en la forma N = m B e = m * 10 e Ejemplos: -246,36 =-2,4636 B+2 = -2,4636 * 102 82000000000 = 8,2 B+10 = 8,2 * 1010 0,00003 = 3,0 B-5 = 3 * 10-5 51 Representación de datos: valores numéricos Grupo Docente IyP – Departamento de Informática y Sistemas En notación exponencial, un número tiene infinitas representaciones, ya que siempre es posible correr k lugares la coma a la izquierda (o derecha), simultáneamente se incrementa (o decrementa) el exponente en un valor k, sin que cambie el valor del número representado. 13257.3285 = 13257.3285·100 = 1.32573285·104= 0.132573285·105= 132573285·10-4= 13257328500·10-6= … Se toma como estándar la representación denominada normalizada, que consiste en que la mantisa no tiene parte entera y el primer dígito a la derecha del punto decimal es significativo (distinto de cero), salvo en la representación del número 0. 728.3 = 7283 * 10-1 = 728.3 * 100 = 72.83 * 101 = 7.283 * 102 = 0.7283 * 103 ➔ notación normalizada 52 Representación de datos: valores numéricos Grupo Docente IyP – Departamento de Informática y Sistemas Existen muchas formas de representación en coma flotante, según la longitud de la palabra del ordenador, el númer