1. Enlaces
Google Meet: https://meet.google.com/hgb-qcoy-tnv
2. Temario
- Introducción
- Exclusión mutua
- Objetos concurrentes
- Fundamentos de memoria compartida
- El poder relativo de operaciones primitivas de sincronización
- Universalidad del Consenso
- Contención
- Sincronización
- Estructuras de datos concurrentes (Listas, pilas colas)
- Calendarización y distribución de trabajo
- Paralelismo de datos
- Manejo manual de memoria
- Memoria transaccional
Laboratorio: Las prácticas serán en Java y algunas de estas se probarán y evaluarán en un servidor con un procesador AMD Threadripper, de modo que se pueda tener práctica en un entorno real.
3. Evaluación
- Tareas 30%
- Exámenes 40%
- Prácticas 30%
Se podrán realizar hasta 2 reposiciones de los examenes (son 3 en el curso) y un examen final renunciando a su calificación anterior.
4. Bibliografía
- The Art of Multiprocessor Programming, 2nd Edition. Maurice Herlihy, Nir Shavit.
- Synchronization Algorithms and Concurrent Programming. Gadi Taubenfeld.