RAYA CABRERA, JOSÉ LUIS / RAYA GONZÁLEZ, LAURA / MARTIN MARTINEZ, F. JAVIER / MARTIN MARTINEZ, FCO. JAVIER / GARCIA TOME, ANTONIO (Ilustración)
INTRODUCCIÓN CAPÍTULO 1. INTRODUCCIÓN A LA INFORMÁTICA DEFINICIONES BÁSICAS CÓMO MEDIR LA INFORMACIÓN CONCEPTO DE SISTEMA HISTORIA DE LA INFORMÁTICA Números e instrumentos aritméticos Grecia y la formalización del conocimiento Calculadoras mecánicas Las máquinas electrónicas TIPOS DE COMPUTADORES Supercomputadores Macrocomputadores (Mainframes) Minicomputadores Estaciones de Trabajo (Workstations) Computadoras personales (PC) Calculadoras programables PARÁMETROS PARA CARACTERIZACIÓN DE PRESTACIONES NIVELES CONCEPTUALES DE DESCRIPCIÓN DE UNA COMPUTADORA EJERCICIOS CAPÍTULO 2. REPRESENTACIÓN DIGITAL DE LA INFORMACIÓN CÓMO REPRESENTAR LA INFORMACIÓN SISTEMAS DE NUMERACIÓN USUALES EN INFORMÁTICA Sistema de numeración en base dos Sistemas octal y hexadecimal Conversiones entre sistemas de numeración Operaciones aritméticas con variables binarias REPRESENTACIÓN DIGITAL DE DATOS NUMÉRICOS Enteros sin signo Enteros en signo y magnitud Enteros en complemento a uno Enteros en complemento a dos Enteros en exceso a M Datos enteros representados con dígitos decimales codificados en binario (BCD) Datos reales representados en coma flotante Códigos alfanuméricos REPRESENTACIÓN DE SONIDOS REPRESENTACIÓN DE IMÁGENES REPRESENTACIÓN DIGITAL DE VÍDEO COMPACTACIÓN DE LA INFORMACIÓN Codificación diferencial Codificación según frecuencia de uso REPRESENTACIONES REDUNDANTES EJERCICIOS CAPÍTULO 3. DISEÑO DE CIRCUITOS ELECTRÓNICOS DIGITALES SISTEMAS DIGITALES ÁLGEBRA DE BOOLE Postulados del Álgebra de Boole Principio de Dualidad Teoremas del Álgebra de Boole Funciones de conmutación Representación de una función de conmutación PUERTAS LÓGICAS Tablas de verdad Puerta lógica Y (AND) Puerta lógica O (OR) Puerta lógica NO (NOT) Puertas lógicas NO-Y (NAND) y NO-O (NOR) Puerta lógica O-EX (XOR) Puerta lógica NO-EX (NXOR) Niveles y densidad de integración SIMPLIFICACIÓN DE FUNCIONES LÓGICAS Método algebraico de simplificación MAPAS DE KARNAUGH (k) Pasos del método de Karnaugh para la simplificación de funciones lógicas Ejemplo de simplificación usando mapas de Karnaugh SISTEMAS COMBINACIONALES Circuitos aritméticos Codificación, decodificación y transcodificación Demultiplexor Multiplexor Comparador SISTEMAS SECUENCIALES Clasificación de los sistemas secuenciales Elementos básicos de memoria: biestables Subsistemas secuenciales EJERCICIOS CAPÍTULO 4. ARQUITECTURA DEL COMPUTADOR ARQUITECTURA BÁSICA DEL HARDWARE ESTRUCTURA BÁSICA DE UN COMPUTADOR La Unidad Aritmético-Lógica (ALU) La Unidad de Control (UC) La memoria Buses del sistema Estructuras de interconexión INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR Instrucciones Modos de direccionamiento Tipos de instrucciones Ejemplo de programa en ensamblador EJERCICIOS CAPÍTULO 5. PERIFÉRICOS DEFINICIÓN Y OBJETIVOS DE LOS PERIFÉRICOS ENTRADA Y SALIDA Estructura del controlador E/S Direccionamiento de la E/S CONEXIÓN DE LOS PERIFÉRICOS A LAS UNIDADES CENTRALES DISPOSITIVOS DE ENTRADA Teclado Apuntadores Detectores de posición Ópticos Sonoros Magnéticos Sistemas de adquisición de datos analógicos DISPOSITIVOS DE SALIDA Soporte electrónico Impresión gráfica Soporte lumninoso Soporte sonoro Dispositivos robóticos y periféricos industriales DISPOSITIVOS DE ENTRADA Y SALIDA Soporte electrónico Tarjeta de sonido Terminales tontos e inteligentes, terminales punto de venta y cajeros automáticos Tarjetas de comunicación Detectores de caracteres magnetizables Dispositivos E/S de realidad virtual DISPOSITIVOS DE ALMACENAMIENTO Soporte magnético Soporte óptico EJERCICIOS CAPÍTULO 6. SISTEMAS OPERATIVOS CONCEPTO DE SISTEMA OPERATIVO FUNCIONES DEL SISTEMA OPERATIVO EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS Generación Cero (década de 1940) Primera Generación (década de 1950) Segunda Generación (hasta la mitad de la década de los sesenta) Tercera Generación (desde la mitad de la década de los sesenta hasta la mitad de la de los setenta) Cuarta Generación (desde la mitad de la década de los setenta en adelante) CLASIFICACIONES DE LOS SISTEMAS OPERATIVOS Por su estructura interna Por los modos de explotación Por los servicios ofrecidos Por la forma de ofrecer los servicios ELEMENTOS Y ESTRUCTURA DE UN SISTEMA OPERATIVO Capa 1: Kernel Capa 2: Gestor de E/S básica Capa 3: Gestor de Memoria (asignación y manejo de memoria) Capa 4: Gestor de Dispositivos de Almacenamiento (Sistema de Ficheros) Capa 5: Intérprete del Lenguaje de Comandos (Shell) PROGRAMAS, PROCESOS Y HEBRAS O HILOS (THREADS) MULTIPROGRAMACIÓN Algoritmos de planificación Planificación de CPU en sistemas multiprocesador Sincronización de procesos INTERBLOQUEOS GESTIÓN DE MEMORIA Particiones estáticas Particiones dinámicas Segmentación Memoria virtual Paginación GESTIÓN DE ENTRADA/SALIDA GESTIÓN DE ARCHIVOS Sistemas de Ficheros (File Systems) SISTEMAS OPERATIVOS MODERNOS Sistemas operativos multiprocesador: paralelos y distribuidos Modelo Cliente/Servidor Unix Linux MS-DOS y Windows EJERCICIOS CAPÍTULO 7. REDES DE COMPUTADORES QUÉ ES UNA RED UN MODELO PARA LA COMUNICACIÓN COMPONENTES DE UNA RED CLASIFICACIÓN DE LAS REDES TOPOLOGÍAS Configuración en bus Configuración en anillo Configuración en estrella Configuración mixta en estrella/bus Topología física y lógica PROTOCOLOS DE COMUNICACIÓN Y ESTÁNDARES CONCEPTOS BÁSICOS DE LA TRANSMISIÓN Tipos de transmisión Medios de transmisión Codificación de datos Ruido y capacidad de transmisión de un canal PROTOCOLOS DE REDES Niveles OSI Protocolos a nivel de enlace de datos Familia de protocolos TCP/IP Direcciones IP INTERFACES DE RED E INTERCONEXIÓN DE REDES Tarjeta de red Repetidores y amplificadores Concentradores de cableado Conmutadores Puentes Encaminadores o routers Puertas de enlace o gateways Redes troncales REDES PÚBLICAS Y PRIVADAS Redes públicas en España Internet: la red de redes Intranets y Extranets EJERCICIOS CAPÍTULO 8. LENGUAJES DE PROGRAMACIÓN Y ALGORITMIA LENGUAJES DE PROGRAMACIÓN Historia de los lenguajes de programación Atributos de un buen lenguaje de programación Clasificación de los lenguajes de programación EL PROCESO DE LA TRADUCCIÓN Modelos formales de traducción Compiladores e intérpretes TIPOS Y ESTRUCTURAS DE DATOS Recursividad Arrays Registros y Punteros Listas Pilas Colas Grafos Árboles ALGORITMIA Notaciones para los algoritmos Algoritmos voraces Algoritmos Divide y Vencerás Algoritmos de exploración de grafos EJERCICIOS CAPÍTULO 9. FICHEROS Y BASES DE DATOS CONCEPTO DE FICHERO Terminología básica Operaciones sobre ficheros
La informática es una disciplina que puede ser clasificada como ciencia, puesto que aplica el método científico para establecer sus principios, pero también utiliza las prácticas de la tecnología para el desarrollo de procesos y técnicas que permitan automatizar de forma eficiente la resolución de los problemas con los que se enfrenta. Se puede considerar que la informática es el arte de automatizar la resolución de problemas, estos problemas pueden ser tan sencillos como realizar una ordenación alfabética o tan complejos como el reconocimiento de voz o la toma de decisiones empresariales; en definitiva, cualquier problema puede ser abordado con mayor o menor grado de éxito. Una vez expuesto el objetivo de la informática, la pregunta es ¿cómo funcionan los aparatos basados en ella? En esencia, la parte física, que nosotros llamamos hardware y que los anglófonos denominan con la misma palabra que utilizan para "ferretería", es una máquina de calcular sofisticada que funciona por el sistema binario (0 y 1). La parte lógica está formada por una compleja maraña de instrucciones que algún ser humano (programador o equipo de desarrollo) ha escrito, haciendo uso de la abstracción, para resolver el problema planteado. Este libro está planteado para lectores que comienzan a interesarse por la informática y, por ello, al comenzar cada capítulo no se presuponen conocimientos previos sobre el tema a tratar. Se abordan conceptos relativos a la estructura de un computador (representación de la información, circuitos lógicos, arquitectura y periféricos), sistemas operativos y redes, y temas referentes a la forma de desarrollar aplicaciones informáticas (lenguajes de programación y algoritmia, bases de datos, ingeniería del software, inteligencia artificial y tolerancia a fallos). Por la profundidad con que se han tratado los temas el libro es adecuado para estudiantes universitarios de todas las carreras donde exista una asignatura de introducción a la informática; así mismo, y gracias a los numerosos ejemplos y ejercicios prácticos incluidos, puede ser utilizado por cualquier persona que quiera iniciarse en ella o ampliar conocimientos de forma autodidacta. Contiene un CD-ROM con el glosario de los términos empleados a lo largo de la obra, apuntes, utilidades y herramientas software.