Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

Concurrent Systems (CS) - Lecture (WS 2019/20)

UnivIS Information

Concurrent Systems (CS)

Prof. Dr.-Ing. Wolfgang Schröder-Preikschat, Dr.-Ing. Timo Hönig


für Gasthörer zugelassen, Sprache Englisch
Zeit und Ort: Mi 12:15 - 13:45, 00.151-113

Studienfächer / Studienrichtungen

Lecture Content

The lecture imparts knowledge on concurrent systems from a systems programming point of view, especially operating systems. In a more general term, subject matter are software systems that allow for several simultaneous computations, potentially interacting with each other. Commonalities and differences of concurrence in a program flow due to multiplication (real parallelism, multi/many-core processors) or multiplexing (pseudo parallelism, partial virtualisation) of hardware processing units are covered. Thematic priority is the coordination of cooperation and concurrency between interacting (i.e., control- or data-flow dependent) processes with emphasis on explicit synchronisation. Objective is to establish understanding of different synchronisation paradigms, namely blocking and non-blocking synchronisation, and sense and sensibility of the pros and cons of the various approaches according to these paradigms.

On the agenda are general topics and basic principles such as the notion of concurrency, process, critical section, and elementary operation. This introduction stage will be followed by classic and folklore on blocking synchronisation, that is to say, concepts such as lock, semaphore, monitor and condition variable, and deadlock and livelock. Subsequently, avant-garde and other on non-blocking synchronisation will be presented, such as techniques that require particular memory semantics (e.g., atomic write) or special machine instructions (e.g., CAS, LL/SC), or that rely on transactional memory. The course is closed by a selection of other state of the art techniques using the example of software combining, read-copy update, or remote-core locking.

Prerequisite are hard skills (i.e., computer-science expertise) on structured computer organisation, algorithm design and development, and principles of programming in C or C++. These skills are mandatory, knowledge gaps will not be closed in the class. Further, but optional, hard skills are assembly language programming, system programming, and operating systems. As appropriate, knowledge gaps will be closed on demand by the instructors.

Lecture Slides

The slides form the thread through the lecture. They can (and shall) not replace supplementary lecture notes and full description of the topics in the technical literature (see also below).

The lecture slides are provided in PDF format, with four slides or one slide, respectively, per page. Additionally the animated slides presented in the lecture are also available.

Questions that were raised in a particular lecture and could not be answered to full satisfaction or at all for whatever reason, respectively, will be picked up off-line and are tried to be answered by the instructors. The result of this reworking is published through the "QaA" link of the corresponding lecture.

Lecture Topic Date Slides (1x1) Slides (2x2) Animated Slides
01 Introduction 2019-10-23 pdf pdf pdf
02 Concurrency 2019-11-06 pdf pdf pdf
03 Processes 2019-11-13 pdf pdf pdf
04 Critical Sections 2019-11-20 pdf pdf pdf
05 Elementary Operations 2019-11-27 pdf pdf pdf
06 Locks 2019-12-11 pdf pdf pdf
07 Semaphore 2019-12-18 pdf pdf pdf
08 Monitor and Condition Variable 2020-01-08 pdf pdf pdf
09 Deadlock and Livelock 2020-01-15 pdf pdf pdf
10 Non-Blocking Synchronisation 2020-01-22 pdf pdf pdf
11 Guarded Sections 2020-01-29 pdf pdf pdf
12 Transactional Memory 2020-02-05 pdf pdf pdf
13 Pickings 2020-02-05 pdf pdf pdf

Note that the above-listed schedule of lecture topics is still under construction and may be subject to change. As preparation of the lecture and its contextual reconciliation with the exercises is still in progress, no responsibility is taken for the correctness of this information.

Technical Literature for the Lecture

A reference list of relevant publications is attached to every lecture slide set. We recommend to first take a look at this selection. If, against expectation, reading could not exhaust the problematic topic, do not hesitate to contact us and we will try our best to answer still open-ended questions.