Está en la página 1de 14

GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN

CONCURRENTE Y DISTRIBUIDA" 2013/2014

1. Identificación

1.1. De la Asignatura

Curso Académico 2013/2014

GRADO EN INGENIERIA INFORMÁTICA

y PROG ESTUDIOS SIMULTÁNEOS


Titulación
GRADO EN MATEMÁTICAS Y GRADO
EN INGENIERÍA INFORMÁTICA

Nombre de la Asignatura PROGRAMACIÓN CONCURRENTE Y DISTRIBUIDA

Código 1901

Curso SEGUNDO y SEGUNDO(IC)

Carácter OBLIGATORIA

Nº Grupos 5

Créditos ECTS 6

Estimación del volumen de trabajo del alumno 150

Organización Temporal/Temporalidad 2º Cuatrimestre y 2º Cuatrimestre(IC)

Idiomas en que se imparte ESPAÑOL

Tipo de Enseñanza Presencial

1.2. Del profesorado: Equipo Docente

Coordinador de Área/Departamento CIENCIA DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL/

la asignatura INGENIERÍA DE LA INFORMACIÓN Y LAS COMUNICACIONES

MARIA DEL Categoría PROFESORES TITULARES DE UNIVERSIDAD

CARMEN GARRIDO Correo carmengarrido@um.es

CARRERA Electrónico / http://www.diic.um.es/~carmengarrido/

Grupo: 1, 2, 3, 4 y 9 Página web / Tutoría Electrónica: SÍ

Tutoría electrónica

1
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

Teléfono, Horario y Duración Día Horario Lugar

Lugar de atención Anual Miércoles 09:30- 12:30 868884629,

al alumnado Facultad de

Informática

JOSE TOMAS Área/Departamento CIENCIA DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL/

PALMA MENDEZ INGENIERÍA DE LA INFORMACIÓN Y LAS COMUNICACIONES

Grupo: 1, 2, 3, 4 y 9 Categoría PROFESORES TITULARES DE UNIVERSIDAD

Correo jtpalma@um.es

Electrónico / http://perseo.dif.um.es/~jpalma

Página web / Tutoría Electrónica: SÍ

Tutoría electrónica

Teléfono, Horario y Duración Día Horario Lugar

Lugar de atención Primer Lunes 09:30- 12:30 868884631,

al alumnado Cuatrimestre Facultad de

Informática

Segundo Martes 09:30- 12:30 868884631,

Cuatrimestre Facultad de

Informática

JUAN ANTONIO Área/Departamento CIENCIA DE LA COMPUTACIÓN E INTELIGENCIA ARTIFICIAL/

SANCHEZ LAGUNA INGENIERÍA DE LA INFORMACIÓN Y LAS COMUNICACIONES

Grupo: 1, 2, 3, 4 y 9 Categoría PROFESORES TITULARES DE UNIVERSIDAD

Correo jlaguna@um.es

Electrónico / http://ants.inf.um.es/staff/jlaguna/

Página web / Tutoría Electrónica: SÍ

Tutoría electrónica

2
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

Teléfono, Horario y Duración Día Horario Lugar

Lugar de atención Anual Jueves 09:30- 11:00 868888505,

al alumnado Facultad de

Informática

B1.1.036

Primer Lunes 16:30- 18:00 868888505,

Cuatrimestre Facultad de

Informática

B1.1.036

Segundo Viernes 09:30- 11:00 868888505,

Cuatrimestre Facultad de

Informática

B1.1.036

RAQUEL Área/Departamento INGENIERÍA DE LA INFORMACIÓN Y LAS COMUNICACIONES

MARTÍNEZ Categoría INVESTIGADOR EN FORMACIÓN FPI-SENECA

ESPAÑA Correo raquel.m.e@um.es

Grupo: 2 Electrónico / Tutoría Electrónica: NO

Página web /

Tutoría electrónica

Teléfono, Horario y

Lugar de atención

al alumnado

2. Presentación

En el momento que los alumnos llegan a esta asignatura sólo han adquirido conocimientos de programación

secuencial y con un solo proceso, en el que el orden de ejecución de las instrucciones está determinado por

el código fuente y la corrección de los programas es fácil de determinar. Sin embargo, con la programación

concurrente, los alumnos se enfrentan a un nuevo paradigma con el que pueden descomponer un programa

secuencial en varios procesos, que se pueden ejecutar concurrentemente. Este nuevo paradigma abre las

puertas al diseño de programas compuestos por varios procesos y, de esta forma, poder mejorar la eficiencia

de los programas. Sin embargo, con la programación concurrente aparecen nuevos problemas que necesitan

3
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

ser resueltos como la exclusión mutua, condición de sincronización y el interbloqueo. El objetivo básico de la

asignatura es acercar a los alumnos a la disciplina de la Programación Concurrente. Para ello se presentarán

los problemas básicos que se plantean con este nuevo paradigma de programación (sincronización y exclusión
mutua) y se expondrán los mecanismos que se han ideado para su resolución (semáforos, monitores, paso de

mensajes, etc.).

3. Condiciones de acceso a la asignatura

3.1 Incompatibilidades

Es deseable que para cursar esta asignatura los alumnos hayan asimilado los contenidos de las siguientes

asignaturas:

Introducción a la Programación, Tecnología de la Programación, Estructura y Tecnología de Computadores,

Programación Orientada a Objetos, Introducción a los Sistemas Operativos y Algoritmos y Estructuras de Datos

3.2 Recomendaciones

4. Competencias

4.1 Competencias Transversales


· Ser capaz de expresarse correctamente en español en su ámbito disciplinar. [Transversal1]
· Ser capaz de gestionar la información y el conocimiento en su ámbito disciplinar, incluyendo saber utilizar
como usuario las herramientas básicas en TIC. [Transversal3]
· Ser capaz de trabajar en equipo y para relacionarse con otras personas del mismo o distinto ámbito
profesional. [Transversal6]

4.2 Competencias de la asignatura y su relación con las competencias de la titulación


Competencia 1. Conocer y entender la problemática tratada por la programación concurrente y que no puede ser tratada
por la programación secuencial.
· CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas,
servicios y aplicaciones informáticas.
· CEII6: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando
hardware, software y redes.
Competencia 2. Conocer y entender los mecanismos mediante los cuales se pueden construir y ejecutar programas
concurrentes.
· CEII2: Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos
adquiridos.
· CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas,
servicios y aplicaciones informáticas.
· CEII6: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando
hardware, software y redes.
· CEII9: Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber
comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico enInformática.

4
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

· CR1: Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad,
seguridad y calidad, conforme a principios éticos y a la legislación y normativa vigente.
· CR6: Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones
a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
· CR7: Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de
un problema.
Competencia 3. Entender la esencia de los mecanismos de manejo de concurrencia que aparecen en los lenguajes de
programación y saber equipararlos con los teóricos.
· CEII2: Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos
adquiridos.
· CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas,
servicios y aplicaciones informáticas.
· CEII6: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando
hardware, software y redes.
· CEII9: Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber
comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico enInformática.
Competencia 4. Ser capaces de trabajar con lenguajes de programación con mecanismos para la concurrencia.
· CEII2: Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos
adquiridos.
· CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas,
servicios y aplicaciones informáticas.
· CEII6: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando
hardware, software y redes.
· CEII8: Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y
tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.
· CR6: Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones
a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
· CR7: Conocimiento, diseño y utilización de forma eficiente los tipos y estructuras de datos más adecuados a la resolución de
un problema.
Competencia 5. Analizar la corrección de programas concurrentes en general, y más concretamente la gestión de
“deadlock” en los sistemas.
· CEII3: Capacidad para diseñar, desarrollar, evaluar y asegurar la accesibilidad, ergonomía, usabilidad y seguridad de los sistemas,
servicios y aplicaciones informáticas, así como de la información que gestionan.
· CR1: Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad,
seguridad y calidad, conforme a principios éticos y a la legislación y normativa vigente.
Competencia 6. Conocer las definiciones del concepto de sistema distribuido que se encuentran en la literatura.
· CEII1: Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en
informática que tengan por objeto la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
· CEII2: Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos
adquiridos.
· CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas,
servicios y aplicaciones informáticas.
· CEII6: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando
hardware, software y redes.
· CR2: Capacidad para planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos,
liderando su puesta en marcha y su mejora continua y valorando su impacto económico y social.
Competencia 7. Conocer las motivaciones que llevan a la construcción de sistemas distribuidos: aumento de la capacidad
de acceso a los recursos, simplificación de la extensión de los sistemas, incremento de la capacidad de cómputo y
adaptación a la naturaleza distribuida de las organizaciones actuales.
· CEII1: Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en
informática que tengan por objeto la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
· CEII2: Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos
adquiridos.
· CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas,
servicios y aplicaciones informáticas.
· CEII6: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando
hardware, software y redes.
· CR2: Capacidad para planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos,
liderando su puesta en marcha y su mejora continua y valorando su impacto económico y social.
Competencia 8. Comprender los retos que conlleva la construcción de sistemas distribuidos: heterogeneidad de los
sistemas (importancia de los estándares), seguridad, escalabilidad, manejo de errores, transparencia, y concurrencia.
· CEII1: Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en
informática que tengan por objeto la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
· CEII2: Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos
adquiridos.
· CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas,
servicios y aplicaciones informáticas.

5
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

· CEII6: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando
hardware, software y redes.
· CR2: Capacidad para planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos,
liderando su puesta en marcha y su mejora continua y valorando su impacto económico y social.
Competencia 9. Conocer las propiedades comunes de los sistemas distribuidos y sus problemas de diseño mediante
modelos.
· CEII1: Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en
informática que tengan por objeto la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
· CEII2: Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos
adquiridos.
· CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas,
servicios y aplicaciones informáticas.
· CEII6: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando
hardware, software y redes.
· CR2: Capacidad para planificar, concebir, desplegar y dirigir proyectos, servicios y sistemas informáticos en todos los ámbitos,
liderando su puesta en marcha y su mejora continua y valorando su impacto económico y social.
Competencia 10. Conocer una clasificación de las formas de comunicación más comunes, implementadas en middleware,
que permiten enlazar los procesos que constituyen un sistema distribuido: comunicación por paso de mensajes
persistente y no persistente, llamada a procedimientos remotos e invocación de objetos remotos.
· CEII1: Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en
informática que tengan por objeto la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
· CEII2: Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos
adquiridos.
· CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas,
servicios y aplicaciones informáticas.
· CEII6: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando
hardware, software y redes.
· CR1: Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad,
seguridad y calidad, conforme a principios éticos y a la legislación y normativa vigente.
Competencia 11. Comprender los algoritmos de sincronización distribuida más básicos (exclusión mutua, elección de
líder, comunicación en grupo) y ser capaz de aplicarlos a la resolución de problemas distribuidos sencillos apoyándose
en los mecanismos de comunicación anteriores.
· CEII1: Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en
informática que tengan por objeto la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
· CEII2: Capacidad para dirigir las actividades objeto de los proyectos del ámbito de la informática de acuerdo con los conocimientos
adquiridos.
· CEII4: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas,
servicios y aplicaciones informáticas.
· CEII6: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando
hardware, software y redes.
· CEII9: Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber
comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico enInformática.
· CR1: Capacidad para diseñar, desarrollar, seleccionar y evaluar aplicaciones y sistemas informáticos, asegurando su fiabilidad,
seguridad y calidad, conforme a principios éticos y a la legislación y normativa vigente.
· CR8: Capacidad para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el
paradigma y los lenguajes de programación más adecuados.

5. Contenidos

Bloque 1: Conceptos Fundamentales


TEMA 1 La concurrencia

1.1 Concepto de Programación Concurrente

1.1.1 Programas, Procesos e Hilos

1.1.2 Concurrencia

1.1.3 Programación Concurrente

1.2 Beneficios de la Programación Concurrente

6
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

1.2.1 Velocidad de ejecución

1.2.2 Solución a problemas de naturaleza concurrente

1.3 Concurrencia y Arquitecturas Hardware

1.3.1 Sistemas Monoprocesador

1.3.2 Sistemas Multiprocesador

1.3.3 Sistemas Distribuidos

TEMA 2 Programas Concurrentes

2.1 Características de los Sistemas Concurrentes

2.1.1 Orden total vs Orden Parcial

2.1.2 Atomicidad

2.1.3 Indeterminismo

2.1.4 Condiciones de Bernstein

2.2 Tipos de sincronización

2.2.1 Exclusión Mutua: recursos no compartibles y secciones críticas

2.2.2 Condición de Sincronización

2.2.3 Soluciones a los tipos de sincronización

2.3 Corrección de Programas Concurrentes

2.3.1 Seguridad: Exclusión Mutua, Sincronización e Interbloqueos

2.3.2 Vivacidad: Interbloqueos activos e Inanición

Bloque 2: Sistemas basados en memoria compartida


TEMA 3 Semáforos

3.1 Definición de Semáforo

3.2 Exclusión mutua y Condición de Sincronización

3.3 Resolución de problemas clásicos

3.3.1 Productor y Consumidor

3.3.2 Lectores y Escritores

3.3.3 Comida de los Filósofos

7
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

3.4 Implementación de Semáforos

3.5 Inconvenientes de los Semáforos

TEMA 4 Monitores

4.1 Definición de Monitor

4.2 Exclusión mutua y Condición de Sincronización

4.3 Semántica de la operación resume

4.3.1 Desbloquear y continuar

4.3.2 Retorno forzado

4.3.3 Desbloquear y esperar

4.3.4 Desbloquear y espera urgente

4.4 Resolución de problemas clásicos

4.4.1 Productor y Consumidor

4.4.2 Lectores y Escritores

4.4.3 Comida de los Filósofos

Bloque 3: Sistemas distribuidos


TEMA 5 Mecanismos de paso de mensaje

5.1 Introducción

5.2 Identificación en el proceso de comunicación

5.3 Sincronización

5.4 Canal de comunicación y mensajes

5.5 Condiciones de error en los sistemas de paso de mensajes

5.6 Espera selectiva

TEMA 6 Paso de mensaje asíncrono

6.1 Introducción

6.2 Resolución de problemas clásicos

6.2.1 Productor y consumidor

6.2.2 Lectores y escritores

8
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

6.2.3 Comida de filósofos

TEMA 7 Paso de mensaje síncrono

7.1 Introducción

7.2 Resolución de problemas clásicos

7.2.1 Productor y consumidor

7.2.2 Lectores y escritores

7.2.3 Comida de filósofos

TEMA 8 Invocación Remota

8.1 Introducción

8.2 Resolución de problemas clásicos

8.2.1 Productor y consumidor

8.2.2 Lectores y escritores

8.2.3 Comida de filósofos

TEMA 9 Algoritmos de exclusión mutua en Sistemas Distribuidos

9.1 Introducción

9.2 Enfoque Centralizado

9.3 Anillos lógicos y paso de testigo

9.3 Algoritmo de Rickart y Agrawala

PRÁCTICAS

Práctica 1 Concurrencia en Java :Relacionada con los contenidos Tema 1 y Tema 2

Práctica 2 Exclusión mutua y sincronización en Java :Relacionada con los contenidos Tema 1 y Tema 2

Práctica 3 Problemas con semáforos en Java :Relacionada con los contenidos Tema 3

Práctica 4 Problemas con semáforos en Java e Introducción a Monitores en Java :Relacionada con los
contenidos Tema 3 y Tema 4

Práctica 5 Variables condición en Java :Relacionada con los contenidos Tema 4

Práctica 6 Problemas con Monitores en Java :Relacionada con los contenidos Tema 4

Práctica 7 Corrección Ejercicio Voluntario :Relacionada con los contenidos Bloque 1 y Bloque 2

Práctica 8 Paso de mensajes asíncrono en Java :Relacionada con los contenidos Tema 5 y Tema 6

9
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

Práctica 9 Problemas de Paso de Mensajes Asíncronos e Introducción al Paso de Mensajes


Síncrono :Relacionada con los contenidos Tema 7 y Tema 6

Práctica 10 Problemas de Paso de Mensajes Síncrono e Invocación Remota en Java :Relacionada con
los contenidos Tema 7 y Tema 8

Práctica 11 Problemas de Invocación Remota :Relacionada con los contenidos Tema 8

Práctica 12 Dudas sobre el Boletín de Prácticas :Global

Práctica 13 Entrevistas de Prácticas :Global

6. Metodología Docente

Actividad Horas Trabajo Volumen


Metodología
Formativa Presenciales Autónomo de trabajo

Lección magistral 20 40 60

Prácticas tutorizadas 22 22

Prácticas
0 40 40
no dirigidas

Controles
8 10 18
parciales y final

Seminarios/Tutorías 10 10

7. Horario de la asignatura
http://www.um.es/web/informatica/contenido/estudios/grados/informatica/2013-14#horarios

http://www.um.es/web/vic-estudios/contenido/grados/dobles/pes/matematicas-

informatica/2013-14#horarios

10
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

8. Sistema de Evaluación

Métodos / Examen Teórico práctico (parciales y finales)

Instrumentos

Competencia Criterios de Valoración Se tendrá en cuenta la precisión y claridad en las respuestas a las preguntas

Evaluada teóricas, y la corrección en la resolución de los ejercicios prácticos. Es

1, 2, 3, 5, 6, decir, evitar interbloqueos, ajustarse a lo pedido en el enunciado, usar

7, 8, 9, 10, 11 eficaz y eficientemente los mecanismos de sincronización y exclusión mutua

adecuados.

Ponderación 60

Métodos / Prácticas no dirigidas

Competencia Instrumentos

Evaluada Criterios de Valoración Se tendrá en cuenta la corrección y originalidad de las soluciones aportadas, la

1, 2, 3, 4, presentación y claridad de la memoria, y el resultado de la entrevista personal

5, 8, 9, 10 que se haga para defender el trabajo realizado.

Ponderación 40

Fechas de exámenes
http://www.um.es/web/informatica/contenido/estudios/grados/informatica/2013-14#examenes
http://www.um.es/web/vic-estudios/contenido/grados/dobles/pes/matematicas-
informatica/2013-14#examenes

9. Bibliografía (básica y complementaria)


A. Burns y G. Davies. Concurrent Programming. Addison-Wesley. 1993.

Silberschatz, Abraham-Sistemas operativos(1999)

Andrews, Gregory R.-Concurrent programming : principles and practice(1991)

Ben-Ari, M.-Principles of concurrent and distributed programming(1990)

Davies, G.L. (1992) Pascal-FC, versión 5. Language Reference Manual. University of Bradford, UK.

Davies, G.L. (1992) Pascal-FC, versión 5. User Guide for PC Compatibles. University of Bradford, UK.

11
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

Davies, Pascal-FC, versión 5. Language reference manual

Davies, Pascal-FC, versión 5. User guide for PC compatibles

J.T. Palma, M.C. Garrido, F. Sánchez y A. Quesada. Programación Concurrente. Thomson-Paraninfo.

2003.

M. Ben-Ari. "Principles of concurrent programming".Prentice-Hall. 1982.

M. Milenkovic. "Sistemas Operativos: conceptos y diseño". McGraw-Hill. 1988. [Capítulo 5, pag. 231]

M.C. Garrido y J.T. Palma. "Programación Concurrente". Diego Marín. Colección Texto Guía. 2001.

N. Gehani y A.D. McGettrick. Concurrent Programming

Perez Martinez, Jorge E.--Programación concurrente(1990)

Perez Martinez, Jorge E.-Programación concurrente(1990)

Raynal, Michel-Algorítmica del paralelismo el problema de la exclusión mutu(1987)

A.S. Tanembaum. Sistemas Operativos Modernos. Prentice-Hall. 2003. [Capítulo 3, pag. 231]

10. Observaciones y recomendaciones

Sistema de evaluación y calificación

La asignatura se divide en dos partes: teoría y prácticas. Cada parte se puede aprobar por separado, pero para

superar la asignatura ambas deben estar aprobadas con una nota igual o superior a 5 sobre 10. La nota final

de la asignatura será la media ponderada de las de teoría y práctica considerando que la teoría tendrá un peso

del 60% y la práctica del 40%. En el caso de que no se haya superado alguna de las dos partes la nota final no

podrá superar el 4,9.

Para superar la parte teórica, cada convocatoria oficial habrá un examen final de teoría. Además, durante el

periodo lectivo de la convocatoria de junio habrá dos exámenes parciales puntuados cada uno sobre 5 puntos.

El primero cubrirá los Bloques I y II del temario, y el segundo el Bloque III. Los exámenes finales de junio y julio

tendrán también dos partes que valdrán 5 puntos cada una y cubrirán el temario de igual forma. Aprobar un

parcial permitirá mejorar la nota de la parte correspondiente del final de estas dos convocatorias obteniéndose

el máximo entre la media de ambos y la nota conseguida en el final del siguiente modo:

12
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

NP1: Nota del primer parcial si se obtienen al menos 2,5 puntos sobre 5. (0 en caso contrario)

NP2: Nota del segundo parcial si se obtienen al menos 2,5 puntos sobre 5. (0 en caso contrario)

NF1: Nota de los ejercicios relativos a los Bloques I y II del temario incluidos en examen final de junio/julio

NF2: Nota de los ejercicios relativos al Bloque III del temario incluidos en examen final de junio/julio

NFT: Nota final de la parte de teoría en junio/julio

NFT = max((NP1+NF1)/2, NF1) + max((NP2+NF2)/2, NF2)

Para superar la parte práctica, cada convocatoria oficial habrá un boletín de ejercicios que se deberá realizar

y entregar en plazo y forma. Finalmente, cada entrega de prácticas estará asociada a una entrevista personal.

Además, durante el periodo lectivo de la convocatoria de junio se podrá entregar un ejercicio de prácticas

voluntario. Al igual que en teoría, el boletín de ejercicios de junio/julio tendrá dos partes que cubrirán el

temario del modo descrito anteriormente. El ejercicio voluntario permitirá al alumno mejorar la nota de la

parte correspondiente del boletín de junio/julio obteniéndose el máximo entre la media de ambos y la nota

conseguida en el boletín del siguiente modo:

NP1: Nota del ejercicio voluntario si se obtienen al menos 2,5 puntos sobre 5. (0 en caso contrario)

NF1: Nota de los ejercicios relativos a los Bloques I y II del temario incluidos en boletín de junio/julio

NF2: Nota de los ejercicios relativos al Bloque III del temario incluidos en boletín de junio/julio

NFB: Nota final del boletín de junio/julio

NFB = max((NP1+NF1)/2, NF1) + NF2

La nota que aparecerá en el ACTA de cada convocatoria responderá al siguiente criterio:

Para poder superar la asignatura en una determinada convocatoria (febrero, junio, julio), el alumno deberá

aportar al profesor todas aquellas "evidencias" necesarias para poder realizar una evaluación global. Para esta

signatura se entiende por evidencias:

1. Presentarse físicamente al examen final de teoría en la fecha y hora establecidos en el pertinente

llamamiento, rellenar sus datos, firmar y entregar el examen al profesor.

2. Realizar la entrega del boletín de prácticas y presentarse a la entrevista de prácticas, cuando sea convocado

a ello. El cauce para esta asignatura será mediante el aula virtual, SAKAI.

13
GUÍA DE LA ASIGNATURA DE GRADO "PROGRAMACIÓN
CONCURRENTE Y DISTRIBUIDA" 2013/2014

En este caso y para cada convocatoria solo si el estudiante NO ha aportado NINGUNA de las evidencias de

evaluación que permitan una calificación global de la asignatura, se consignará en el acta la calificación de "No

Presentado".

Criterios de evaluación

1. Exámenes de teoría (parciales y finales): Se tendrá en cuenta la precisión y claridad en las respuestas a las
preguntas teóricas, y la corrección en la resolución de los ejercicios prácticos. Es decir, evitar interbloqueos,

ajustarse a lo pedido en el enunciado, usar eficaz y eficientemente los mecanismos de sincronización y

exclusión mutua adecuados.

2. Resolución de los boletines de prácticas: Se tendrá en cuenta la corrección y originalidad de las soluciones

aportadas, la presentación y claridad de la memoria, y el resultado de la entrevista personal que se haga para

defender el trabajo realizado.

14

También podría gustarte