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:

  • Aún no disponible

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.