Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Ana Beatriz Pérez Zapata

Trimestre: Segon trimestre

Crèdits: 6

Professorat: 

Enric Sesa Nogueras

Idiomes d'impartició


  • Català

Les classes són en català. La major part de la documentació (inclosos els enunciats de pràctiques i exàmens) són en anglès. 

Competències


Competències bàsiques
  • B2_Que els estudiants sàpiguen aplicar els seus coneixements a la seva feina o vocació d'una forma professional i tinguin les comptències que demostren mitjançant l'elaboració i defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi

     

  • B5_Que els estudiants hagin desenvolupat aquelles habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia

     

Competències específiques
  • EFB5_Coneixement de l'estructura, organització, funcionament i interconnexió dels sistemes informàtis, els fonaments de la seva programació i la seva aplicació per a la resolució de problemes propis de l'enginyeria

     

  • EIS1_Capacitat per a desenvolupar, mantenir i avaluar serveis i sistemes software que satisfacin tots els requisits de l'usuari i que es comportin de forma fiable i eficient, siguin assequibles de desenvolupar i mantenir i compleixin normes de qualitat, aplicant les teories, principis, mètodes i pràctiques de l'enginyeria del software

     

  • EIS4_Capacitat d'identificar i analitzar problemes i dissenyar, desenvolupar, implementar, verificar i documentar solucions software sobre la base d'un coneixement adequat de les teories, models i tècniques actuals

     

Competències transversals
  • T1_Que els estudiants coneixin un tercer idioma, que serà preferentment l'anglès, amb un nivell adequat de forma oral i per escrit, d'acord amb les necessitats que tindran les graduades i els graduats a cada titulació

     

Descripció


En aquesta assignatura s'introdueixen, des d'una vessant eminentment pràctica, els conceptes, problemes i pràctiques  més rellevants de la programació concurrent.

Aquesta assignatura s'hauria de cursar després d'haver superat l'assignatura Sistemes Operatius

 

Continguts


1.- Conceptes fonamentals

  • Programes, procesos, i fils
  • Parel·lelisme vs. concurrència
  • Arquitectures

2.- Implementació de procesos i fils

  • Fils en Java: la classe Thread i la interfície Runnable
  • Cicle de vida d'un fil

3.- Interferència i el problema de la secció crítica

  • Interferència
  • Exclusió mútua
  • Algorismes que garanteixen l'exclusió mútua

4.- Eines

  • Test & Set
  • Semàfors
  • Monitors

5.- Deadlock, safety & liveness

6.- Sistemes distribuits

Sistema d'avaluació


La qualificació final de l’assignatura (QF) es calcularà en funció de la qualificació de les pràctiques de laboratori (Pr, 50%) i d'un examen final (Ex, 50%)

 

QF = Ex si Ex< 4

QF = 0.5·Ex + 0.5·Pr si Ex >= 4


Els estudiants amb QF < 5 podran realitzar un examen de recuperació que substituirà la primera qualificació Ex  en el càlcul de QF. En cas d'haver de fer l'examen de recuperació, les qualificacions finals en l'interval [5, 7.5) seran arrodonides a 5. Les qualificacions finals en l'interval [7.5, 10] seran arrodonides a 7.

Les pràctiques no són recuperables. 


Es responsabilitat de l'alumne evitar el plagi en totes les seves formes. En el cas de detectar un plagi, independentment del seu abast, en alguna activitat avaluativa (incloses les pràctiques), s'aplicarà l'article 8 de la normativa d'avaluació que comporta el suspens automàtic de l'assignatura sense possibilitat de recuperació. A més, el professor comunicarà a la Cap d'Estudis la situació per a que en prengui mesures  aplicables en matèria de règim sancionador. En el context d'aquesta assignatura, plagi també significa utilitzar i/o adaptar codi que no s'hagi desenvolupat de manera totalment individual (o en el si del grup en el cas d'activitats grupals). Facilitar el codi que dóna lloc al plagi és també una forma de plagi i serà tractat de la mateixa manera. De manera resumida podem dir que les activitats avaluatives s'han de resoldre de manera estrictament no col·laborativa (en el cas d'activitats en grup la col·laboració no pot transcendir el si del grup). 

 

Bibliografia


Bàsic

Ben-Ari, Mordechai. Principles of concurrent and distributed programming. 2006. Essex: Pearson, 2006. ISBN 9780321312839.

Palma Méndez, José Tomás et al,. Programación concurrente. Madrid: International Thomson, 2003. ISBN 8497321847.

Complementary

Magee, Jeff; Kramer, Jeff. Concurrency : state models & Java programs. 2nd ed. Chichester: John Wiley & sons, 2006. ISBN
0470093552.