Concurrencia


Grado en Ingeniería Informática/ Grado en Matemáticas e Informática/ Doble Grado en Ingeniería Informática y ADE
Universidad Politécnica de Madrid

Descripción

Este curso pretende familiarizar al alumno con los sistemas software concurrentes — es decir, aquellos en los que diferentes procesos ejecutan simultáneamente interactuando entre sí y de manera potencialmente indeterminista — y proporcionarle herramientas con las que desarrollar software concurrente seguro.

Las primeras semanas se centran en los mecanismos básicos que posibilitan la creación de procesos, la comunicación y la sincronización, prestando especial atención a los problemas de ejecución que pueden surgir. La segunda parte de la asignatura proporciona una metodología orientada a la construcción de aplicaciones concurrentes que garanticen una serie de propiedades esenciales. En esta parte se desarrolla un ejercicio práctico por parejas usando el lenguaje Java.

Los contenidos detallados y las normas de la asignatura se encuentran en las guías de aprendizaje: GII, GMI, GII-ADE.
Las fechas para las pruebas de evaluación continua de la asignatura en este semestre son:

Profesorado

  profesor   tutorías fijas   tutorías con cita previa
  Julio Mariño      martes 10:00 – 12:00   
  martes 15:00 – 17:00   
  jueves 10:00 – 12:00   
  Guillermo Román      lunes 10:00 – 12:00   
  miércoles 10:00 – 12:00   
  lunes 14:00 – 16:00   
  Ángel Herranz      martes 09:00 – 10:00   
  jueves 09:00 – 10:00   
  jueves 10:00 – 12:00   

Contacto

Para contactar con los profesores de la asignatura lo más sencillo es usar la dirección de correo Para anuncios de la asignatura, consultas que puedan ser resueltas por otros compañeros, etc., disponemos del foro en la dirección Todos los alumnos son suscritos a este foro de manera automática.

Materiales

Presentaciones

Presentaciones de Guillermo Román usadas en el grupo 4F1M + ADE

Algunas presentaciones en inglés

Son del curso 2014 – 2015, pero pueden seguir siendo de utilidad.

Lecturas, código de apoyo, etc.

Prácticas new

Enunciado de las prácticas para este semestre. Está también disponible el código de apoyo para realizarlas.

Ejercicios prácticos

El documento ejercicios-cortos.zip contiene los enunciados de los ejercicios que han de entregarse cada semana junto con el código de apoyo. (Acceso directo al PDF del cuadernillo.)

Las entregas de todos los ejercicios prácticos se realizan a través de la URL http://lml.ls.fi.upm.es/~entrega.

Ejercicio Descripción   Entrega  
Ejercicio 1   Creación de threads en Java    sábado 9 febrero 15:00 
Ejercicio 2   Provocar una situación de carrera   sábado 9 febrero 15:00 
Ejercicio 3   Garantizar exclusión mutua con espera activa   sábado 23 de febrero 15:00 
Ejercicio 4   Garantizar exclusión mutua con semáforos    lunes 4 de marzo 15:00 
Ejercicio 5   Almacén de un dato con semáforos    lunes 11 de marzo 23:59 (GII, GII+ADE) 
 martes 12 de marzo 23:59 (GMI) 
Ejercicio 6   Almacén de varios datos con semáforos    viernes 22 de marzo 15:00  
Ejercicio 7   Especificación de un recurso compartido    sábado 6 de abril 15:00 

En este documento disponéis de una serie de problemas para razonar y programar tomando las entregas cortas como punto de partida. Se trata de material totalmente experimental que estamos creando por primera vez en este semestre. Actualmente contiene propuestas sobre las entregas 1 y 2. Su realización es voluntaria y de momento no está prevista su entrega ni su revisión en clase.

Software

Ejercicios para autoevaluación