next_inactive up previous


Programa docente base
Concurrencia y Distribución

12 de septiembre de 2003

Datos administrativos de la Universidad

Asignatura

Código de la materia 106110505
Nombre de la materia Concurrencia y Distribución
Centro/Titulación Escuela Superior de Ingeniería Informática/Ingeniería Informática
Curso quinto
Tipo obligatoria
Alumnos matriculados se sabe al final del periodo de inscripción
Alumnos nuevos se sabe al final del periodo de inscripción
Créditos aula/grupo 3
Créditos laboratorio/grupo 3
Créditos prácticas/grupo 0
Número grupos aula 1
Número grupos laboratorio 2
Número grupos prácticas 0
Anual/Cuadrimestral Cuadrimestral
Departamento Informática
Área de conocimiento Área de Lenguajes y Sistemas Informáticos

Profesorado de la materia

Nombre Profesor/a Código Créditos Tutorías
Arno Formella 3142 9 1 $\scriptstyle \underline{\mathrm o}$ cuatrimestre: Mi 11-14, 16-19
2 $\scriptstyle \underline{\mathrm o}$ cuatrimestre: Mi 10-12, 16-19, Vi 18-19
periodo no lectivo: Mi 11-14, 16-19

Horarios

Lunes Martes Miércoles Jueves Viernes
10-11 Tutorías
11-12 Tutorías
12-13
13-14
14-15
15-16
16-17 CD Teoría Tutorías CD Prácticas 2
17-18 CD Teoría Tutorías CD Prácticas 2
18-19 CD Prácticas 1 Tutorías Tutorías
19-20 CD Prácticas 1

Datos de los exámenes

Convocatoria Fecha Hora Aula
Junio 2004 21.06. 16:00
Septiembre 2004 20.09. 16:00
Diciembre 2004 15.12. 16:00

Temario de la materia

Previo

Se asume que el alumno tenga un conocimiento básico de la programación en Java y que sepa manejar un entorno de programación con Java.

Objetivos de la materia

Los principales objetivos de la asignatura son:

Temario de Aulas

  1. Introducción
    1. ¿De qué se trata?
    2. Arquitecturas para la programación concurrente y distribuida
    3. Redes e interconexión de redes
    4. Aplicaciones para la programación concurrente y distribuida
    5. Propriedades de programas concurrentes
    6. Procesos y planificadores
  2. Repaso de Java
    1. Java en su versión 1.4
    2. Thread y Runnable
    3. Modelo de memoria compartida de Java
    4. Recomendación JSR166 para Java 1.5
    5. Clases para la comunicación entre hilos y ordenadores
  3. Exclusión mutua y atomicidad
    1. Exclusión mutua a bajo nivel
    2. Soporte de hardware para la exclusión mutua
    3. Exclusión mutua a alto nivel
  4. Programas concurrentes
    1. Ejemplos simples
    2. Sistemas productor/consumidor
    3. Estructuras de datos concurrentes
  5. Comunicación y sincronización
    1. Canal de comunicación
    2. Fallos y seguridad de la comunicación
    3. Problema del interbloqueo
    4. Transacciones y control de concurrencia
  6. Sistemas distribuidos
    1. Tiempo y estados globales
    2. Transacciones distribuidas
    3. Memoria compartida distribuida
  7. Patrones de diseño para concurrencia y distribución
    1. Patrones de soporte
    2. Patrones para la sincronización y comunicación
    3. Patrones para el manejo de procesos
  8. Concurrencia en memoria distribuida
    1. El concepto de paso de mensajes
    2. El problema de terminación

Temario de Laboratorio

En las prácticas en los laboratorios (y en muchos ejemplos en la teoría) se usa el lenguaje de programación Java. Durante las prácticas se soluciona en pequeños grupos problemas de programación concurrente con el objectivo final de implementar una aplicación concurrente y distribuida.

Referencias bibliográficas

Básicas

  1. D. Lea. Programación Concurrente en Java. Addison-Wesley, 2001.
  2. D. Schmidt, M. Stal, H. Rohnert, F. Buschmann. Pattern-Oriented Software Architecture, Pattern for Concurrent and Networked Objects. John Wiley & Sons, 2000.
  3. G. Coulouris, J. Dollimore, T. Kindberg. Sistemas Distribuidos, Conceptos y Diseño. Addison-Wesley, 2001.

Complementarias

  1. K. Arnold et.al. The Java Programming Language. Addison-Wesley, 3rd Edition, 2000.
  2. B. Eckel. Piensa en Java. Prentice Hall, 2002.
  3. M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice-Hall 1990.

Método docente

Se imparte la signatura en clases de teoría con transparencias y pizarra y en clases prácticas con ordenador. En las clases prácticas se pide participación activa del alumnado con presentaciones de los trabajos realizados.

Sistema de evaluación

Se evalua la asignatura con un examen escrito compuesto por preguntas cubriendo la teoría y las prácticas. Dicho examen cubre el 80% de la nota final. Los 20% restantes se evalua a partir de presentaciones de los trabajos de los alumnos realizados durante las prácticas. Además se ofrece la posibilidad de obtener un bonus hasta 25% del examen final mediante presentaciones voluntarias en las prácticas.

Información complementaria

Se complementa la bibliografía de la asignatura con documentos que se encuentra en la Internet, sobre todo referiéndose al desarrollo moderno de Java.


next_inactive up previous
© 2003, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática