Education Directory
PÅ SVENSKA
Malmö University

Kursplan med gällandedatum 2015-11-09

Kursplan med gällandedatum 2015-11-09

Benämning

Flertrådad programmering

Engelsk benämning

Concurrent Programming

Kurskod

DA330A

Omfattning

7.5 hp

Betygsskala

UV / Underkänd (U), Godkänd (G) eller Väl godkänd (VG)

Undervisningsspråk

Svenska, inslag av engelska kan förekomma.

Beslutande instans

Fakulteten för teknik och samhälle

Fastställandedatum

2015-09-11

Gäller från

2015-11-09

Utbildningsnivå

Grundnivå

Behörighetskrav

Kurser om minst 30 hp inklusive DA153A Introduktion till datavetenskap, 7.5 hp och DA183A Objektorienterad programvaruutveckling I, 7.5 hp och DA184A Objektorienterad programvaruutveckling II, 7.5 hp.
alternativt
DA153A Introduktion till datavetenskap, 7.5 hp och DA315A Objektorienterad spelprogrammering, 15 hp.
if (Model.HuvudomradenMedFordjupning.Count == 1) {

Huvudområde

} else {

Huvudområden

}
Datavetenskap

Fördjupningsnivå

G1F

Fördjupningsnivå i förhållande till examensfordringarna

Kursen ingår i utbildningsprogrammet Systemutvecklare och Spelutveckling. Kursen kan ingå i kandidatexamen i Datavetenskap med inriktning systemutveckling respektive kandidatexamen i Datavetenskap på 31-60 poängsnivån.

Syfte

Flertrådad programmering behandlar studiet av system där flera händelser till synes inträffar samtidigt och de problem man ställs inför när man utvecklar sådana system. Det kan gälla operativsystem, distribuerade system och realtidssystem men också internettjänster och spel.

Innehåll

Kursen innehåller följande moment:
  • Parallellism
  • Interferens och samtidighet
  • Synkronisering
  • Kritiska regioner
  • Ömsesidig uteslutning
  • Dödläge
  • Exekveringsrättvisa, "fairness"
  • "Livelock"
  • Synkronisering mha:delade variabler, "busy wait", semaforer, monitorer samt synkrona och asynkrona meddelanden

Lärandemål

Kunskap och förståelse
För godkänd kurs ska studenten kunna:
  • visa förståelse för de frågeställningar och problem som uppkommer i parallella system med delat minne och i parallella distribuerade system
  • identifiera vanligt förekommande parallella synkroniseringsproblem, t.ex. samtidighetsproblem, "dining philosophers", producent-konsument, resursallokering
Färdighet och förmåga
För godkänd kurs ska studenten kunna:
  • utveckla parallella lösningar samt kunna argumentera för korrekthet, tydlighet och effektivitet i lösningen
  • anpassa vanliga mönster för utveckling av parallella system, t.ex. lås, "client-server", "pipelines", tråd-samlingar, barriärsynkronisering, stafettsynkronisering
  • tillämpa de programmeringskonstruktioner och tekniker som moderna programmeringsspråk för parallella system tillhandahåller
  • implementera parallella lösningar i expressiva programmeringsspråk
Värderingsförmåga och förhållningssätt
För godkänd kurs ska studenten kunna:
  • utvärdera huruvida en mjukvara eller ett bibliotek är tråd-säkert
  • välja korrekta språkkonstruktioner för att lösa synkroniseringsproblem

Arbetsformer

Kursen genomförs med föreläsningar och laborationer. Föreläsningar ca 30 timmar, laborationer ca 20 timmar, samt självstudietid ca 150 timmar.

Bedömningsformer

Krav för godkänt betyg: Godkänd skriftlig tentamen (4,5 hp) samt godkända inlämningsuppgifter (3 hp).
Krav för väl godkänt betyg: Väl godkänd skriftlig tentamen samt godkända inlämningsuppgifter.

Kurslitteratur och övriga läromedel

Kursen har ingen rekommenderad kurslitteratur. Undervisningsmaterial tillhandahålls av ansvarig lärare.
Referenslitteratur
Herlihy,M. & Shavit, N. The Art of Multiprocessor Programming. Morgan Kaufmann, 2012

Kursvärdering

Alla studenter ges vid slutet av kursen möjlighet att kommentera kursen skriftligt. En sammanställning av resultatet med bemötande av kursansvarig diskuteras med studenter/kursrepresentanter under ett kursvärderingsmöte/programråd. Sammanställningen finns tillgänglig på områdets datornät