Logo

teaching

data structures and software dependability

computer science department

brandenburg university of technology cottbus - senftenberg

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. "

… the end …

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