• Programa

    Programa de Organización del Computador II

    A continuación presentamos el programa de la materia:

    1. 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)

    2. 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

    3. Ensamblado, vinculación, carga y ejecución

    • Formato de archivos (.o, .exe, .lib, ELF, etc)
    • Estructura del .asm
    • Información de debugging

    4. Interfaz ensamblador-lenguajes de alto nivel

    • Pasaje de parámetros
    • Estructuras de datos y de control
    • Interfaz con el sistema operativo
    • Bibliotecas estáticas, dinámicas y run-times
    • Programación orientada a objetos y otros paradigmas

    5. 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

    6. Microarquitectura

    • Pipeline, superpipeling, 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 diferentes alternativas
    • Memoria cache. Principio de funcionamiento. Modelo asociativo
    • Multicore
    • Microarquitecturas de los procesadores IA-32: P5, P6, NetBurst, Pentium D, Core

    7. 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 el sistema operativo

    8. 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

    9. 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, 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)

    10. 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 entre estos recursos y el sistema operativo
    • Scheduling de tareas. Diferentes alternativas

    11. Optimización

    • Técnicas de codificación para optimizar el uso del controlador de 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