Saltar al contingut Menu
Mapa
  • Inici
  • Informació
  • Contacte
  • Mapa

Programaciˇ Concurrent i Distribu´da (PCD)

CrŔdits Dept. Tipus Requisits
7.5 (6.0 ECTS) CS
  • Optativa per a l'EI
  • Optativa per a l'ETIG
  • Optativa per a l'ETIS
PRED - Pre-requisit per la EI , ETIG
PS - Pre-requisit per la ETIS

Professors

Responsable:  (-)
Altres:(-)

Objectius Generals

Que els estudiants aprenguin a dissenyar i implementar programes concurrents i distribu´ts de manera segura i fiable. Per guiar als estudiants en les tasques de disseny s'introdueix el LST (Labelled System Analyser), un model que permet dissenyar, visualitzar i analitzar sistemes de transicions. A fi de que els estudiants tinguin una visiˇ mÚs completa de la concurrŔncia i dels sistŔmes distribu´ts s'ensenyen altres models com per exemple les Xarxes de Petri. A fi de tenir una visiˇ completa dels passos que van de la modelitzaciˇ a la implementaciˇ es fan prÓctiques en els llenguatge de programaciˇ Java i Erlang. Les prÓctiques de Xarxes de Petri es fan an WoPeD.

Objectius Específics

Coneixements

  1. Que coneguin els sistemes de transiciˇ etiquetas com a eina de disseny i anÓlsisi dels programas concurrent i distribu´ts.
  2. Que coneguin algun software, per exemple LTS, de disseny i anÓlisi de sistemes de transiciˇ.
  3. Que coneguin les Xarxes de Petri com un altre model formal de disseny i anÓlisi.
  4. Que tinguin una idea clara dels problemes bÓsics que poden apareixer en programaciˇ cocurrent i distribu´da.
  5. Que coneguin les parts de Java i Erlang relacionades amb programaciˇ concurrent i distribu´da.

Habilitats

  1. Que als estudiants puguin modelitzar i analitzar a ma, exemples molt senzills de programes concurrents mitjašant un sistemes de transiciˇ etiquetats.
  2. Que puguin utilitzar amb flu´desa una eina d'anÓlisi basada en sistemes de transiciˇ per exemple el LTS.
  3. Que pugin utilitzar les Xarxes de Petri com un altre model formal de disseny i anÓlisi.
  4. Que puguin utilitzar amb flu´desa les parts de Java i Erlang relacionades amb programaciˇ concurrent i distribu´da.

Competències

  1. Que puguin raonar de manera formal, emprant si cal programes, a fi de poder dir
    si un disseny Ús o no correcte.
  2. Poder passar d'eines abstractes de disseny i anÓlisi i implementacions en llenguatges de programaciˇ, como Java i Erlang.

Continguts

Hores estimades de:

T P L Alt L Ext. Est A Ext.
Teoria Problemes Laboratori Altres activitats Laboratori extern Estudi Altres hores fora d'horari fixat

1. Sistemes de transiciˇ i ßlgebra de processos.
T      P      L      Alt    L Ext. Est    A Ext. Total 
6,0 6,0 3,0 0 3,0 12,0 0 30,0
Sistemes de transiciˇ i processos primitius. Operacions de prefix i tria. Processos concurrents i la seva execuciˇ. Descripciˇ dels sistema LTS. Implementaciˇ en Java i Erlang.

2. Objectes concurrents, exclusiˇ m˙tua i condicions de sincronitzaciˇ, problema del deadlock.
T      P      L      Alt    L Ext. Est    A Ext. Total 
4,0 4,0 2,0 0 2,0 9,0 0 21,0
Problema de l'interferŔncia destructiva. Locks i exclusiˇ m˙tua. Modelitzaciˇ de semÓfors i del problema dels monitors imbricats. Problema de deadlock, analisi mitjanšant LST.

3. Propietats de seguretat (safety) i vivacitat (liveness).
T      P      L      Alt    L Ext. Est    A Ext. Total 
4,0 4,0 2,0 0 2,0 9,0 0 21,0
Descripciˇ i exemples de propietats de seguretat i implementaciˇ mitjanšant LTS. Descripciˇ de les propitats de vivacitat, en especial la de progress, i implementaciˇ en LTS.

4. Pas de missatges i arquitectura client/servidor, altres arquitectures.
T      P      L      Alt    L Ext. Est    A Ext. Total 
6,0 6,0 3,0 0 3,0 12,0 0 30,0
Pas de missatges. Arquitectura client/servidor,
Inroducciˇ a altres arquitectures.:pilelines de filtres, suvervisor/treballadors, anunciant/o´ent.
Pas de missatges en Erlang. Disseny en Erlang d'una arquitectura client/servidor.

5. Xarxes de Petri, model i algorismes bÓsics.
T      P      L      Alt    L Ext. Est    A Ext. Total 
4,0 4,0 2,0 0 2,0 9,0 0 21,0
Exemples de xarxes de Petri. Algorisme de Karp i Miller.
Classes especials de xarxes de Petri. Introducciˇ a WoPed.

6. Xarxes de Petri; modelitzacio.
T      P      L      Alt    L Ext. Est    A Ext. Total 
4,0 4,0 2,0 0 2,0 9,0 0 21,0
Estudi de casos: "rearrangement distribu´t", exclusiˇ m˙tua autoestabilitzant, protocols amb missatges ack.


Total per tipus T      P      L      Alt    L Ext. Est    A Ext. Total 
28,0 28,0 14,0 0 14,0 60,0 0 144,0
Hores addicionals dedicades a l'avaluació 6,0
Total hores de treball per l'estudiant 150,0

Metodologia docent

A les classes de teoria s'introduiran els conceptes bÓsics mitjanšant exemples. En les classes d'exercicis, els estudiants, resoldran exercicis sobre els temes de de les classes de teoria. En les classes de laboratori es veurÓ com implementar aquests problemes (o problemes semblants) en Java i Erlang. Tant en classes de problemes com de laboratori es podrÓ utilitzar eines de disseny i anÓlisi com el LTS.

Mètode d'avaluació

Hi haurÓ examen final i nota de laboratori. L'exÓmen serÓ de problemes sobre la teoria explicada. La nota de laboratori reflectirÓ la qualitat del treball realitzat. La nota final serÓ:
0.6*examen final + 0.4*laboratori

Bibliografía bàsica

  • Jeff Magee & Jeff Kramer Concurrency : State Models & Java Programming (Second Edition), John Wiley & Sons, 2006.
  • Perterson, James Petri net theory and the modeling of systems, Prentice-Hall, 1981.
  • JosÚ Tomßs Palma MÚndez ... [et al.] Programaciˇn concurrente, International Thomson, 2003.
  • Joe Amstrong Programming Erlang, Software for a Concurrent World, Pragmatic Bookshelf, 2007.
  • Sharon Zakhour, Scott Hommel, Jacob Royal, Isaac Rabinovitch, Tom Risser, Mark Hoeber The Java Tutorial, Fouth Edition, a Short Course on the Basics, Addison Wesley, 2006.

Bibliografía complementària

  • Doug Lea Concurrent programming in Java (Second Edition) : Design Principles and Patterns, Addison-Wesley, 2000.
  • Bil Lewis, Daniel J. Berg Multithreaded programming with Java technology, Prentice Hall, 2000.
  • Francesco Cesarini, Simon Thompson Erlang, a Concurrent Approach to Software Development, O' Reilly, 2009.

Enllaços web

  1. http://java.sun.com/
    Molt interessant per tot el que Ús de Java.


  2. http://www.doc.ic.ac.uk/~jnm/book/
    El lloc de referŔncia pel LTS i per la primera part del curs.


Capacitats prèvies

Bons coneixements de Java a nivell de classes i objectes.


Compartir

 
logo FIB © Facultat d'Informàtica de Barcelona - Contacte - RSS
Aquest web utilitza cookies pr˛pies per oferir una millor experiŔncia i servei. En continuar amb la navegaciˇ entenem que acceptes la nostra polÝtica de cookies.
Versiˇ clÓssica Versiˇ m˛bil