At give deltagerne et begrebsmæssigt og praktisk grundlag for konstruktion af systemer med flere selvstændige, parallelle aktiviteter afviklet på en eller flere maskiner.
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 tråde og processer på sædvanlige maskinarkitekturer
gøre rede for de grundlæggende begreber, der anvendes ved beskrivelse af kommunikation gennem datanet
benytte viden om netværk, netværksprotokoller og netværksprogrammering til konstruktion af client/server-baserede distribuerede applikationer
benytte fagets begreber til koncis problemanalyse og løsningsdokumentation
Kursusindhold:
Parallelprogrammering: Processer, synkronisering, kommunikation. Procesmodeller, atomare aktioner. Sikkerheds- og aktivitetsegenskaber. Verifikationsteknikker og -værktøjer. Kritiske regioner, semaforer, monitorer, synkron og asynkron meddelelsesoverførsel, kaldmekanismer, distribuerede objekter, tuppelrum. Parallelle datastrukturer.