Lecture, Prof. Dr.-Ing. M. Heiner, WS 2021/2022
In case of demand, this course will be given in English.
Module
11884 - Introduction into Concurrency
12348 - Einführung in die Nebenläufigkeit
latest update: February 03, 2022, at 03:06 PM
back2lecture
Materials for Lectures
slides, demo programs, Petri nets;
- Grey entries provide supplementary material, not covered in the lectures.
- The blue line indicates the current state of the lecture. Material above the blue line is released, material below the blue line is a preliminary preview, potentially subject to change.
(1) Introduction, Motivation
| dependability engineering of reactive systems.pdf (27 p.)
|
- (1) reactive systems –
- DEMO production cell
- (2) reactive systems –
- DEMO concurrent pushers
- (3) embedded systems –
- DEMO Cruise Control
- (4) concurrent systems –
- DEMO competing sorting
|
|
- intro (M&K).pdf
- 4up version.pdf
|
---|
(2) Introduction Petri nets
|
|
|
- snoopy examples
-
- (used in the slides)
-
- procon, bounded.pn
-
- procon, unbounded.pn
-
- travelPreparation.pn
-
modelling epidemics/pandemics
|
coverability graph.pdf
|
---|
(3) Basic process concepts
(3.1) Processes and threads
|
- how to create threads (M&K).pdf
- 4up version.pdf
- Petri nets for ThreadDemo[i].pdf (4 p.)
-
|
Concurrency in Java
|
- threadDemo1-2.pn
-
- threadDemo3.pn
-
|
- how to create threads with GUI (M&K).pdf
- 4up version.pdf
|
stand alone version of ThreadDemo example by Magee&Kramer
|
---|
(3.2) Process interactions (interference)
|
- Botanical Garden (M&K).pdf
- 4up version.pdf
- modelling GardenTui.java.pdf
video motivating coloured Petri nets
|
(1) Java
(2) PascalFC
|
- garden.pn (buggy interface visualisation in web animation; download for token game)
-
garden with constant.pn
- garden.ctl
-
introducing colour
coloured gardens (colpn not supported by Patty)
|
(3.3) Semaphores as ADT
|
semaphore implementation in Java (M&K).pdf
|
- Semaphore.java
-
- BinSemaphore.java
-
|
|
---|
(3.4) Mutual exclusion synchronisation (competition)
mutex pattern
|
|
- MutexDemo.java
-
- MutexDemoBinSemaphore.java
-
- GardenTuiSema.java
-
|
- mutex.pn
-
invariants
|
invariant analysis, examples.sld.pdf (28 p.)
|
---|
deadlock pattern
|
dining phils.pdf
stubborn set reduction.pdf
|
|
- deadlock.pn
-
- philSlide.pn
-
- phil5.pn
-
- phil15.pn
-
- pphil2.pn
-
- phil.colpn
-
- marcie-phil-help-me.txt
-
|
- system deadlocks (M&K).pdf
- 4up version.pdf
bdd crash course
|
philosophers demo (M&K).zip
|
---|
(3.5) Event synchronisation (cooperation)
|
- structural properties.sld2.pdf (24 p.)
-
- production cell.sld2.pdf
-
- concurrent pushers.sld2.pdf
-
|
|
- sm.pn
-
- mg.pn
-
- fc-sc-not-live.pn
-
- fc-sc-not-bnd.pn
-
- efc_dtp.pn
-
- efc_not_dtp.pn
-
- siphon-trap-demo.pn
-
- non-monotone_live.pn
-
net classes
|
Temporal logics
|
informal introduction.sld2.pdf
|
|
- travelPreparation.pn
-
- travelPreparation-charlie.ctl
-
- travelPreparation-marcie-idd.ctl
-
- travelPreparation-marcie-bdd.ctl
-
- procon2_sequential.pn
-
- procon3_parallel.pn
-
|
client/server pattern, selective wait
|
the problem is choice.sld2.pdf
|
|
- deadlock.pn
-
- printer system.spped
-
- printer system1.spped
-
- printer system2.spped
-
|
(4) Compact language means
|
monitors, a bit of history.pdf
|
- gardens without synch.pdf
-
- gardens via critical region.pdf
-
- procon via conditional critical region.pdf
-
- gardens via monitor.pdf
-
- procon via monitor.pdf
-
- shared object via rendezvous.pdf
-
- dining phils via rendezvous.pdf
-
- procon via rendezvous.pdf
-
- procon, unbuffered via channels.pdf
-
- procon, buffered via channels.pdf
-
|
- procon, unbuffered via channels.pn
-
- procon, buffered via channels.pn
-
(buggy web animation: logical transition not highlighted, behaviour not correct; download for token game)
|
---|
(5) Summary
|
software2pn - an overview.sld2.pdf
Diaz1986, lncs255.pdf
|
|
- read vs inhibitor arcs (xpn)
-
- read vs inhibitor arcs (pdf)
-
|
(6) Distributed algorithms
|
|
prime sieve via channels.pdf
gcd-p1.ada.pdf -
gcd-p2.ada.pdf -
gcd-p3.ada.pdf -
gcd-p4.ada.pdf -
gcd-p5.ada.pdf
|
gcd.colpn -
gcd.pdf
rendezvous_concept.colpn - rendezvous_concept.pdf
|
|
(7) Java 5.0
|
- tutorial "concurrency in JDK 5.0"
-
- Going atomic
-
|
Beispiele zu [Nowak 2005]
|
|
instead of a closing remark
“Thread-safe code is code that will work even if many Threads are executing it simultaneously. Writing it is a black art. It is extremely difficult to debug since you can’t reproduce all possible interactions between Threads. You have to do it by logic. In a computer, something that happens only one in a billion times must be dealt with because on average it will happen once a second. To write code that will run stably for weeks takes extreme paranoia.”
[ source ]