La materia tiene por objetivo que l@s estudiantes aprendan los conceptos básicos y los modelos más utilizados asociados a la programación concurrente. Además comprendan las dificultades asociadas a la interacción de componentes en un sistema concurrente y conozcan los recursos de los que dispone el programador para mitigarlos.
Modos de Cursada: Cuatrimestral Presencial
Horas Semanales: 4 horas
Demanda de tiempo en casa semanal: 4 horas
Sitio web:
Programa de la materia:
Contenidos Mínimos:
- Los por qués de la concurrencia. Concurrencia vs paralelismo.
- Modelo de memoria compartida, atomicidad e independencia.
- Secciones críticas, locks y barriers, semáforos, monitores y condition variables, rendezvous.
- Problemas de concurrencia: Starvation, Deadlocks, Liveness y Progress, Safety, Race conditions, Fairness.
- Modelo de pasaje de mensajes: Comunicación sincrónica vs comunicación asincrónica, Modelo de transacciones.
- Modelos de interacción: Cliente/Servidor, Productor/Consumidor.
- Aplicación de los conceptos estudiados en lenguajes de programación concretos, mecanismos de sincronización.