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

Concurrent Systems (CS) - Lecture (WS 2017/18)

UnivIS Information

Concurrent Systems (CS)

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


für Gasthörer zugelassen, Sprache Englisch
Zeit und Ort: Di 10:15 - 11:45, 0.035

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 Answers Slides (1x1) Slides (2x2) Animated Slides
01 Introduction 2017-10-17 QaA 1-introduction.pdf 1-introduction-2x2.pdf 1-introduction.pdf
02 Concurrency 2017-10-24 - 2-concurrency.pdf 2-concurrency-2x2.pdf 2-concurrency.pdf
03 Processes 2017-11-07 - 3-processes.pdf 3-processes-2x2.pdf 3-processes.pdf
04 Critical Sections 2017-11-14 - 4-crises.pdf 4-crises-2x2.pdf 4-crises.pdf
05 Elementary Operations 2017-11-21 - 5-elops.pdf 5-elops-2x2.pdf 5-elops.pdf
06 Locks 2017-11-28 - 6-locks.pdf 6-locks-2x2.pdf 6-locks.pdf
07 Semaphore 2017-12-05 - 7-semaphore.pdf 7-semaphore-2x2.pdf 7-semaphore.pdf
08 Monitor and Condition Variable - 8-monitor.pdf 8-monitor-2x2.pdf 8-monitor.pdf
09 Deadlock and Livelock 2017-12-19 - 9-deadlock.pdf 9-deadlock-2x2.pdf 9-deadlock.pdf
10 Non-Blocking Synchronisation 2018-01-09 - 10-nbs.pdf 10-nbs-2x2.pdf 10-nbs.pdf
11 Guarded Sections 2018-01-16 - 11-guases.pdf 11-guases-2x2.pdf 11-guases.pdf
12 Transactional Memory - 12-tm.pdf 12-tm-2x2.pdf 12-tm.pdf
13 Progress Guarantees - 13-progress.pdf 13-progress-2x2.pdf 13-progress.pdf
14 Pickings not yet available
15 Literature 2018-02-06 - 15-literature.pdf 15-literature-2x2.pdf 15-literature.pdf
Remote Core Locking

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.