IT-Universitetet i København
 
  Tilbage Kursusoversigt
Kursusbeskrivelse
Kursusnavn (dansk):Parallelle Systemer 
Kursusnavn (engelsk):Concurrency 
Semester:Forår 2002 
Udbydes under:cand.it., internet- og softwareteknologi (int) 
Omfang i ECTS:7,50 
Kursussprog:Dansk 
Kursushjemmeside:https://learnit.itu.dk 
Min. antal deltagere:
Forventet antal deltagere:11 
Maks. antal deltagere:60 
Formelle forudsætninger:Du skal kunne udvikle og implementere simple objektorienterede programmer.
Det vil være en fordel at have kendskab til sproget Java.
Forudsætningerne kan f.eks. være opnået via IT-C's kursus Grundlæggende Programmering. 
Læringsmål:Målet med kurset er at give et begrebsmæssigt grundlag for forståelse af parallelle systemer samt at sætte deltageren i stand til at konstruere
mindre parallelle programmer. Der vil blive lagt vægt på modellering af parallelle systemer som udgangspunkt for analyse og implementering .

Efter kurser vil du:

  • kunne beherske grundlæggende begreber for parallellisme: processer, synkronisering og kommunikation.
  • kunne anvende modeller for concurrency: Petri-net, transitionssystemer, procesudtryk.
  • kunne benytte verifikationsbegreber: Sikkerheds- og aktivitetsegenskaber, invarianter, modelcheck.
  • kunne gøre rede for synkroniserings- og kommunikationsmekanismer: Semaforer, monitorer, synkron og asynkron kommunikation, kaldmekanismer. Du vil kunne bruge disse til løsning af klassiske problemer.
  • kunne gøre rede for implementering: HW-arkitekturer, multiprogrammering, tråde, tråd-biblioteker, højniveau sprog, tråd/processafvikling.
  • kunne beherskelse af trådprogrammering i Java og kunne designe og konstruere mindre parallelle systemer som fx.
    multitrådede applikationer.
  • kunne gøre rede for til designprincipper: SW-arkitekturer.


<!--i>The aim of the course is to provide the conceptual foundation for concurrent systems and the ability to construct small concurrent programs. In a bit more detail, after completing the course the student is expected to:


  • Understand the foundational concepts for concurrency: processes, synchronisation and communication.
  • Understand models for concurrency: Petri-nets, transitions systems, CCS-like process expressions
  • Have knowledge of verification concepts: Safety and progress properties, invariants, model checking.
  • Understand synchronisation and communication mechanisms: Semaphores, monitors, synchronous and asynchronous communication and how to use these to solve clasical concurrency problems.
  • Posses knowledge of implementation techniques and principles: HW-architectures, multiprogramming, threads, thread-libraries, high-level languages.
  • Master thread programming in Java and be able to design and construct small parallel programs, e.g multithreaded applications or simple controlsystems.
  • Possess knowledge of designprinciples: SW-architectures.

</i--> 
Fagligt indhold:Kurset dækker følgende emner:

  • Modeller for concurrency: Petri-net, transitionssystemer, procesudtryk.
  • Processer og tråde, tråde i java
  • Delte objekter og gensidig udelukkelse
  • Monitorer, invarianter, semaforer, begrænsede buffere
  • Baglås, analyse og eksempler
  • Sikkerheds og Fremskridtsegenskaber, analyse og eksempler
  • Model-baseret design: krav, modeller, implementation
  • Dynamiske systemer, fair allokering, master/slave model.
  • Beskedoverførsel, synkron/asynkron, rendezvous
  • Arkitekturer: Filter pipeline, superwisor-worker, annoucer-listener
  • Systemer med tid, model og implementation


I kurset vil der blive lagt vægt på modellering af parallelle systemer som udgangspunkt for analyse og implementering.
Kursushjemmeside .
 
Læringsaktiviteter:

Forelæsninger, 2 mindre obligatoriske opgaver, teori og lab-øvelser, miniprojekt 

Eksamensform og -beskrivelse:X. experimental examination form (7-scale; external exam), 13-skala, Intern censur

4-timers skriftlig eksamen med karakter efter 13-skalaen og med ekstern censur. Eksamenssættet vil være på engelsk. I løbet af
semesteret stilles to obligatoriske afleveringsopgaver og et mini-projekt.
Aflevering af de to obligatoriske opgaver samt aflevering og godkendelse af
mini-projektet er en forudsætning for at kunne tilmeldes eksamen.
Besvarelserne vil dog ikke indgå i karakteren. Alle skriftlige hjælpemidler tilladt.  

Litteratur udover forskningsartikler:Lærebog: Jeff Magee og Jeff Kramer: "Concurrency, State models and Java programs", Wiley, ISBN 0471987107.


<!--Udleverede noter om Petri net og semantik.-->