Universitat de Girona

Programa de l'assignatura

Curs 2003-04

3105IS0011 PROGRAMACIÓ CONCURRENT I PARAL·LELA


Objectius  

En aquesta assignatura es pretén dotar a l'estudiant d'uns hàbits de disseny i desenvolupament d'algorismes que li facilitin la implementació de solucions concurrents utilizant qualsevol del models i llenguatges especializats existents. Tot i que es fa una important incursió en el llenguatge java i la seva metodologia de programació concurrent. També es pretén inculcar a l'alumne les dificultats intrínsiques que comporta qualsevol tipus de paralel.lisme.
 
Prerrequisits  

Obligatoris:
Recomanats: Estructura de dades i algoritmes
 
Contingut (Programa)  

1.- Introducció. (Temporalització: 1 h.)
2.- Conceptes bàsics. (Temporalització: 6 h.) 2.1 Problemes específics del paral.lelisme.
2.2 Gestió de l'exclusió mútua.
2.3 Evolució del paral.lelisme.
3.- Tipologia dels processos concurrents. (Temporalització: 4 h.) 3.1 Metodologia de programació paral.lela.
3.2 Esquemes de competència, cooperació i comunicació.
3.3 Abraçaderes mortals.
4.- Gestió de la concurrència en sistemes monoprocessador. (Temporalització: 10 h.) 4.1 Semàfors
4.2 Regions crítiques i regions crítiques condicionals.
4.3 Monitors.
5.- Programació orientada a objectes concurrent amb Java.. (Temporalització: 14 h.) 5.1 Objectes i concurrència. 5.1.1 Disseny i patrons. 5.2 Exclusió. 5.2.1 Immutabilitat.
5.2.2 Sincronització.
5.2.3 Confinament.
5.2.4 Estructuració de classes
6.- Gestió de la concurrència en sistemes multiprocessador. (Temporalització: 5 h.) 6.1 Mètode dels missatges.
6.2 Notació.
6.3 Exemple pas de missatges.
7.- Programació paral.lela. (Temporalització: 5 h.) 7.1 Introducció.
7.2 Paral.lelisme massiu.
7.3 Programació multi-threading.
 
Bibliografia  


Bibliografia bàsica a utilitzar durant el curs.

- ANDREWS, G.: Concurrent Programming. Principles and practice. The Benjamin/Cummings Publishing Company, 1990.
- ANDREWS, G.: Foundations of multithreaded, parallell and distributed programing. Ed. Addison-Wesley, 2000.
- LEA, D.: Concurrent programming in JAVA: design principles and patterns. Ed. Addison-Wesley, 2a. edició 1999

Altra bibliografia utilitzada:

- PÉREZ MARTÍNEZ, J.E.: "Programación Concurrente". Ed. Rueda. Madrid, 1990.
- BEN-ARI, M.: "Principles of Concurrent and distributed Programming". Ed. Prentice-Hall, 1990.
- BURNS, A.; DAVIES, G.: "Concurrent Programming". Ed. Addison-Wesley, 1993.
 
Mètodes docents  

Classes de teoria i problemes: 3 hores setmanals
Pràctiques: 1 hora setmanal
 
Tipus d'exàmens i avaluacions  

La nota de l'assignatura s'obtindrà a partir de l'examen sobre els continguts de l'assignatura així com l'avaluació de les diferents pràctiques desenvolupades. Les pràctiques representen el 40% de la nota i l'examen el 60%.
 
Informació addicional  

Durant el curs es desenvoluparan diferents treballs pràctics utilitzant el llenguatge JAVA
 
Llengua de les classes  

Castellà