Overordnede kursusmål
At give deltagerne et begrebsmæssigt og praktisk grundlag for
konstruktion af systemer med flere selvstændige, parallelle
aktiviteter.
Læringsmål
En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:
- modellere og analysere parallelle aktiviterer ved brug af
matematiske modeller
- gøre rede for virkemåden af klassiske synkroniserings- og
kommunikationsmekanismer samt disses indbyrdes realationer
- anvende kendskab til en række sædvanlige kommunikations- og
koordineringsløsninger ved løsning af nye problemer
- verificere korrekthed af parallelle algoritmer ved brug af
formelt baserede verifikationsværktøjer
- identificere relevant brug af parallelle aktiviteter ved
udvikling af sædvanlige applikationer
- implementere parallelle aktiviteter effektivt ved brug af
tasks, tråde og processer
- anvende parallelitet til udnyttelse af moderne
maskinarkitekturer
- benytte fagets begreber til koncis problemanalyse og
løsningsdokumentation
Kursusindhold
Parallelprogrammering: Processer, synkronisering, kommunikation.
Procesmodeller, atomare aktioner.
Sikkerheds- og aktivitetsegenskaber. Baglås. Verifikationsteknikker
og -værktøjer.
Kritiske regioner, semaforer, monitorer, synkron og asynkron
meddelelsesoverførsel, kaldmekanismer, distribuerede objekter,
tuppelrum. Parallelle datastrukturer.
Systemdesign: Kommunikationsmønstre og algoritmer. Client/server
paradigme. Transaktioner og concurrency control. Asynkron og
task-baseret programmering.
Bemærkninger
Kurset er et specialiseringskursus i gruppen af teknologiske
linjefag for bachelorretningen Softwareteknologi.
Sidst opdateret
17. juni, 2019