Programació concurrent i paral·lela (3105IS0011/2011)
Dades generals
-
Curs acadèmic :
2011
-
Descripció :
Blocatges, inanició i exclusió mútua. Sincronització i comunicació. Programació multi-threading en Java.
-
Crèdits :
6
-
Idioma principal de les classes :
Castellà
-
S'utilitza oralment la llengua anglesa en l'assignatura :
Poc (25%)
-
S'utilitzen documents en llengua anglesa :
Majoritàriament (75%)

Grups
Grup B
Durada : Semestral, 2n semestre
Professorat : ROEL ELFEGO MARTINEZ RAMIREZ
Horaris :
|
Activitat |
Horari |
Grup de classe |
Aula |
|---|
| Teoria | 1 | | |
| Pràctiques d'aula informàtica | 1 | | |

Competències
- Ser capaç d'analitzar, dissenyar i implementar un algorisme i la seva estructura de dades.
Altres competències :
- 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.

Continguts
1. 1.- Introducció. (Temporalització: 1 h.)
2. 2.- Conceptes bàsics. (Temporalització: 6 h.)
3. 2.1 Problemes específics de la concurrencia
4. 2.2 Gestió de l'exclusió mútua.
5. 2.3 Evolució del paral.lelisme.
6. 3.- Tipologia dels processos concurrents. (Temporalització: 4 h.)
7. 3.1 Metodologia de programació paral.lela.
8. 3.2 Esquemes de competència, cooperació i comunicació.
9. 3.3 Abraçades mortals.
10. 4.- Gestió de la concurrència en sistemes monoprocessador. (Temporalització: 10 h.)
11. 4.1 Semàfors
12. 4.2 Regions crítiques i regions crítiques condicionals.
13. 4.3 Monitors.
14. 5.- Programació orientada a objectes concurrent amb Java.. (Temporalització: 14 h.)
15. 5.1 Objectes i concurrència.
16. 5.1.1 Disseny i patrons.
17. 5.2 Exclusió.
18. 5.2.1 Immutabilitat.
19. 5.2.2 Sincronització.
20. 5.2.3 Confinament.
21. 5.2.4 Estructuració de classes
22. 6.- Gestió de la concurrència en sistemes multiprocessador. (Temporalització: 4 h.)
23. 6.1 Mètode dels missatges.
24. 6.2 Notació.
25. 6.3 Exemple pas de missatges.
26. 7.- Programació paral.lela. (Temporalització: 6 h.)
27. 7.1 Introducció.
28. 7.2 Paral.lelisme massiu.
29. 7.3 Programació en clusters.
Activitats
|
Tipus d'activitat |
Hores amb professor |
Hores sense professor |
Total |
|---|
| Anàlisi / estudi de casos | 0,5 | 0 | 0,5 |
| Classes expositives | 26 | 0 | 26 |
| Classes pràctiques | 24 | 0 | 24 |
| Elaboració de treballs | 0 | 30 | 30 |
| Lectura / comentari de textos | 0 | 13 | 13 |
| Prova d'avaluació | 3 | 0 | 3 |
| Treball en equip | 0 | 10 | 10 |
| Tutories | 22 | 0 | 22 |
|
Total | 75,5 | 53 | 128,5 |

Bibliografia
- Doug Lea (2000). Concurrent Programming in Java. Design principles and patterns (Second Edition). Addison Wesley. Catàleg

- Gregory R. Andrews (2000). Foundations of multithreaded, parallel and distributed programming. Addison Wesley. Catàleg

- Gregory R. Andrews (1991). Concurrent Programming: principles and practice. Benjamin/Cummings. Catàleg

- Paul Hyde (1999). Java Thread Programming. SAMS. Catàleg


Avaluació i qualificació
Activitats d'avaluació
|
Descripció de l'activitat |
Avaluació de l'activitat | % |
|---|
| Containers en Java | | |
| Threads en Java | | |
| Threads en Java | | |
| Prioridades en Threads | | |
| Demonis amb Threads | | |
| Prioritats i demonis en Threads | | |
| Lectors-Escriptors | | |
| Sincronitazció | | |
| Abraçada mortal | | |
| Confinament amb objectes | | |
| Confinament amb grups | | |
| Confinament | | |
| Estructuració de classes | | |
| Estructuració de classes | | |
| Paral.lelisme en clusters | | |
| Examen final | | |
Qualificació
Mètodes docents:
Classes de teoria i problemes: 4 hores setmanals
Pràctiques: 2 hores setmanals
Tipus d'exàmens:
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 i exercicis de laboratori representen el 50% de la nota, tascas diverses 10% i l'examen el 40%.

Observacions
Durant el curs es desenvoluparan diferents treballs pràctics utilitzant el llenguatge JAVA. Es important una bona base de disseny/programació orientada a objectes.
