Parallel Programming (S10), Übungsgruppe ge_05


Der Inhalt dieser Seiten ist nicht offizieller Stoff der Vorlesung Parallel Programming, sondern zusätzliches Material von mir als Übungsleiter. Dieses Material nicht zwingend Prüfungsstoff, sondern soll zusätzlich das Verständnis für Prinzipien und Konzepte in Java unterstützen. Es gibt keine Garantie für Korrektheit. Bei Fehlern oder Unklarheiten unbedingt sofort darauf hinweisen.

Source Code der Java Standartklassen: http://download.java.net/openjdk/jdk6/ (Danke an Jörg)
Downloade "OpenJDK 6 source bundle" und entpacke das Archiv. Die Standartklassen (wie z.B. java.lang.Thread) sind im Verzeichnis jdk/src/share/classes/.

Woche 1


01exceptions.pdf
01exceptions.ppt
Example1.java Lösung für Assignment 1
Example2.java
Example5.java
ExceptionDemo.java ArrayIndexOutOfBounds-, NullPointer- und ArithmeticException
FastSum.java for-Schleife oder try-catch und while-Schleife

Woche 2


02buffer.pdf
02buffer.ppt
ClassDemo.java Innere statische Klassen
CreateThread.java Wie man einen neuen Thread erstellt
DeathLockExample.java Wie es zu einem Deathlock kommen kann
ExploreParseInt.java
ThrowNull.java Was passiert, wenn in einem throw-Statement eine Exception ausgelöst wird
WhatIsThis.java Demonstration wofür "this" verwendet werden kann

Woche 3


03mergesort.pdf
03mergesort.ppt
Baden.java Die Stadt Baden plant ihre Strassen und den Verkehr darauf
Bycicle.java Das Fahrrad, das das Interface Vehicle implementiert
Car.java Das Auto, das das Interface Vehicle implementiert
Highway.java Die Autobahn, die von der abstrakten Klasse Route erbt
Route.java Die abstrakte Klasse Route, die einige Methoden einer Route bereits definiert
Street.java Die Strasse, die von der abstrakten Klasse Route erbt
Vehicle.java Das Interfave Vehicle, das vorgibt, was ein Gefährt können muss
InterfaceDemo.java Demonstration einer Klasse, die mehrere Interfaces implementiert
StringConcatenation.java Vergleicht die Verwendung von String, StringBuffer und StringBuilder
 
Der Unterschied zwischen StringBuffer und StringBuilder ist, dass die Methoden von StringBuilder nicht synchronized sind, StringBuffer aber schon. D.h. StringBuffer ist Thread-safe.

Woche 4


04mergesort.pdf
04mergesort.ppt
MainBuggyMTMergeSort.java
BuggySeqMergeSort.java Enthält eine speicherineffiziente Implemntierung der merge-Methode
BuggyMTMergeSort.java

Woche 5


05matrix_multiplication.pdf
05matrix_multiplication.ppt
Jama-1.0.2.zip Das JAMA-Packet, welches grundlegende Algorithmen der Linearen Algebra implementiert
WithJama.java Berechnung einer 1000x1000 Matrixmultiplikation mti dem JAMA Packet
ThisSynchDemo.java Prüft, welche Methoden durch synchronized(this) blockiert werden

Woche 6


06proof.pdf
06proof.ppt
Week06.java Beweise für "mutually exclusive" Bereiche

Woche 7


07monitors.pdf
07monitors.ppt
SemaphoreDemo.java Eine Semaphore beschränkt die Anzahl Threads im Subsystem

Woche 8


08csp.pdf
08csp.ppt
JCSP Source Code (Ordner src)
JSCP_Notizen.png Notizen zur JCSP Aufgabe

Woche 9


09gameoflife.pdf
09gameoflife.ppt
SimpleShObject.java Producer erzeugt 10 Werte für Consumer (via Buffer)
SimpleJCSP.java Producer erzgeut 10 Werte für Consumer (mit JCSP)
SwingDemo.java Kleine Demo von Effekten, die die paint-Methoden erzeugen können
MirrorPane.java Panel mit Spiegeleffekt
OpaqueButton.java Transparenter Button
PerfDraw.java Test Panel mit fliegenden Bällen

Woche 10


10openmp.pdf
10openmp.ppt
OmpDemo.jomp Kleine JOMP Demo, das anzeigt, welche Threads die for-Schleife ausführen
OmpDemo.java Output aus Jomp
OmpDemo2.jomp Zweites JOMP Beispiel
Jomp in der Konsole.txt Kleine Anleitung, wie .jomp files in der Konsole geparst werden können
Jomp in Eclipse (inkl Bilder).zip E-mail von Andreas inkl. Bilder, wie man JOMP in Eclipse einbindet.

Woche 11


11atomic.pdf
11atomic.ppt
AtomicTest.java 3 Tests um einen Zähler zu erhöhen
Example1.java

Woche 12


12summary.pdf
12summary.ppt

 

Bei Fragen zögert nicht, mir eine E-mail zu schicken (lanterm@student...).

Viel Erfolg an der Basisprüfung.