next_inactive up previous


Programa docente base
Concurrencia y Distribución

24 de enero de 2006

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
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 3
Número grupos prácticas 0
Anual/Cuatrimestral segundo cuatrimestre
Departamento Informática
Área de conocimiento Área de Lenguajes y Sistemas Informáticos

Horario

Lunes Martes Viernes
10-11 CD(1) SO6
11-12 CD(1) SO6
12-13 CD(2) SO6
13-14 CD(2) SO6
14-15
15-16
16-17
17-18
18-19 CD 3.2 CD(3) SO6
19-20 CD 3.2 CD(3) SO6

Datos de los exámenes

Convocatoria Fecha Hora Aula
Junio 19.06.06 10:00 Aula 2.1
Septiembre 13.09.06 10:00 Aula 2.3
Diciembre por determinar

Tribunales extraordinarios

Presidente Prof. Celso Campos Basto
Secretario Prof. Dr. Juan Carlos González Moreno
Vocal Prof. Pedro Cuesta Morales
Suplente Prof. Enrique Barreiro Alonso

Profesorado de la materia

Profesor Código Crd. Tutorías
Dr. Arno Formella 3142 12 1 $\scriptstyle \underline{\mathrm o}$ cuatri.: Mi 11-14, 16-19
2 $\scriptstyle \underline{\mathrm o}$ cuatri.: Mi 11-14, 16-19
periodo no lectivo: Mi 11-14, 16-19

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. Aplicaciones para la programación concurrente y distribuida
    3. Arquitecturas para la programación concurrente y distribuida
    4. Redes e interconexión de redes
    5. Propriedades de programas concurrentes
    6. Procesos y planificadores
  2. Repaso de Java
    1. Java en su versión 1.5
    2. Hilos en Java
    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 aplicaciones simples concurrentes con su control y sus estructuras de datos de soporte necesarios. La tareas por cumplir se publican a lo largo del curso.

Referencias bibliográficas

Básicas

  1. D. Lea. Programación Concurrente en Java. Addison-Wesley, ISBN 84-7829-038-9, 2001.
  2. J.T. Palma Méndez, M.C. Garrido Carrera, F. Snchez Figueroa, A. Quesada Arencibia. Programación Concurrente. Thomson, ISBN 84-9732-184-7, 2003.
  3. D. Schmidt, M. Stal, H. Rohnert, F. Buschmann. Pattern-Oriented Software Architecture, Pattern for Concurrent and Networked Objects. John Wiley & Sons, ISBN 0-471-60695-2, 2000.
  4. G. Coulouris, J. Dollimore, T. Kindberg. Sistemas Distribuidos, Conceptos y Diseño. Addison-Wesley, ISBN 84-7829-049-4, 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 o portátil con cañón 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.

Esta asignatura participa en el Programa de promoción del plurilingüismo en la docencia de la Universidad de Vigo, por eso:

Sistema de evaluación

  1. Se evalua la asignatura con un examen escrito compuesto por preguntas cubriendo la teoría y las prácticas.
  2. Dicho examen cubre el 80% de la nota final.
  3. Los 20% restantes se evaluan a partir de presentaciones de los trabajos de los alumnos realizados a lo largo del curso.
  4. Además se ofrece la posibilidad de obtener un bonus hasta 25% del examen final (en primera convocatoria) mediante presentaciones voluntarias en las prácticas que se suma una vez haber alcanzado por lo menos un aprobado.
  5. Para los demás convocatorias se evalua con un examen que cubre 100% de la nota final (solo se guarda los puntos del bonus (4) de la primera convocatoria, si procede).

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
© 2006, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática