Logo

teaching

data structures and software dependability

computer science department

brandenburg university of technology cottbus - senftenberg

Einführung in die Nebenläufigkeit

Vorlesung, Prof. Dr.-Ing. M. Heiner, WS 2015/2016

latest update: October 15, 2015, at 09:56 AM

Materialien zur Vorlesung

Folien, Demo-Programme, Petrinetze;
  • dunklere Felder enthalten zusätzliche/ergänzende Materialien zu dem in der Vorlesung behandelten;
  • Die dunkelblaue Zeile zeigt den aktuellen Vorlesungsstand an. Materialien oberhalb dieser Zeile sind freigegeben, Materialien unterhalb dieser Zeile sind unverbindliche Vorinformationen.
(1) Einführung, Motivation dependability engineering of reactive systems.pdf (27 p.)
(1) reactive systems –
DEMO production cell → sun pool
(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) Einführung Petrinetze
snoopy examples
(used in the slides)
coverability graph.pdf (6 p.)

(3) Grundlegende Prozeßkonzepte

(3.1) Prozesse und Threads
how to create threads (M&K).pdf
4up version.pdf
Petri nets for ThreadDemo[i].pdf (4 p.)

Concurrency in Java

threadDemo1-2.spped
threadDemo3.spped
how to create threads with GUI (M&K).pdf
4up version.pdf

stand alone version of ThreadDemo example by Magee&Kramer

(3.2) Wechselwirkungen zwischen Prozessen
Botanical Garden (M&K).pdf
4up version.pdf
modelling GardenTui.java.pdf

(1) Java

(2) JavaFC

garden.spped
garden.ctl
(3.3) Semaphore als ADT
semaphore implementation in Java (M&K).pdf
4up version.pdf

Garden:

(3.4) Sperrsynchronisation (Konkurrenz)
mutex pattern

no synchronization:

Semaphore:

mutex.spped
deadlock pattern
dining phils.pdf
2up version.pdf
stubborn set reduction.pdf
2up version.pdf
phil_slide.spped
phil5.spped
phil15.spped
pphil2.spped
deadlock.spped
system deadlocks (M&K).pdf
4up version.pdf

philosophers demo (M&K).zip

Temporale Logik
informal introduction.sld2.pdf
(3.5) Ereignissynchronisation (Kooperation)
structural properties.sld2.pdf (23 p.)
production cell.sld2.pdf
concurrent pushers.sld2.pdf
client/server pattern, selective wait

the problem is choice.sld2.pdf

printer system.spped
printer system1.spped
printer system2.spped

(4) Kompakte Konstrukte

monitors, a bit of history .pdf
(5) Zusammenfassung

software2pn - an overview.sld2.pdf

(6) Java 5.0
tutorial "concurrency in JDK 5.0"
Going atomic

Beispiele zu [Nowak 2005]

anstelle eines Schlusswortes

“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 ]

… the end …

Any comments or questions are welcome. Please direct them to monika [period] heiner [snail] b-tu [period] de Privacy Policy