UA
   PROGRAMACIÓN CONCURRENTE    Año académico       Versión PDF.  Versión PDF para convalidación.
Código9242Descripción
Crdts. Teor.3PROCESOS.SINCRONIZACION,COMPETENCIA Y COOPERACION.EXCLUSION MUTUA.MEMORIA COMPARTIDA.MEMORIA DISTRIBUIDA.CSP
Crdts. Pract.3
A efectos de intercambios en programas de movilidad, la carga de esta asignatura equivale a 7,5 ECTS.


Departamentos y Áreas
DepartamentosÁreaCrdts. Teor.Crdts. Pract.Dpto. Respon.Respon. Acta
LENGUAJES Y SISTEMAS INFORMÁTICOSLENGUAJES Y SISTEMAS INFORMATICOS33


Estudios en los que se imparte
Ingeniería en Informática - plan 2001


Pre-requisitos
Sin incompatibles


Incompatibilidades de matrícula por contenidos equivalentes
Sin Datos


Matriculados (2010-11)
Grupo (*)Número
1 9
TOTAL 9
(*) 1: GRUPO 1 - CAS


Ofertada como libre elección (2010-11)
Número máximo de alumnos: Sin límite
Pincha aquí para ver a qué estudios se oferta
Consulta Gráfica de Horario
A efectos de intercambios en programas de movilidad, la carga de esta asignatura equivale aPincha aquí


Horario (2010-11)
ModoGrupo (*)Día inicioDía finDíaHora inicioHora finAula
CLASE TEÓRICA 1 03/02/2011 27/05/2011 J 09:00 11:00 A2/D22
PRÁCTICAS CON ORDENADOR 1 03/02/2011 27/05/2011 V 12:30 14:30 0016P1002
  2 03/02/2011 27/05/2011 X 12:30 14:30 0016P2004
(*) CLASE TEÓRICA
1: GRUPO 1 - CAS
(*) PRÁCTICAS CON ORDENADOR
1: GRUPO Prácticas de PC-01 - CAS
2: GRUPO Prácticas de PC-01 - CAS


Grupos de matricula (2010-11)
Grupo (*)CuatrimestreTurnoIdiomaDistribución (letra nif)
1 2do. M CAS desde - hasta -
(*) 1: GRUPO 1 - CAS


Objetivos de las asignatura / competencias (2010-11)
Presentación
El principal objetivo es introducir al alumno en el paradigma de la programación concurrente y en el uso de las herramientas y técnicas utilizadas en general por los lenguajes concurrentes.

La asignatura está centrada en la descripción de los principios y metodologías de la programación concurrente, en los problemas derivados de la ejecución paralela de procesos y en las técnicas y herramientas existentes para resolver estos problemas.

Las prácticas se realizarán tanto con Pascal Concurrente como con Java. Pascal Concurrente es un lenguaje de programación muy adecuado para la docencia de esta asignatura pero de poca utilidad práctica. Por ello usaremos también Java en algunos de los ejercicios prácticos, que además de ser adecuado para la docencia os será más útil en la práctica profesional.

Por lo demás, será una materia amena, donde espero que aprendáis conceptos y técnicas útiles.

La evaluación se hará según dos modalidades a elegir:

Asistencia regular controlada.
Asistencia libre.

Este año habrá un turno de prácticas y uno de teória.



Contenidos teóricos y prácticos (2010-11)
Temario
Contenido general
Los principales temas a tratar son los siguientes (ver temario detallado más abajo):


¿Qué es la programación Concurrente?
Introducción: conceptos de concurrencia
Multiprogramación
Multitarea
Ejecución concurrente
Problemas de programación concurrente
Objetos compartidos y exclusión Mutua
Regiones críticas
Deadlock (interbloqueo)
Procesos e hilos
Programación concurrente orientada a objetos (hilos en Java)
Semáforos
Monitores y sincronización
Paso de mensajes


Temario detallado
MÓDULO 1: Conceptos fundamentales

PARTE 1: Conceptos fundamentales


Introducción
Hitos en la programación concurrente
Concepto de programación concurrente
Beneficios de la programación concurrente
Concurrencia y arquitecturas hardware
Especificación de ejecución concurrente
Características de los sistemas concurrentes
Problemas inherentes a la programación concurrente
Corrección de programas concurrentes
Preguntas y ejercicios



PARTE 2: Procesos y Pascal-FC


Procesos
Procesos en Pascal-FC



PARTE 3: Hilos y Java


Hilos
Hilos en Java



PARTE 4: Primeras aproximaciones a la solución de los problemas de la programación concurrente


Introducción
Tipos de sincronización y su solución
Espera-Ocupada para la exclusión mutua (soluciones software)
Espera-Ocupada para la exclusión mutua (soluciones hardware)
Resumen
Preguntas y ejercicios

MÓDULO II: Primitivas de sincronización basadas en memoria compartida

PARTE 5. Semáforos


Introducción
Definición de semáforo
Resolución de problemas usando semáforos
Inconvenientes del mecanismo de los semáforos



PARTE 6. Regiones críticas condicionales


Introducción
Definición de región crítica condicional
Resolución de problemas usando regiones críticas condicionales
Inconvenientes del mecanismo de regiones críticas condicionales



PARTE 7. Monitores


Introducción
Definición de monitor
Condición de sincronización en monitores
Resolución de problemas usando monitores

MÓDULO III: Paso de mensajes

A modo de introducción al tema, se recomeinda ver la sección 8 de los apuntes colgados en la sección de materiales.


PARTE 8. Mecanismo de paso de mensaje


Introducción
Identificación en el proceso de comunicación
Sincronización
Canal de comunicación y mensajes
Condiciones de error en los sistemas de paso de mensajes
Espera selectiva



PARTE 9. Paso de mensaje asíncrono



PARTE 10. Paso de mensaje síncrono con canales



PARTE 11. Invocación remota y llamada a procedimiento remoto (RPC)


Más información
http://www.dlsi.ua.es/cgi-bin/wwwadm/assig2.cgi?id=cas&assig=PC-2001&plan=2001
Profesor/a responsable
Calera Rubio , Jorge


Metodología docente (2010-11)
Clases teóricas y prácticas
Objetivos de las asignatura y competencias
El principal objetivo es introducir al alumno en el paradigma de la programación concurrente y en el uso de las herramientas y técnicas utilizadas en general por los lenguajes concurrentes.

La asignatura está centrada en la descripción de los principios y metodologías de la programación concurrente, en los problemas derivados de la ejecución paralela de procesos y en las técnicas y herramientas existentes para resolver estos problemas.

En primer lugar, se introducirán los conceptos, técnicas y herramientas básicas de esta disciplina informática. Para ello, se abordarán los problemas clásicos de los sistemas concurrentes proponiéndose diversas soluciones. Paralelamente se verán ejemplos basados en los lenguajes concurrentes Pascal-FC y Java.

Al finalizar el curso, el alumno habrá adquirido la destreza y conocimientos necesarios para reconocer una aplicación paralela y resolverla mediante la construcción de algoritmos concurentes.


Objetivos específicos:

Reconocer las aplicaciones concurrentes.
Conocer las técnicas y algoritmos empleados en la programación concurrente.
Construir aplicaciones concurrentes mediante la utilización de los lenguajes Pascal-FC y Java.


Métodos docentes
Se realizarán clases teóricas y prácticas en laboratorios.


Método de aprendizaje
El alumno debe comenzar leyendo el texto base, intentando comprender los conceptos que en él se exponen: problemas típicos de la concurrencia: sincronización condicional, exclusión mutua e interbloqueo (deadlock).

El libro está lleno de ejemplos con los que se explican las distintas posibles soluciones para cada problema, dependiendo del resultado final que se quiera obtener.

Es importante que después de asimilar los problemas y sus soluciones el alumno intente resolverlos por sí mismo aplicando distintas herramientas y enfoques. Se sugiere comenzar por los ejemplos resueltos en el propio libro.


Tipo de exámenes y evaluaciones
Modalidad de asistencia regular: Evaluación continua en clase, parciales y entregas de trabajos prácticos y/o monográficos.

Modalidad libre: Examen final.



Tipo de actividades: teóricas y prácticas
Laboratorios
y en algunos casos trabajos monográficos.
Habrá 1 horarios de prácticas (a determinar).
Los teóricos serán los jueves de 16 a 18.


Profesores (2010-11)
Grupo Profesor/a
TEORIA COMPARTIDA DE 9242, 9318 Y 94091Calera Rubio, Jorge
PRÁCTICAS CON ORDENADOR DE 92421Calera Rubio, Jorge
2Calera Rubio, Jorge
Enlaces relacionados
http://ants.inf.um.es/staff/jlaguna/jmp/index.php
http://es.wikipedia.org/wiki/Paso_de_mensajes
http://es.wikipedia.org/wiki/Remote_Procedure_Call
http://www.boost.org/doc/libs/?view=category_Concurrent
http://www.chuidiang.com/


Bibliografía
No existen libros recomendados en esta asignatura para este año académico.
Fechas de exámenes oficiales (2010-11)
ConvocatoriaGrupo (*)fechaHora inicioHora finAula(s) asignada(s)Observ:
Exámenes extraordinarios de finalización de estudios (diciembre) -1 05/11/2010 -
Periodo ordinario para asignaturas de segundo semestre y anuales -1 15/06/2011 15:00 18:00 A2/A22 -
Periodo extraordinario de julio -1 15/07/2011 14:30 17:30 A2/E02 SE CAMBIA EL AULA A A2/0E02 (AULARIO II)
(*) 1: GRUPO 1 - CAS


Instrumentos y criterios de evaluación (2010-11)
Evaluación continua, examen final
Evaluaciones y criterios de calificación
Evaluación continua.Presentación en clase de teoría

Los alumnos que opten por esta opción realizarán un trabajo sobre algún tema de la parte teórica de la asignatura y será presentado en clase. Se valorará la asistencia a las clases teóricas.

Quienes asistan a menos de un 80% de las prácticas podrán, en casos debidamente justificados, complementar ese déficit mediante un trabajo monográfico o práctico adicional. Será necesario presentar una memoria de prácticas en todos los casos, con los ejercicios propuesto en clase y resueltos en Pascal FC

Evaluación con examen final
Quien no desee asistir a clase tendrá la posibilidad de realizar un examen teórico final y un examen de prácticas final. La memoria de prácticas también será obligatoria para aprobar la asignatura.

Ejercicios puntuables hechos en clase (evaluación contínua)
Se realizarán varios ejercicios puntuables durante las clases teóricas, a modo de evaluación contínua. Estos pueden realizarse a lo largo de todo el curso.