Escuchar

21720. Programació Concurrent . Grup 1

Identificació de l'assignatura

Assignatura21720 - Programació Concurrent
Grup Grup 1 ( Campus Digital )
Any acadèmic 2019-20
Crèdits6 crèdits
Període d'impartició Primer semestre
Idioma d'impartició Català
Titulació -

Professors

Professor/aHorari d'atenció alumnes
Hora d'iniciHora de fiDia de la setmanaData d'iniciData de fiDespatx/Edifici
Miguel Mascaró Oliver
miquel.mascaromiquel.mascaro@uib.esuib.es
Responsable
10:30h12:30h Dilluns 16/09/201929/05/2020 D143 Anselm Turmeda

Contextualització

L'assignatura de Programació concurrent és una de les quinze assignatures que integren el mòdul d'assignatures comuns de la branca d'informàtica.

Els programes moderns són inherenment concurrents o distribuïts, des d'implementacions basades en esdeveniments d'interficies gràfiques d'usuari, a sistemes de temps real, a aplicacions d'Internet com jocs multiusuari, chats i comerç electrònic. Els llenguatges de programació moderns suporten la programació concurrent i distribuïda mitjançant les seves llibreries estàndards i serveis dels sistemes operatius.

Requisits

Aquesta assignatura va més enllà dels coneixements adquirits a Sistemes Operatius i està relacionada amb l'assignatura de Disseny de Sistemes Distribuïts

Essencials

Algorismia

Recomanables

Sistemes Operatius I, Sistemes Operatius II, Estructures de dades, Programació I i Programació II

Competències

Com a resultat de l'aprenentatge de l'assignatura l'estudiant ha de demostrar coneixements de:

  • Problemes i models formals de concurrència, competència i cooperació
  • Algorismes de memòria compartida
  • Algorismes distribuïts
  • Principis bàsics de sistemes de temps real

Específiques

  • CCM11 - Coneixement i aplicació de les característiques, funcionalitats i estructura dels Sistemes Distribuïts, les Xarxes de Computadors i Internet i dissenyar i implementar aplicacions basades en elles.
  • CCM14 - Coneixement i aplicació dels principis fonamentals i tècniques bàsiques de la programació paralel·la, concurrent, distribuïda i de temps real

Genèriques

  • CTR02 - Capacitat d'anàlisi crític i de proposta i aplicació de noves solucions
  • CTR03 - Capacitat per adquirir de forma autònoma nous coneixements
  • CTR04 - Capacitat per a la recerca de recursos i de gestió de la informació a l'àmbit de la informàtica
  • CTR07 - Capacitat per comunicar conceptes pròpis de la informàtica de manera oral i escrita en diferents àmbits d'actuació

Bàsiques

Podeu consultar les competències bàsiques que l'estudiant ha d'haver assolit en acabar el grau a l'adreça següent: http://estudis.uib.cat/grau/comp_basiques/

Continguts

Continguts temàtics

1 Introducció a la programació concurrent
  • Definicions bàsiques i terminologia
  • Sincronització i abstracció
  • Problemes d'intercalat
  • Concurrència, multitasca i multiprocessador
  • Intercalat i sentències atòmiques
  • Situació de competició
  • Cocurrència amb diferents llenguatges
2 El problema de la regió crítica
  • Definició del problema
  • Requisits de la solució
  • Algorismes errònis
  • Algorisme de Dekker
  • Algorisme de Peterson i d'altres millores
3 Algorismes avançats per a sistemes de memòria compartida
  • L'algorisme del forn de pa
  • Algorismes ràpids
4 Solucions per Hardware
  • Primitives de Hardware get&set, get&add, tes&set, swap, compare&swap
  • Implementacions en diferents llenguatges
5 Semafors
  • Definicions bàsiques
  • Semàfors comptador i binari
  • Algorisme de Bartz
  • Secció crítica amb semàfors
  • Barreres de memòria
  • El problema del sopar dels filòsofs
  • Solució de Tanenbaum al problema dels filòsofs
6 Monitors
  • Definicions. Variables de condició
  • El problema dels productors / consumidors
  • El problema dels lectors / escriptors
  • El problema del sopar dels filòsofs
7 Canals
  • Definicions. Els canals a Go
  • Barreres
  • Productors / consumidors
  • Mutex i semàfors amb canals
  • El problema del sopar dels filòsofs
  • Multiplicació de matrius en paral·lel
  • Rendevous
8 Algorismes distribuïts
  • Estructura dels processos distribuïts
  • Algorisme de Ricart - Agrawala
  • Algorismes de pas de testimoni
9 Propietats globals
  • Terminació distribuïda, algorisme de Dijkstra - Scholten
  • Instantànies: Algorisme de Chandy - Lamport
10 Consens
  • El problema dels generals bizantins
  • Algorisme d'inundació
11 Sistemes de temps real
  • Introducció i definicions
  • Sistemes síncrons i asíncrons
  • Inversió i herència de prioritats
  • Ravenscar Profile
12 Memòria transaccional
  • Propietats ACID
  • Control de la concurrència

Metodologia docent

Activitats de treball presencial (2,4 crèdits, 60 hores)

ModalitatNomTip. agr.DescripcióHores
Classes teòriques Teoria Grup gran (G)
  • Classes magistrals on es desenvoluparan els conceptes per a la compresió dels continguts de l'assignatura
  • Sessions col·laboratives de preguntes i respostes
  • Explicació d'algorismes i exemples
48
Classes pràctiques Pràctiques Grup mitjà (M)
  • Desenvolupament d'exemples il·lustratius dels conceptes vists a teoria emprant diferents llenguatges de programació
  • Desenvolupament de les pràctiques del curs
12

A començament del semestre hi haurà a disposició dels estudiants el cronograma de l'assignatura a través de la plataforma UIBdigital. Aquest cronograma inclourà almenys les dates en què es faran les proves d'avaluació contínua i les dates de lliurament dels treballs. A més, el professor o la professora informarà els estudiants si el pla de treball de l'assignatura es durà a terme a través del cronograma o per una altra via, inclosa la plataforma Aula digital.

Activitats de treball no presencial (3,6 crèdits, 90 hores)

ModalitatNomDescripcióHores
Estudi i treball autònom individual o en grup Estudi i pràctiques
  • Lectura de documentació relacionada
  • Desenvolupament de les pràctiques del curs
  • Participació en foros del Campus Extens
90

Riscs especifics i mesures de protecció

Les activitats d'aprenentatge d'aquesta assignatura no comporten riscs específics per a la seguretat i salut dels alumnes i, per tant, no cal adoptar mesures de protecció especials.

Avaluació de l'aprenentatge dels estudiants

D'acord amb l'article 33 del Reglament Acadèmic, "amb independència del procediment disciplinari que es pugui seguir contra l'estudiant infractor, la realització demostradorament fraudulenta d'algun dels elements d'avaluació inclosos en guies docents de les assignatures comportarà, a criteri del professor, una menysvaloració en la seva qualificació que pot suposar la qualificació de «suspens 0» a l'avaluació anual de l'assignatura".

Teoria
Modalitat Classes teòriques
Tècnica Proves de resposta llarga, de desenvolupament ( recuperable )
Descripció
  • Classes magistrals on es desenvoluparan els conceptes per a la compresió dels continguts de l'assignatura
  • Sessions col·laboratives de preguntes i respostes
  • Explicació d'algorismes i exemples
Criteris d'avaluació

Examen amb preguntes de desenvolupament que inclouen conceptes teòrics,algorimes i problemes

Percentatge de la qualificació final: 50% per a l'itinerari A amb qualificació mínima 5
Percentatge de la qualificació final: 50% per a l'itinerari B amb qualificació mínima 5

Pràctiques
Modalitat Classes pràctiques
Tècnica Treballs i projectes ( recuperable )
Descripció
  • Desenvolupament d'exemples il·lustratius dels conceptes vists a teoria emprant diferents llenguatges de programació
  • Desenvolupament de les pràctiques del curs
Criteris d'avaluació

Pràctiques del curs consistents en programes que resolen diferents exercicis proposats

Percentatge de la qualificació final: 50% per a l'itinerari A amb qualificació mínima 5
Percentatge de la qualificació final: 50% per a l'itinerari B amb qualificació mínima 5

Recursos, bibliografia i documentació complementària

Tot i que no és imprescindible per al seguiment del curs aquesta és la bibliografia recomanada:

Bibliografia bàsica

  • Galli Granada, R."Principios y algoritmos de concurrencia". 2015
  • Ben-Ari, M. "Principles of Concurrent and Distributed Programming". Addison-Wesley. 2006

Bibliografia complementària

  • Burns, A. "Concurrent and Real-Time Programming in Ada".Cambridge University Press; 3rd edition. 2007
  • Baldan, P, Gorla, D. Eds. "CONCUR 2014 - Concurrency Theory". Springer Verlag. 2014
  • Palma J.T, Garrido C., Sánchez F., Quesada A. "Programación concurrente". Thomson. 2003