Vous êtes sur la page 1sur 5

UNIVERSIDAD NACIONAL DE LA PLATA

FACULTAD DE INFORMTICA

PROGRAMACIN DISTRIBUIDA Carrera: Licenciatura en Informtica


Plan 2003-2007
Licenciatura en Sistemas
Plan 2003-2007
Ao:
Ao 2013 Duracin: Semestral
Profesor: Dr. Fernando G. Tinetti
Hs semanales: 6 hs

FUNDAMENTACION:

Se presenta el contexto y los conceptos bsicos de las herramientas de programacin en


los entornos distribuidos. Agrega una visin de mayor nivel de abstraccin de sistemas
operativos y de redes combinados con conceptos propios de sistemas distribuidos.

OBJETIVOS GENERALES:

Analizar las arquitecturas de procesamiento distribuido y los mecanismos de


comunicacin y sincronizacin entre procesos. Integrar los conocimientos anteriores con
el manejo de datos distribuidos. Desarrollar prcticas experimentales sobre redes LAN y
WAN con ambientes de desarrollo orientados a la programacin distribuida.

CONTENIDOS MINIMOS:

Procesamiento distribuido. Modelos y paradigmas.


Distribucin de datos y procesos.
Bases de datos distribuidas.
Migracin de procesos en ambientes distribuidos.
Programacin de aplicaciones en ambientes distribuidos.

Programa

Unidad 1.- Sistemas Distribuidos. Conceptos introductorios. Motivacin. Definiciones.


Caracterizacin y problemas a resolver. Arquitecturas de procesamiento paralelo y su
evolucin a entornos/arquitecturas distribuidos. Redes de interconexin. Modelos de
procesamiento distribuido. Distribucin de datos y procesos. Ejemplos de utilizacin
actual.

Unidad 2.- Patrones Bsicos de Interaccin de Procesos. Productores/Consumidores:


relaciones con pipelines de procesamiento y filtros de los sistemas operativos. Cliente/
servidor: conceptos, ejemplos, sistemas operativos distribuidos, relacin con Internet,

Calle 120 y 50 - C.P. 1900 - La Plata Pg.1 de 5 TEL-FAX: (54) 221-4277270


www.info.unlp.edu.ar
UNIVERSIDAD NACIONAL DE LA PLATA
FACULTAD DE INFORMTICA

relacin con threads. Interaccin entre pares (peer-to-peer): relacin con cmputo
paralelo clsico, identificacin de reas de aplicacin.

Unidad 3.- Pasaje de Mensajes. Pasaje de mensajes asincrnicos. Clientes y


servidores. Interaccin entre pares. Pasaje de mensajes sincrnicos, implementacin de
mensajes asincrnicos con mensajes sincrnicos. Redes y sockets. Ejemplos con
lenguajes y bibliotecas como C, MPI y Java.

Unidad 4.- RPC (Remote Procedure Call, Llamada a Procedimiento Remoto) y


Rendezvous. Concepto de RPC, extensin del modelo de ejecucin procedural
tradicional, relacin con mdulos de programas. Definicin de rendezvous, ejemplos
cliente/servidor e interaccin entre pares. Ejemplos con lenguajes de programacin como
Ada y Java.

Unidad 5.- Problemas/Conceptos Relacionados. Bases de datos distribuidas:


motivacin, antecedentes, relacin con programacin distribuida, consultas y
transacciones distribuidas, migracin y replicacin de datos. Modelo de
cmputo/aplicaciones N-tier. Migracin de procesos en entornos distribuidos, algunas
ideas implementadas en Condor. DSM (Distributed Shared Memory, memoria compartida
fsicamente distribuida): motivacin, implementaciones. Otros modelos y lenguajes: Bag-
of-Tasks (bolsa de tareas), Manager/worker (manejador/trabajador), Master/worker
(maestro/trabajador), Algoritmos de hartbeat y/o sistlicos, Algoritmos de broadcast,
Servidores mltiples, lenguajes Linda y OpenMP, modelo BSP.

Metodologa de enseanza

La modalidad de enseanza incluye:


1) Clases tericas, normalmente guiadas a partir de diapositivas proyectadas y
explicaciones de algunos detalles en pizarrn. Se presentan respuestas a los alumnos
utilizando el pizarrn y en algunos casos ejemplos funcionando sobre un sistema
distribuido para aclaracin de conceptos.
2) Clases prcticas, mayormente para: a) presentacin de los temas de los trabajos
prcticos, y b) consultas de los trabajos prcticos.
3) La actividad de los trabajos prcticos se presenta a travs de informes que se elaboran
de manera grupal o individual y se evalan de manera individual y oral.

Propuesta de evaluacin

La evaluacin se lleva a cabo mediante exmenes parciales y final.


Los exmenes parciales consisten en la defensa de los informes correspondientes a los
trabajos prcticos. Esta defensa es oral e individual a partir de los informes y de los
programas que los alumnos desarrollan para la resolucin de los trabajos prcticos.
El examen final es oral e incluye todos los temas presentados en la asignatura. Cuando
los alumnos deciden llevar a cabo un trabajo final integrador, el examen se suele
concentrar en la defensa del trabajo y la justificacin de cada una de las decisiones
tomadas en el mismo a partir de los conceptos vistos de la asignatura.

Calle 120 y 50 - C.P. 1900 - La Plata Pg.2 de 5 TEL-FAX: (54) 221-4277270


www.info.unlp.edu.ar
UNIVERSIDAD NACIONAL DE LA PLATA
FACULTAD DE INFORMTICA

Bibliografa Obligatoria

Sistemas Distribuidos. Conceptos y Diseo, George Coulouris, Jean Dollimore, Tim


Kindberg. 3ra Edicin, Pearson Educacin, S. A., Madrid, 2001. ISBN 84-7829-049-4.

Distributed Systems: Principles and Paradigms, Andrew S. Tanenbaum, Prentice Hall,


1st edition, ISBN: 0130888931, 2002.

Distributed Computing: Principles and Applications, M. L. Liu, Addison-Wesley, 2004.

Bibliografa Complementaria
Foundations of Multithreaded, Parallel, and Distributed Programming, Gregory R.
Andrews. Addison-Wesley, 2000. ISBN 0-201-35752-6.

Distributed Operating Systems, Andrew S. Tanenbaum, Prentice Hall; 1st edition,


ISBN: 0132199084, 1994.

Cronograma de Clases y Evaluaciones

Clase 1: Introduccin a los sistemas distribuidos, desde la perspectiva de la programacin


en ese entorno. Caractersticas comunes. Relacin de los temas de programacin a
desarrollar con Redes y Sistemas Operativos.

Clase 2: RPC (Remote Procedure Call) como primer mecanismo de programacin


distribuida. Evolucin hacia web services. Caractersticas de lenguajes utilizados
(implementacin) y flexibilidad. Impacto de la concurrencia. Presentacin del primer
trabajo prctico.

Clase 3: Ventajas y desventajas de los sistemas distribuidos respecto de los


centralizados. Tipos de sistemas distribuidos. Caracterizacin del modelo de
procesamiento y programacin de los sistemas cliente/servidor. Consultas para la
resolucin del primer trabajo prctico.

Clase 4: Comparacin entre Sistema Operativos Distribuidos, Sistemas Operativos de


Red y definicin de Middleware (capas intermedias de software). Arquitecturas/modelos
de sistemas distribuidos y su impacto en la programacin: 2, 3, n capas, desacoplados en
espacio, desacoplados en espacio y tiempo. Consultas para la resolucin del primer
trabajo prctico.

Clase 5: RMI (Remote Method Invocation) como mecanismo de programacin en Java y


utilizado por sistemas programados en Java. Comparacin con RMI. Impacto de la
concurrencia. Anlisis de transparencia. Presentacin del segundo trabajo prctico.

Calle 120 y 50 - C.P. 1900 - La Plata Pg.3 de 5 TEL-FAX: (54) 221-4277270


www.info.unlp.edu.ar
UNIVERSIDAD NACIONAL DE LA PLATA
FACULTAD DE INFORMTICA

Clase 6: Comunicaciones en sistemas distribuidos y si impacto en la programacin.


Relacin con el modelo de capas ISO/OSI. Aspectos de abstraccin, persistencia y
sincronismo que impactan en la programacin de los sistemas distribuidos. Consultas
para la resolucin del segundo trabajo prctico.

Clase 7: Movilidad de cdigo: motivacin/diferencia respecto de la movilidad de datos.


Tipos de movilidad. Implementaciones actuales y la relacin con el manejo de procesos y
threads de los sistemas operativos. Relacin de la movilidad de cdigo con la
virtualizacin. Manejo de recursos en general, relacionados con la movilidad de cdigo.
Consultas para la resolucin del segundo trabajo prctico.

Clase 8: Sincronizacin en sistemas distribuidos y su impacto en la programacin o en el


entorno de programacin. Definicin y motivaciones. Diferencia entre ordenamiento de
eventos y sincronizacin de los relojes. Anlisis desde la perspectiva de las relaciones de
orden. Presentacin del tercer trabajo prctico.

Clase 9: Algoritmos especficos de sincronizacin. Anlisis de la implementacin de


algoritmos de sincronizacin lgica y fsica. Relacin de la implementacin de los
algoritmos con las cotas de error o con la definicin de eventos concurrentes. Anlisis de l
estados globales, y la evaluacin formal de eventos o predicados sobre eventos.
Consultas para la resolucin del tercer trabajo prctico.

Clase 10: Aspectos de la programacin de dispositivos mviles. Evolucin asociada a la


evolucin de la comercializacin y capacidad de dispositivos. Anlisis de los entornos de
programacin e impacto en la implementacin. Consultas para la resolucin del tercer
trabajo prctico.

Clase 11: Nombres en sistemas distribuidos: definiciones, evolucin, motivacin y anlisis


de la implementacin de algunos sistemas de nombres. Anlisis del sistema DNS
(Domain Name System) como sistema de nombres en sistemas distribuidos. Aspectos de
transparencia relacionados con la programacin de los sistemas distribuidos.
Presentacin del cuarto trabajo prctico.

Clase 12: Comentarios y anlisis extendido de los aspectos de concurrencia, paralelismo


y fallas relacionados con los sistemas vistos en la prctica. Consultas para la resolucin
del cuarto trabajo prctico.

Examen Parcial. Incluye la evaluacin de los trabajos prcticos.

1er. Recuperatorio del Examen Parcial. Incluye la evaluacin de los trabajos prcticos.

2do. Recuperatorio del Examen Parcial. Incluye la evaluacin de los trabajos prcticos.

Calle 120 y 50 - C.P. 1900 - La Plata Pg.4 de 5 TEL-FAX: (54) 221-4277270


www.info.unlp.edu.ar
UNIVERSIDAD NACIONAL DE LA PLATA
FACULTAD DE INFORMTICA

Contacto de la Ctedra: pd@ada.info.unlp.edu.ar

Firma de los profesores responsables:

Calle 120 y 50 - C.P. 1900 - La Plata Pg.5 de 5 TEL-FAX: (54) 221-4277270


www.info.unlp.edu.ar

Vous aimerez peut-être aussi