lu.se

Forskar­utbildnings­kurser

Lunds tekniska högskola | Lunds universitet

Detaljer för kurs EDAP10F Flertrådad programmering

Utskriftsvänlig visning

Allmänt
  • EDAP10F
  • Tillfällig
Kursnamn
  • Flertrådad programmering
  • Concurrent Programming
Kursomfattning
  • 7.5
Undervisningsform
  • Gemensam kurs, avancerad nivå och forskarnivå
Administrativ information
  • 7121 (Datavetenskap (LTH))
  • 2020-09-24
  • Professor Thomas Johansson

Aktuell fastställd kursplan

Allmänt
Syfte
  • I flertrådade program hanteras parallella, asynkrona förlopp, ofta i interaktion med en fysisk omvärld. Bland de många tillämpningarna återfinns styrsystem, nätverkskommunikation, samt interaktiva system. Kursen syftar till att ge förmåga att konstruera robusta, resurseffektiva och välstrukturerade flertrådade program.
  • Concurrent programs combine parallel, asynchronous activities, frequently interacting with a physical environment. Applications include control systems, network communication, and interactive systems. The course aims to give students ability and skills to design robust, efficient, and well-structured concurrent programs.
Innehåll
  • Grundläggande begrepp: jämlöpande aktiviteter, busy-wait och polling, synkronisering och kommunikation, odelbara operationer som test-and-set, ömsesidig uteslutning.
    Synkronisering och signalering i system med delat minne: lås, monitorer.
    Synkronisering och signalering i meddelandebaserade system.
    Trådning i interaktiva system med callbacks.
    Uppkomst och analys av dödläge (deadlock och livelock).
    Användning av några centrala delar av Javas concurrent-paket, såsom lås, semaforer, trådpooler, atomära värden och blockerande köer.
    Orientering om realtidsoperativsystem, schemaläggning, multicore-maskiner, låsfria algoritmer. Utblick mot mer avancerade ramverk i Javas concurrent-paket.
  • Basic concepts: concurrent activities, busy-wait and polling, synchronization and communication, atomic operations such as test-and-set, and mutual exclusion.
    Synchronization and signaling in shared-memory applications: locks, monitors.
    Synchronization and signaling in message-passing applications.
    Concurrency in interactive systems with callbacks.
    Analysis of deadlock and livelock.
    Central aspects of the Java concurrent package, such as locks, semaphores, thread pools, atomics, and blocking queues.
    Overview of real-time operating systems, scheduling, multicore hardware, lock-free algorithms. Brief introduction to more advanced frameworks in the Java concurrent package.
Kunskap och förståelse
  • För godkänd kurs skall doktoranden
  • känna till och kunna redogöra för hur trådar exekveras och synkroniseras i ett program,
    veta hur kapplöpningssituationer uppstår och hur man undviker sådana, samt
    veta hur dödlägen uppstår och hur man undviker sådana
  • be familiar with and be able to describe how threads execute and are synchronized in a concurrent program;
    be familiar with causes for race conditions, and techniques for avoiding them;
    be familiar with causes for deadlock, and techniques for avoiding it.
Färdighet och förmåga
  • För godkänd kurs skall doktoranden
  • kunna utforma reaktiv programvara med jämlöpande aktiviteter utifrån tillämpningskrav och föreskrivna gränssnitt mot omgivningen,
    kunna implementera och felsöka flertrådad programvara, samt
    kunna genomföra enklare dödlägesanalys för ett mindre system av trådar och delade resurser.
  • be able to design concurrent reactive software based on application requirements and prescribed interfaces to the environment;
    be able to implement and debug multi-threaded software;
    be able to perform simple deadlock analysis for a small system of threads and resources
Värderingsförmåga och förhållningssätt
  • För godkänd kurs skall doktoranden
  • kunna jämföra och diskutera design- och implementationsalternativ för flertrådade program, samt
    kunna göra avvägningar mellan prestanda och implementationskomplexitet i flertrådade program
  • be able to compare and discuss design and implementation options for concurrent programs;
    be able to make trade-offs between performance and implementation complexity in concurrent programs
Undervisningsformer
  • Föreläsningar
  • Laborationer
Examinationsformer
  • Skriftlig tentamen
  • Inlämningsuppgifter
  • Obligatoriska laborationer och skriftlig tentamen. Slutbetyg på kursen grundar sig på resultatet av den skriftliga tentamen.
  • Compulsory lab work and written examination. The final grade of the course is based on the result of the written examination.
  • Underkänd, godkänd
Förkunskapskrav
  • EDAA01 Programmeringsteknik - fördjupningskurs eller EDAA30 Programmering i Java - fortsättningskurs
  • EDAA01 Programming - Second Course or EDAA30 Programming in Java - Second Course
Förutsatta förkunskaper
Urvalskriterier
Litteratur
  • Goetz, B.: Java Concurrency in Practice. Addison-Wesley, 2006. ISBN 0321349601.
  • Ytterligare material tillhandahålls av institutionen.
  • Additional materials provided by the department.
Övrig information
Kurskod
  • EDAP10F
Administrativ information
  • 2020-09-24
  • Professor Thomas Johansson

Alla fastställda kursplaner

1 kursplan.

Gäller från och med Första inlämning Andra inlämning Fastställd
HT 2020 2020‑09‑04 13:00:44 2020‑09‑04 16:57:52 2020‑09‑24

Aktuellt eller kommande publicerat kurstillfälle

Inget matchande kurstillfälle hittades.

Alla publicerade kurstillfällen

Inga matchande kurstillfällen hittades.

0 kurstillfällen.


Utskriftsvänlig visning