Programació Concurrent (PC)
Professors Responsables: |
XAVIER MESSEGUER PEYPOCH (messeguer lsi.upc.edu)
|
|
Crèdits: 6.0 (3.0 T 1.5 P 1.5 L)
|
Departament:
LSI
|
Tipus d'assignatura
Optativa per la EI , ETIG , ETIS
Requisits de l'assignatura
EDA
- Pre-requisit per la EI , ETIG , ETIS
|
|
ISO
- Pre-correquisit per la EI , ETIG , ETIS
|
|
Objectius docents
Aprendre a especificar, dissenyar i implementar algorismes paral.lels i concurrents. Com a conseqüència es vol que els estudiants siguin capaços de raonar amb rigor i elegància respecte als programes que realitzin. Per això presentem amb cura els fonaments teòrics dels diferents paradigmes existents. A més a més veiem com implementar aquests paradigmes en JAVA .
Programa
1. Processos i Fils
- Modelat: prefix, no determinisme, indexació i parametrització. - Implementació: fils en Java, cicle de vida, un exemple.
2. Execució concurrent
- Modelatge: composició, accions compartides, reetiquetament, ocultació. - Diagrames d'estructura: un exemple. - Programació multifil: un exemple.
3. Exclusió mútua
- Interferència: un exemple. - Exclusió mútua en Java. - Modelatge de l'exclusió mútua.
4. Monitors
- Condicions de sincronització: un exemple. - Condicions de sincronització en Java: un exemple. - Semàfors: Modelatge de semàfors. - Semàfors en Java. - Buffers fitats. - "Nested monitors".
5. Blocatge
- Anàlisi per blocatges. - El dinars dels filòsofs: disseny i implementació.
6. Propietats de seguretat i vivacitat
- Seguretat: propietats de seguretat, exlusió mútua. - Problema del pont d'una sola via: model i implementació. - Vivacitat: propietats de progrés, anàlisi pel progrés, prioritats. - Problemes de vivacitat en el pont. - Lectors escriptors: seguretat, progrés i implementació.
7. Diseny basat en models
- Dels requeriments al model: un exemple. - Del model a la implementació.
8. Pas de missatges
- Síncrons: model, modelatge en Java, un exemple. - Asíncron: ports, modelatge en Java, un exemple. - Petició-resposta (rendezvous).
Avaluació
La nota és sobre 10 i dependrà de: - Un 25% donada per les pràctiques. - Un 75% com a resultat d'una prova que es realitzarà al final del quadrimestre. La nota pot ser corregida per la informació recollida pel professor en la classe de problemes. Cas que els estudiants ho desitgin, a mitjans del quadrimestre, es farà una prova curta. En aquest cas el resultat servirà per ponderar la nota final.
Càrrega
El curs està separat en tres parts que es van intercalant en el temps. - Classes de teoria. Es preveu que es podran fer unes 13 classes de 2 hores setmanals cadascuna. Es presentarà el corpus teòric bàsic necessari per a la construcció i anàlisi de programes senzills en els diferents paradigmes. - Classes de problemes.Es preveu que es podran fer unes 6 classes (quinzenals) de 2 hores setmanals cadascuna. S'intentarà que siguin els mateixos estudiants els que resolguin els problemes encara que sigui parcialment o amb incorreccions. La feina del professor serà completar i corretgir les errades que puguin aparèixer. - Classes de laboratori.Es preveu que es podran fer unes 6 classes (quinzenals) de 2 hores setmanals cadascuna. D'una part, es presentarà l'entorn informàtic necessari per a poder desenvolupar els diferents paradigmes amb fluidesa. D'altra part es donaran als estudiants pràctiques de talla petita que cladrà programar.
Bibliografia
Bibliografia bàsica
- MAGEE, J . i KRAMER, J. Concurrency, State models and Java Programs Wiley, 1999 - ANDREWS, G Concurrent Programming The Benjamin Cummings, 1991 - ARNOLD, K i GOSLING, J. The Java Programming Language, Second Edition Addison Wesley, 1998 - LEA, D. Programación concurrente en Java Addison Wesley, 1997
Bibliografia complementària
- BEN-ARI, M Principles of Concurrent and Distributed Programming Prentice-Hall
International, 1990 - ABAT, M.T Composición de Esquemas Paralelos Dept.
LLenguatges i Sistemes Informàtics, Report LSI-94-1-T. - MESSEGUER, X Manual de Laboratori de Programació Concurrent sobre Ada Dept. LLenguatges i Sistemes Informàtics, Report LSI-94-12. - MONTERO, J.L.; NAVARRO SOTO, A.; VILLAR, A. Curs d'Introducció i Cerca d'Informació a Internet Lab. Càlcul de L.S.I., 1998
Informació complementària
Altres professors: Joaquim Gabarro, Josep Vilaplana
|