|
Nebenläufige Systeme (CS)5 ECTS (englische Bezeichnung: Concurrent Systems)
Modulverantwortliche/r: Wolfgang Schröder-Preikschat Lehrende:
Wolfgang Schröder-Preikschat
Startsemester: |
WS 2017/2018 | Dauer: |
1 Semester | Turnus: |
jährlich (WS) |
Präsenzzeit: |
60 Std. | Eigenstudium: |
90 Std. | Sprache: |
Deutsch oder Englisch |
Lehrveranstaltungen:
Empfohlene Voraussetzungen:
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.
Inhalt:
The module 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.
Lernziele und Kompetenzen:
Students who successfully concluded the module:
understand fundamentals and dimensions of concurrency (causality, interdependencies),
classify characteristics of processes (sequential vs. non-sequential, concurrent, simultaneous, interacting) against the background of resource classes and sharing,
evaluate situations of contention, race conditions and how to manage them in systems software,
interpret data races (non-repeatable read, inconsistent read, dirty read, lost update) and control-flow races (lost wake-up, time-of-check to time-of-use),
implement elementary methods of multilateral synchronisation (blocking synchronisation/mutual exclusion, non-blocking synchronisation) and unilateral synchronisation (condition variable),
describe pessimistic methods for the implementation of critical sections (blocking synchronisation: lock, semaphore, mutex),
develop optimistic methods for safeguarding interacting processes in systems software (non-blocking synchronisation: lock-free, wait-free),
distinguish the use of atomic read-modify-write instructions such as TAS, FAS, FAA, CAS, and LL/SC, and
discuss hardware-supported concepts, such as transactional memory.
Verwendbarkeit des Moduls / Einpassung in den Musterstudienplan: Das Modul ist im Kontext der folgenden Studienfächer/Vertiefungsrichtungen verwendbar:
- Informatik (Bachelor of Arts (2 Fächer))
(Po-Vers. 2013 | TechFak | Informatik (Bachelor of Arts (2 Fächer)) | Vertiefung Informatik I und II | Vertiefungsmodul Verteilte Systeme und Betriebssysteme)
Studien-/Prüfungsleistungen:
Nebenläufige Systeme (Prüfungsnummer: 554695)
(englischer Titel: Concurrent Systems)
- Prüfungsleistung, mehrteilige Prüfung, benotet
- Anteil an der Berechnung der Modulnote: 100.0 %
- weitere Erläuterungen:
20-minütige mündliche Prüfung
+ erfolgreiche Bearbeitung aller Übungsaufgaben
- Erstablegung: WS 2017/2018, 1. Wdh.: SS 2018
1. Prüfer: | Wolfgang Schröder-Preikschat |
|
![](/img/anew/void.gif) |
![](/img/anew/void.gif) |
|
UnivIS ist ein Produkt der Config eG, Buckenhof |
|
|