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

Programaciķ Concurrent i Distribuīda (PCD)

Crčdits Dept.
7.5 (6.0 ECTS) CS

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