SluitenHelpPrint
Switch to English
Cursus: INFOB3CC
INFOB3CC
Concurrency
Cursus informatie
CursuscodeINFOB3CC
Studiepunten (EC)7,5
Cursusdoelen
Na afloop van het vak kan de student een multithreaded applicatie ontwerpen en implementeren in C#, gebruik makend van moderne synchronisatiehulpmiddelen en met oog voor de snelheid van de applicatie.
De student kan ook theoretische concepten rond Cuncurrency toepassen in concrete situaties:
  • Threads beheren met start en join.
  • Synchroniseren met locks, wait/signal, semaforen.
  • Een beredeneerde keuze maken uit oplossingen.
  • Een algoritme uit de literatuur (bijv.\ pseudocode) implementeren.
  • Een applicatie met sockets programmeren.
  • Een thread pool gebruiken.
  • Rekenregels van binomiaalcoefficienten toepassen  (Driehoek van Pascal, C(n,k) = n! / k! (n-k)!, Absorptie, Binomium, Sommatie van Binomiaalcoefficient maal factor).
  • Kansen en verwachtingen van een experiment uitdrukken en berekenen.
  • Theorie van Coupon Collector, Bernoulli en Verjaardagsprobleem toepassen op problemen rond Concurrency.
  • Eigenschappen (terminatie, correctheid, atomiciteit, etc) van methoden benoemen.
  • Eigenschappen en complexiteit van randomiserende algoritmen benoemen.
  • De complexiteit (span en work) van parallelle algoritmen berekenen met de Master Theorem.
  • Van een object aangeven op welk niveau het in de consensus-hierarchie zit.
  • Op een beslisprobleem de stelling van Fischer, Lynch en Paterson toepassen om de berekenbaarheid te bepalen.
Inhoud
Multicore machines zijn tegenwoordig overal te vinden. Maar hoe kun je de rekenkracht van meerdere cores gebruiken om jouw rekenklus snel te klaren?
In dit vak wordt bekeken, welke ondersteuning computers en programmeertalen bieden voor multithreaded rekenen, er worden algoritmen voor thread-synchronisatie behandeld (zowel de klassieke locking mechanismen als de moderne wachtvrije methoden), en er wordt gekeken naar parallelle algoritmiek. Doel is, dat je uiteindelijk in staat zult zijn om multithreaded applicaties te ontwikkelen.
Gedistribueerde programmas zijn bij uitstek een deelgebied waarin randomisering wordt toegepast. Daarom is in dit vak ook een stuk kansberekening ondergebracht; deze theorie is natuurlijk ook in andere gebieden van de informatica toepasbaar. Het kunnen berekenen en beredeneren van de gevolgen van random gebeurtenissen is een tweede leerdoel van het vak.
SluitenHelpPrint
Switch to English