WS 2010/2011: Einführung in die Nebenläufigkeit, Prof. Dr.-Ing. M. Heiner

latest update: December 30, 2010

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  (9 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
modelling with Petri nets.pdf   (8 p.)
analysis with Petri nets..pdf    (7 p.)

snoopy examples
(used in the slides)
(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 


Concurrency in Java
ThreadDemo1.java        ThreadDemo2.java 
ThreadDemo3.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   ThreadDemoGui.java    ThreadPanel.java
(3.2) Wechselwirkungen zwischen Prozessen
Botanical Garden (M&K).pdf       
    4up version.pdf

Petri nets for GardenTui.java.pdf
(1) Java
   GardenTui.java

(2) JavaFC
   Counter.javaFC
   Turnstile.javaFC
   TurnstileMain.javaFC

garden.spped 
garden.ctl 
(3.3)  Semaphore als ADT
semaphore  implementation in Java (M&K).pdf
     4up_version.pdf
Semaphore.java  BinSemaphore.java
SemaDemo.java
DisplaySemaphore.java

Garden:    Counter.javaFC
   Turnstile.javaFC
   TurnstileMain.javaFC
(3.4) Sperrsynchronisation
(Konkurrenz)

-> mutex pattern
mutex pattern, analysis.pdf
     2up version.pdf (10 p.)

no synchronization:
  MutexDemo.javaFC
  MutexLoop.javaFC

Semaphore:
  MutexDemo.javaFC
  MutexLoop.javaFC
mutex.spped
-> deadlock pattern
dining phils.pdf
     2up version.pdf
stubborn set reduction.pdf
     2up version.pdf

Deadlock.java

DEMO phils
DEMO phils, fixed

phil_slide.spped  
phil5.spped       phil15.spped   
pphil2.spped     deadlock.spped

system deadlocks (M&K).pdf
    4up version.pdf
philosophers demo (M&K).zip
(3.5) Ereignissynchronisation
(Kooperation)
structural properties.sld2.pdf
production cell.sld2.pdf


Temporale Logik
informal  introduction.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




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

. . . T H E  E N D . . .

sachdienliche Hinweise zu dieser Seite bitte an: