A continuación te presentamos el programa de la materia:
- Concepto de Computador de Propósito General, y necesidad de un Sistema Operativo.
- Arquitectura para programación de aplicaciones (Modo Usuario).
- Arquitectura para programación de sistemas operativos (Modo Kernel).
- Modos de trabajo (Modo Real, Protegido, Virtual 86, y Extensiones de 64 bits).
- Arquitectura para programación de aplicaciones.
- Modelos de memoria, modos de direccionamiento y punteros con y sin especificación de segmento.
- Segmentación.
- Set de Instrucciones.
- Modos de Direccionamiento.
- Ejemplos de uso con algoritmos simples.
- Formato de archivos (.o, .exe, .lib, ELF, etc).
- Estructura del .asm.
- Información de debugging.
- Pasaje de parámetros.
- Estructuras de datos y de control.
- Interfase con el Sistema Operativo.
- Bibliotecas estáticas, dinámicas y run-times.
- Programación orientada a objetos y otros paradigmas.
- Modelo de procesamiento SIMD.
- Implementaciones SIMD en procesadores IA-32.
- MMX.
- SSE, SSE2, SSE3, SSE4.
- Aplicaciones en procesamiento de señales e imágenes.
- Pipeline, superpipelining, arquitectura Superescalar, Paralelismo a Nivel de Instrucciones.
- Modelo de ejecución fuera de orden.
- Modelo VLIW.
- Modelo EPIC.
- Ejemplos del mundo real, y comparación entre las diferentes alternativas.
- Memoria Cache. Principio de funcionamiento. Modelo asociativo.
- Multicore.
- Microarquitecturas de los procesadores IA-32: P5, P6, NetBurst, Pentium D, Core.
- Unidad de Gestión de Memoria de procesadores IA-32.
- Unidad de Segmentación en Modo Protegido.
- Unidad de Paginación.
- Relación con el sistema operativo. Soporte para implementación del Administrador de Memoria Virtual. Memoria compartida entre procesos y entre procesos y el sistema operativo.
- Sistema de interrupciones de los procesadores IA-32.
- Concepto y diferencias entre interrupciones y excepciones.
- Descriptores asociados. Códigos de error.
- Interrupciones y Excepciones predeterminadas.
- Manejo de Interrupciones desde el Sistema Operativo.
- Sistema de protección en procesadores IA-32.
- Niveles de privilegio (Anillos de protección).
- Reglas de protección para instrucciones, segmentos, páginas y tareas.
- Relación con el Sistema Operativo: Ejecución en Modo User y en Modo Kernel.
- Mecanismos para elevar el nivel de privilegio de una tarea (o proceso).
- Concepto de Multitasking.
- Contexto de ejecución.
- Conmutación de tareas en procesadores IA-32.
- Estructuras y descriptores asociados en procesadores IA-32.
- Relación de estos recursos con el Sistema Operativo.
- Scheduling de tareas. Diferentes alternativas.
- Técnicas de codificación para optimizar el uso del controlador cache.
- Técnicas de codificación para optimizar el uso de memoria.
- Técnicas de codificación para optimizar el aprovechamiento de los recursos de microarquitectura.
- Técnicas de prefetch en cache.
- Threading.
- Optimización en procesadores multicore.