Arquitectura de Computadores (obligatoria) Profesores responsables: Pau Micó Tormos (teoría y prácticas) Despacho: F4D1 Créditos: 6 (4.5 Teoría + 1.5 Prácticas) Semestre: 3A Número de grupos de aula: 1 grupo Número de grupos de prácticas: 1 grupo Objetivos: Ampliar el conocimiento sobre las unidades funcionales del computador adquirido en la asignatura Fundamentos de Computadores, dándole un enfoque práctico con ejemplos de la vida real. Conocer la estructura y funcionamiento de los sistemas operativos y sus implicaciones en la gestión y el aprovechamiento de las unidades funcionales del computador. Adquirir destreza en el manejo del sistema operativo UNIX. Conocer la arquitectura de los computadores superescalares y de los supercomputadores actuales Contenidos resumidos: Bloque 1: Sistemas Operativos. Tema 1: Introducción a los Sistemas Operativos. Tema 2: Introducción a UNIX. Bloque 2: Arquitectura de un Computador. Tema 3: Introducción a la Arquitectura de un Computador. Tema 4: Microprocesadores avanzados. Tema 5: El subsistema de Memoria. Tema 6: El subsistema de Entrada/Salida. Tema 7: Computadores superescalares Tema 8: Multiprocesadores Contenidos detallados: Tema 1: Introducción a los Sistemas Operativos. 1. Qué es un Sistema Operativo. 2. Evolución histórica de los Sistemas Operativos. 2.1. Los primeros sistemas. 2.1.1. La máquina desnuda. 2.1.2. El procesamiento serie. 2.2. Sistemas por lotes (Batch). El monitor residente. 2.3. Procesamiento Off-line. 2.4. Spooling. 2.5. Multiprogramación. 2.6. Sistemas de tiempo compartido. 2.7. Tendencias actuales. 3. Componentes de un Sistema Operativo actual. 3.1. Gestor de procesos. 3.2. Gestor de memoria. 3.3. Gestor de ficheros. 3.4. Gestor del sistema de Entrada/Salida. 3.5. Gestor de la red.
3.6. Sistema de protección. 3.7. Intérprete de órdenes (Shell). 4. Llamadas y programas del sistema. 5. Estructura del sistema. 6. El núcleo. 6.1. Introducción. 6.2. Flujo general de ejecución del Sistema Operativo. 6.3. Planificación de procesos. 6.3.1. Introducción. 6.3.2. Algoritmos de planificación. 6.3.2.1. Algoritmos no expulsivos. 6.3.2.1.1. FCFS (First Come First Served). 6.3.2.1.2. SJF (Shortest Job First). 6.3.2.1.3. Prioridades no expulsivo. 6.3.2.2. Algoritmos expulsivos. 6.3.2.2.1. Prioridades expulsivo. 6.3.2.2.2. Round-Robin. 6.3.2.2.3. Planificación con múltiples colas. 6.3.2.2.4. Planificación con múltiples colas realimentadas. 6.3.2.3. Planificación en UNIX. 6.3.2.4. Ejercicios de planificación. Tema 2: Introducción a UNIX. 1. Historia de UNIX. 1.1. Qué es UNIX? 1.2. Características. 2. El sistema de ficheros. 2.1. Ficheros. 2.2. Directorios. 2.3. Ficheros especiales. 2.4. Montaje de directorios. 3. Los procesos en UNIX. 3.1. Concepto de proceso. 3.2. Atributos de un proceso. 3.3. Creación de procesos y ejecución de programas. 3.4. Redirecciones de Entrada/Salida y comunicación entre procesos. 4. El sistema de protección en UNIX. 4.1. Concepto de protección. 4.2. Reglas de protección. 5. Estructura y programas del sistema en UNIX. 6. El intérprete de órdenes (Shell). Tema 3: Introducción a la Arquitectura de un Computador. 1. Elementos esenciales de un computador. 2. Interconexión de los bloques funcionales. 3. Principios de funcionamiento. 4. Sistemas de descripción de computadores. 4.1. Niveles estructurales (Bell y Newell). 4.2. Niveles de interpretación (Levy). 4.3. Niveles conceptuales (Blaauw). 5. Conceptos de Estructura y Arquitectura de computadores. 6. Clasificación de las arquitecturas. 6.1. Arquitecturas serie. 6.2. Arquitecturas paralelas.
Tema 4: Procesadores Segmentados. 1. Introducción. 1.1. Arquitecturas RISC y CISC. 1.2. Unidad de Control monociclo y multiciclo. 2. Ruta de datos. 3. Control segmentado. 4. Riesgos de la segmentación. 4.1. Riesgos estructurales. 4.2. Riesgos por dependencia de datos. 4.3. Riesgos de control 5. Segmentación en los operadores aritmético-lógicos. Tema 5: El subsistema de Memoria. 1. Gestión de la memoria. 1.1. Requisitos de la gestión de memoria 1.2. Particiones estáticas 1.3. Algoritmo de ubicación con particiones 1.4. Particiones dinámicas 1.5. Algoritmo de ubicación con particiones dinámicas 1.6. Sistema de colegas 1.7. Reubicación, direcciones y registros 1.8. Paginación 1.9. Segmentación 2. Memoria Virtual. 2.1. Estructuras de hardware y de control 2.2. Ejecución de un programa 2.3. Tipos de memoria 2.4. Hiperpaginación 2.5. Localidad o cercanía 2.6. Paginación 2.7. Segmentación 2.8. Políticas de lectura y reemplazo 2.9. Políticas de vaciado y control de carga 2.10. Suspensión de procesos 3. Ejemplos Tema 6: El subsistema de Entrada/Salida. 1. Gestión de la E/S. 1.1. Categorías de dispositivos de E/S 1.2. Diferencias entre las clases de dispositivos 1.3. Técnicas de E/S 1.4. Evolución de las funciones de la E/S 1.5. Acceso directo a memoria (DMA) 1.6. Aspectos de diseño 1.7. Almacenamiento intermedio de la E/S 2. Planificación de discos 2.1. Parámetros de rendimiento del disco 2.2. Políticas de planificación del disco 2.3. Algoritmos de planificación del disco 3. Ejemplos
Tema 7: Computadores superescalares. 1. Operaciones multiciclo 2. Tipos de dependencias 3. Gestión dinámica de instrucciones 3.1. Algoritmo de Tomasulo 4. Aumento de prestaciones 4.1. Procesadores superescalares 4.2. Procesadores VLIW 4.3. Procesadores supersegmentados 5. Ejemplo: El microprocesador Pentium IV. Tema 8: Multiprocesadores. 1. Conceptos y Clasificación 2. Multiprocesadores Simétricos (SMP) 2.1. Coherencia de cache 3. Multiprocesadores escalables de memoria compartida (SSMP) 4. Multiprocesadores escalables de memoria distribuida (DSMP) 5. Redes de estaciones de trabajo (NOW) Prácticas: BLOQUE 1: Sistema Operativo UNIX. Práctica 1: El Shell del Sistema Operativo UNIX (I). Práctica 2: El Shell del Sistema Operativo UNIX (II). Práctica 3: El Shell del Sistema Operativo UNIX (III). El editor vi. Práctica 4: El Shell de UNIX como lenguaje de programación (I). Práctica 5: El Shell de UNIX como lenguaje de programación (II). BLOQUE 2: Arquitectura de Computadores Práctica 6: Planificación de Procesos. Práctica 7: Repaso del lenguaje ensamblador (MIPS2000). Práctica 8: Simulación de un Procesador Segmentado (DLX). Práctica 9: Gestión de la Memoria: Simulación de técnicas de paginación por demanda. Práctica 10: Estructura interna de la caché Simulador de bloques de memoria en caché Simulador de algoritmos de reemplazo en caché Analizador del rendimiento de caché Laboratorio de prácticas: - Laboratorio DISCA: F1L4. - Material hardware: PC s. - Material Software: Windows y UNIX. Evaluación asignatura: - La asignatura se evaluará mediante un examen. - Se podrá subir la nota final sumando a la nota del examen las notas obtenidas en clase. - Además también se realizará un examen práctico (en el laboratorio) para evaluar los conocimientos adquiridos en las prácticas de laboratorio
Bibliogrfía: - P. de Miguel, Fundamentos de Computadores. Paraninfo, 6ªed., 1998. - V.C. Hamacher, Z. Vranesic, Computer Organization. McGraw-Hill, 4ª ed., 1996. - A. Pont et al., Estructura de Computadores Vol.1. SPUPV-97.902, 1997. - A. Pont et al., Estructura de Computadores Vol.2. SPUPV-98.853, 1998. - A. Silberschatz y P.B. Galvin, Sistemas Operativos: Conceptos fundamentales. Addison Wesley. 3ªed. 1994 (castellano). - R. Morgan, H. McGilton, Introducción a UNIX Sistema V, Mc-Graw Hill. Ed. en castellano, 1987.