Vous êtes sur la page 1sur 5

PROGRAMACIN CONCURRENTE Y DISTRIBUIDA

3 Curso de Ingeniera Informtica


Curso 2010/2011
[http://www.ctr.unican.es/asignaturas/procodis_3_II/index.html]
Profesores: Laura Barros barrosl@unican.es
Jos Mara Drake drakej@unican.es
Miguel Tellera de Esteban telleriam@unican.es
Objetivos de la asignatura:
Es formar al alumno para que sea capaz de concebir, especificar, disear, implementar y verificar
aplicaciones informticas en la que se utilice programacin concurrente y programacin
distribuida. Se proporcionan los conceptos bsicos de concurrencia, sus ventajas, los problemas y
las patologas que conlleva, as como los recursos y las primitivas de sincronizacin que
histricamente se han introducido para realizar una programacin concurrente segura. Se forma
al alumno para que pueda implementar programas con concurrencia virtual sobre un
monoprocesador, como los basados en un lenguaje de programacin concurrente como Java, o
bien programacin con concurrencia fsica como la basada en plataformas distribuidas.
Son objetivos concretos de esta asignatura:
Conocer y practicar la programacin concurrente, as como identificar sus ventajas y
problemas en contraste con la programacin secuencial.
Conocer los mtodos formales para especificar, analizar y verificar programas
concurrentes.
Conocer y practicar la programacin concurrente en Java.
Conocer los principales recursos de comunicacin, de sistemas operativos y de middleware
de distribucin en que se basa los sistemas distribuidos basados en plataformas
heterogneas.
Conocer y practicar el diseo y la implementacin de aplicaciones distribuidas basadas en
RMI Java, en middleware tipo CORBA y en Java de Tiempo Real.
Aptitudes destrezas
El alumno debe ser capaz de concebir una aplicacin como concurrente, a fin de decidir si
presenta ventajas frente a la concepcin secuencial de la misma.
Debe conocer las alternativas de implementar una aplicacin concurrente tanto en un entorno
monoprocesador utilizando un lenguaje de programacin, o los recursos de los sistemas
operativos, o una plataforma distribuida.
Debe saber programar aplicaciones concurrentes utilizando threads Java.
Debe ser capaz de concebir un sistema como distribuido, a fin de decidir si presenta ventajas
frente a una concepcin centralizada.
Debe saber implementar una aplicacin distribuida utilizando RMI Java y CORBA.
Saber integrar la introduccin de los niveles de concurrencia en el proceso de desarrollo de una
aplicacin informtica, como medio de simplificar la estructura interna, optimizar el uso de los
recursos disponibles, mejorar su respuesta temporal y hacerlas mas robustas frente a fallos.
Pgina 1
PROGRAMA DE LA ASIGNATURA
a) Teora: 4.5 Crditos (45 horas)
1 Introduccin a la programacin concurrente. (3 h)
Necesidad y mbito de aplicacin. Procesos. Mecanismos de soporte de la concurrencia
Patologas especficas de programacin concurrente.
2. Sincronizacin en programacin concurrente. (4 h.)
Modelos basados en intercambio de mensajes: Modelos basados en memoria compartida:
Semforos, regiones crticas y monitores. Completitud y expresividad de los mecanismos
sincronizacin.

3. Modelo Java de programacin concurrente. (6 h)
Creacin, propiedades y ciclo de vida de los hilos de concurrencia. Mecanismos de
sincronizacin entre hilos concurrentes. Jerarqua de hilos. Patrones de concurrencia
implementados en Java.
4. Arquitecturas y patrones para aplicaciones concurrentes (4 h)
Patrones de concurrencia. Arquitecturas para aplicaciones concurrentes.
5. Mtodos formales de expresin de la concurrencia. (3h)
lgebra de procesos. Redes de Petri. Anlisis de patologas.
6 Programacin distribuida. (4 h)
Necesidad y mbitos de aplicacin. Modelos de programacin distribuida. Soporte de la
programacin distribuida. Redes de comunicacin, sistemas operativos y middleware de
distribucin. Transacciones. Servicios de soporte de la programacin distribuida.
7 Java distribuido RMI (5 h)
Modelo Java de programacin distribuida. Clases e interfaces Java para RMI. Invocacin de
servicios. Eventos y notificaciones. Soporte de red.
8 Programacin distribuida con objetos y componentes. (8 h)
Arquitecturas basadas en objetos distribuidos. Lenguajes de descripcin de las interfaces.
Correspondencia con los lenguajes de programacin. Servicios distribuidos. Referencia a
objetos. Clases e interfaces Java para programacin basada en objetos distribuidos.
8 Programacin Java de Tiempo Real. (3 h)
Arquitecturas basadas en Java de Tiempo Real. Clases e interfaces Java para programacin
basada en Java de Tiempo Real.
PROGRAMACIN SEMANAL
Lunes y Martes (8:30:9:30): Avance conceptual
Viernes 8:30-9:30: Anlisis de un ejemplo. Y trabajo personal siguiente semana.
Mircoles 8:30-210:30 Jueves 8:30-10:30: Trabajo en laboratorio.2,54cm
Pgina 2
b) Proyectos en laboratorio: 3 crditos (30 horas).
Seminario I: Descripcin de la concurrencia y distribucin con UML (3 horas)
Aula: Seminario de Dpto. de Electrnica y Computadores
Objetivo: Conocer los recursos que ofrece UML para modelar y describir componentes,
aplicaciones y sistemas concurrentes y distribuidos. Utilizar las herramientas UML
CASE para el desarrollo aplicaciones en Java.
Prctica 1,2,3: Implementacin aplicaciones utilizando Java concurrente. (6 horas)
Lab. de Tiempo Real. (Dpto. de Electrnica).
Objetivo: Transformacin de una aplicacin secuencial a una aplicacin concurrente.
Implementacin de la aplicacin utilizando diferentes patrones de concurrencia.
Prctica 4: Implementacin de una aplicacin distribuida utilizando sockets. (2 horas)
Laboratorio de Tiempo Real (Dpto. de Electrnica).
Objetivo: Implementacin de una aplicacin concurrente como aplicacin distribuida utilizando
sockets.
Prctica 5,6,7: Implementacin de una aplicacin distribuida utilizando RMI. (6 horas)
Laboratorio de Tiempo Real (Dpto. de Electrnica).
Objetivo: Transformacin de una aplicacin concurrente a aplicacin distribuida utilizando
Java RMI.
Proyecto 8: Diseo de una aplicacin distribuida. (1 horas)
Seminario (Dpto. de Electrnica).
Objetivo: Diseo de una aplicacin distribuida a partir de su especificacin.
Prctica 9,10: Implementacin de una aplicacin distribuida utilizando ICE. (4 horas)
Laboratorio de Tiempo Real (Dpto. de Electrnica).
Objetivo: Transformacin de una aplicacin concurrente a una aplicacin distribuida
implementada utilizando el middleware ICE.
LIBROS DE TEXTO
DRAKE J.M.: "Programacin concurrente y distribuida".
[http://www.ctr.unican.es/asignaturas/procodis_3_II/index.html]
Bsica
- JAVADOC, referencia de la Api J2SE 6.0. Disponible online.
- B. GOET! "Ja#a conc$rrenc% in prac&ice'. Addison (esle%, 2006.
- Sco&& Oa)s, *enr% (on+, ,i)e -o$)ides! "Ja#a T.reads /Ja#a Series /O01eill% 2
Associa&es33' O01eill% 2 Associa&es boo)s 4 edi&ion /20053
- Geor+e Co$loris, Jean Dolli6ore, Ti6 7indber+!' Dis&rib$&ed S%s&e6s! Concep&s and
Desi+n' Addison (esle%, 5 edi&ion /20083
- ,ic.i *ennin+, ,ar) Spr$iell! Dis&rib$&ed 9ro+ra66in+ :i&. ;ce /eroC3. Disponible online
- Booc. e& al!El -en+$a<e =nificado de ,odelado. G$>a del =s$ario?, 2da edic. 9earson
Ed$caci@n /20063
Pgina 3
Complementaria
- C.arles ,. 7oAiero)! T.e TC9?;9 +$ide ! a co6pre.ensi#e, ill$s&ra&ed in&erne& pro&ocols
reference /20083
- 1BC CD4 /TC93, 1BC CDE/;93, 1BC C6F /=D93. Disponible online.
- Do$+ -ea! "Conc$rren& 9ro+ra66in+ in Ja#a/T,3! Desi+n 9rinciples and 9a&&ern' 9ren&ice
*all 9T1G 2 edi&ion /EDDD3
- Jeff ,a+ee, Jeff 7ra6er! "Conc$rrenc%! S&a&e ,odels and Ja#a 9ro+ra6s' Jo.n (ile% 2
SonsG 2 edi&ion /20063
- 1ober& Orfali, Dan *ar)e%, and Jeri Ed:ar! "T.e essencial Dis&rib$&ed Ob<ec&s S$r#i#al
G$ide' Jo.n (ile% 2 Sons /EDDD3
- Dan *ar)e%, 1ober& Orfali !"Clien&?Ser#er 9ro+ra66in+ :i&. Ja#a and CO1BA' Jo.n (ile%
2 SonsG 2nd B)2Cdr edi&ion /EDDF3
- Andre: (ellin+s! Conc$rren& and 1eal-Ti6e 9ro+ra66in+ in Ja#a /20053
- ,ar)o Bo+er! " Ja#a in Dis&rib$&ed S%s&e6s! Conc$rrenc%, Dis&rib$&ion and 9ersis&ence'
Jo.n (ile% 2 Sons, E edi&ion /200E3
- ,iles % *a6il&on !-earnin+ =,- 2.0. OH1eill% /20063
SISTEMA DE EVALUACION:
Al alumno se le evaluar de forma continuada a travs del trabajo que realice individualmente en el
laboratorio, as como de las memorias que se le encargue realizar sobre las aplicaciones que haya
desarrollado. Esta actividad se evala con los siguientes criterios:
Aprobado; Demuestra conocer los conceptos y manejar las herramientas.
Notable: Contribuye de forma creativa al desarrollo de la aplicacin.
Sobresaliente y MH. Demuestra dominar el proceso de desarrollo de aplicaciones
concurrentes y distribuidas demostrando gran iniciativa y creatividad en el desarrollo de las
mismas.
La evaluacin continuada se evaluar entre 0 y 8 puntos. Se darn dos calificaciones parciales:
10-11-10 y 11-11-10: Programacin concurrente
19-01-11 y 20-01-11: Programacin distribuida
Si el alumno est conforme con la calificacin parcial esta pasa a ser la calificacin definitiva.
Si el alumno no se encuentra conforme con la calificacin que se le asigna en el proceso de
evaluacin continuada, podr presentarse al examen escrito final que ser evaluado entre 0 y 10. En
este caso la calificacin ser 0.5 por la calificacin continuada ms 0.6 por la calificacin del
examen final.
FECHAS DE EXMENES:
Evaluaciones continuadas:
Programacin concurrente: 10 y 11 Noviembre
Programacin distribuida: 19 y 20 de Enero
Exmenes Finales:
Febrero: da: 01-02-11 hora: 9:00 (Fijado por Facultad)
Septiembre: da: 05-09-11 hora: 16:00 (Fijado por Facultad)
Pgina 4
Calendario provisional 2010/2011.
Pgina 5

Vous aimerez peut-être aussi