Flertrådad programmering

Sammanfattning

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.

Kursplan

Kursplan för studenter höst 2017, höst 2016, höst 2015, höst 2014

Kurskod:
DA330A version 1,1
Engelsk benämning:
Concurrent Programming
Fördjupningsnivå
G1F
Huvudområden:
Datavetenskap
Undervisningsspråk:
Svenska, inslag av engelska kan förekomma.
Fastställandedatum:
11 september 2015
Beslutande instans:
Fakulteten för teknik och samhälle
Gäller från:
09 november 2015
Ersätter kursplan fastställd:
18 februari 2013

Förkunskapskrav

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.

Fördjupning 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.

Betygsskala

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

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


Kursrapporter

Kontakt

Utbildningen ges av Fakulteten för teknik och samhälle på institutionen Datavetenskap och medieteknik.

Mer information om utbildningen

Bodil Sterner, studieadministratör
Telefon: 040-6657620
Farid Naisan, kursansvarig
Telefon: 040-6657187