Programa de Organización del Computador II
A continuación te presentamos el programa de la materia:
-
Introducción
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).
-
Arquitectura Intel 64
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.
-
Ensamblado, vinculación, carga y ejecución
Formato de archivos (.o, .exe, .lib, ELF, etc). Estructura del .asm. Información de debugging.
-
Interfase ensamblador-lenguajes de alto nivel
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.
-
Instrucciones Multimedia
Modelo de procesamiento SIMD. Implementaciones SIMD en procesadores IA-32. MMX. SSE, SSE2, SSE3, SSE4. Aplicaciones en procesamiento de señales e imágenes.
-
Microarquitectura
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.
-
Modelo de programación de Sistemas Operativos - Manejo de Memoria
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.
-
Modelo de programación de Sistemas Operativos - Interrupciones y Excepciones
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.
-
Modelo de programación de Sistemas Operativos - Protección
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).
-
Modelo de programación de Sistemas Operativos - Manejo de Tareas
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.
-
Optimización
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.