Java Thread Scheduling Jin Zhou Proseminar Java Thread Scheduling November 2000.

Slides:



Advertisements
Ähnliche Präsentationen
M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,
Advertisements

der Universität Oldenburg
der Universität Oldenburg
Objektorientierte Programmierung
der Universität Oldenburg
Rekursive Grafiken Reklursive Grafiken.
Zusammenfassung des Kapitels 8
Threadnocchio Dietrich Boles Nachdenken in Aurich 2009
Programmierkurs Java WS 98/99 Vorlesung 15 Dietrich Boles 17/02/99Seite 1 Programmierkurs Java Vorlesung im WS 1998/1999 am FB Informatik der Universität.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Verteilte Software - Java - Prozedurale Programmierung 1
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Java News & Music Der Chat
Threads Richard Göbel.
Binäre Bäume Richard Göbel.
Java: Objektorientierte Programmierung
FH-Hof Sockets in Java Richard Göbel. FH-Hof Kommunikation über das Internet - Grundlagen Ein Rechner wird im Internet über die so genannte IP- Adresse.
Java: Grundlagen der Objektorientierung
FH-Hof Fehlerbehandlung Richard Göbel. FH-Hof Konzept Fehler können mit dem Operator throw einer übergeordneten Funktion signalisiert werden. Parameter.
IF-ELSE-IF-Ketten Weiter mit PP..
WHILE - Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
FOR Anweisung. Aufgabe : Ausgabe aller ganzen Zahlen von 0 bis 100 auf dem Bildschirm.
DO...WHILE Anweisung.
Benötigte Applets Startseite: in HTML-Format Applet auf der Startseite Das Applet, das auf der Startseite geladen wird, wird die vier Buttons und die eine.
M a r c – o l i v e r p a h l Die ObjektOrientierte Mühle Das Beispiel soll noch einmal das Konzept der Objektorientiertheit erläutern. Dabei werden außerdem.
3.1.4 Leser/Schreiber-Ausschluß (reader/writer exclusion)
Objektorientierte Programmierung JDK-Klassenbibliothek
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
DVG Einführung in Java1 Einführung in JAVA.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Thema: Fibonacci-Zahlen
Bestimmung des ggT zweier Zahlen
Verzweigung.
Vererbung Einfache Vererbung – Erben von abstrakten Klassen – Implementieren eines Interfaces.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
FH-Hof Singleton Pattern Richard Göbel. FH-Hof Motivation Bestimmte Klassen sollen nur ein Objekt haben Nur ein Fabrikobjekt für eine Fabrikklasse Zentraler.
Rekursive Funktionen (Fakultät)
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
Informatik – Programmierpraktikum Alexander Volodarski Gruppe 14
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
Real Time Operating System
CuP - Java Eingabe über Tastatur, AudioClips, überschreiben, Quiz Montag, 18. November 2002.
CuP - Java Neunte Vorlesung Entspricht Kapitel 4.2 und 5 des Skriptums
CuP - Java Zwölfte Vorlesung Klassen – Komposition und Vererbung Freitag, 15. November 2002.
Learning By Doing Ausnahmebehandlung Exceptions (Ausnahmebehandlung) Typische Fehlverhalten zur Laufzeit: s. Buch S. 287ff -Verwendung von null-Objekten.
Learning By Doing Übungen GPanel Quadratfenster mit pixelunabhängigen Windowkoordinaten (doubles) Zweckmässige Standardwerte (defaults) 01 x 0 1 y // WbzEx5.java.
Learning By Doing Parallelverarbeitung Multithreading (Nebenläufigkeit) Alte Idee der Parallelverarbeitung statt rein sequentieller Prozesse Parallelverarbeitung.
Programmierung von Agenten in Java: Implementierung einer Supply-Chain
Lind 02/2005 Einführung in JAVA. Lind 02/2005 Beispiel: Mittelwert Es soll ein Programm erstellt werden, das den Mittelwert zweier reeller Zahlen berechnet.
Java Threads Scheduling Lei Chen November 2000 Proseminar.
Proseminar Java Threads. Deadlock und Fairness 1. Deadlock 2. Lockstarvation.
Beispielanwendung von Java Threads
Javelin Internet-based parallel computing using Java.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Threads in Java Wiederholung der BS Grundlagen Alois Schütte AOSD1.
Prüfung auf Serialisierbarkeit (3)
Natürliches Programmieren
Übersicht Nachtrag zu Ausdrücken
Java-Kurs - 4. Übung Hausaufgabe Weitere Kontrollstrukturen
Threads in Java Threads  Sprachumfang von Java Der Java-Standard fordert nur die Unterstützung von Thread-Prioritäten. Es gibt keine Forderung bzgl.:
1 VE 11 Kruskal-Realisierung Listen. 2 Auf dem Weg zur Kruskal-Realisierung Vorüberlegungen: Der Graph könnte dargestellt werden als Menge von Knoten,
, Dr. Wolfram Amme, Softwareentwicklung in Java, FSU Jena, SS Exceptions in der Programmiersprache Java.
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Mit der Turtle Java Programmieren
Grundkurs Informatik mit Java
Schleifen mit der Turtle
Mit Java die Turtle steuern
 Präsentation transkript:

Java Thread Scheduling Jin Zhou Proseminar Java Thread Scheduling November 2000

Der Inhalt: Ein Ü bersicht ü ber Java Scheduling Wann ist Scheduling wichtig Scheduling mit Thread Priorit ä ten Java Thread Scheduling November 2000

Java Thread Scheduling November 2000 Ein Ü bersicht ü ber Java Scheduling Das erste Beispiel: class TestThread extends Thread{ String id; public TestThread (String s){ id = s; } public void doCalc(int i){} public void run(){ for(int i = 0; i < 10; i ++){ doCalc(i); System.out.println(id); } TestThread.java

Java Thread Scheduling November 2000 Ein Ü bersicht ü ber Java Scheduling Test.java public class Test{ public static void main(String args[]){ TestThread t1,t2,t3; t1 = new TestThread ( “ Thread 1 ” ); t1.start(); t2 = new TestThread ( “ Thread 2 ” ); t2.start(); t3 = new TestThread ( “ Thread 3 ” ); t3.start(); }

Ein Ü bersicht ü ber Java Scheduling Java Thread Scheduling November 2000 Der jetzige Ausdruck: Thread1... Thread1 Thread2... Thread2 Thread3... Thread3 Aber wir wollen z.B.: Thread1 Thread2 Thread3 Thread1 Thread2 Thread3 …

Java Thread Scheduling November 2000 Ein Ü bersicht ü ber Java Scheduling Die vier Zust ä nden von Threads Initial Runnable(currently running thread) Blocked Exiting

Java Thread Scheduling November 2000 Ein Ü bersicht ü ber Java Scheduling Priorit ä t von Thread : Jeder Thread im Java-Programm hat eine Priorit ä t, die durch eine positive Ganzzahl dargestellt wird. Der momentan laufende Thread hat die h ö chste Priorit ä t von allen Threads,die runnable sind. (a priority-based scheduler)

Java Thread Scheduling November 2000 Ein Ü bersicht ü ber Java Scheduling Scheduling Beispiel: Threads mit verschidenen Priorit ä ten public class SchedulingExample implements Runnable{ public static void main(String args[]){ Thread calcThread = new Thread(this); calcThread.setPriority(4); calcThread.start(); AsyncReadSocket reader = new AsyncReadSocket( new Socket(host, port)); reader. setPriority(6); reader.start(); } public void run(){ doCalc(); }

Java Thread Scheduling November 2000 Ein Ü bersicht ü ber Java Scheduling Threads Default(5) calcThread (4) Reader(6) KEY Currently Running Thread Waiting for CPU Blocked T1T2T6T3T4T5 Time

Java Thread Scheduling November 2000 Ein Ü bersicht ü ber Java Scheduling Scheduling Threads mit gleicher Priorität Threads Default (5) calcThread (5) Reader (6) KEY Currently Running Thread Waiting for CPU Blocked T2T3T7T4T5T6 Time

Java Thread Scheduling November 2000 Ein Ü bersicht ü ber Java Scheduling T2: Priorit ä t 5: Default -> calcThread -> Null Priorit ä t 6: Null Blocked: Null Priorit ä t 5: calcThread -> Default -> Null Priorit ä t 6: reader -> Null Blocked: Null Priorit ä t 5: calcThread -> Default -> Null Priorit ä t 6: Null Blocked: reader -> Null T3: T4: Scheduling Threads mit gleicher Priorität

Ein Ü bersicht ü ber Java Scheduling Priorität Inversion Thread 2Thread 8 synchronized Java Thread Scheduling November 2000 T1: Priorit ä t 2: Thread 2 -> Null Priorit ä t 8: Null Blocked: Thread 8 T2: Priorit ä t 2: Thread 2 -> Null Priorit ä t 8: Null Blocked: Thread 8

Ein Ü bersicht ü ber Java Scheduling Priorität Vererbung Thread 2Thread 8Thread 5 synchronized Java Thread Scheduling November 2000

T1: Priorit ä t 2: Thread 2 -> Null Priorit ä t 5: Null Priorit ä t 8: Null Blocked: Thread 5 -> Thread 8 -> Null Ein Ü bersicht ü ber Java Scheduling Java Thread Scheduling November 2000 Priorit ä t 2: Thread 2 -> Null Priorit ä t 5: Thread 5 -> Null Priorit ä t 8: Null Blocked: Thread 8 -> Null T2: Priorit ä t 2: Null Priorit ä t 5: Thread 5 -> Null Priorit ä t 8: Thread 2 -> Null Blocked: Thread 8 -> Null T3: Priorit ä t 2: Thread 2 -> Null Priorit ä t 5: Thread 5 -> Null Priorit ä t 8: Thread 8 -> Null Blocked: Null T4:

Ein Ü bersicht ü ber Java Scheduling Round-Robin Scheduling Auf der Maschine mit Round-Robin Scheduling läuft ein Thread nur für eine gewisse Zeitspanne. Und wird dann zum Ende der Prioritätliste angefügt. Auf der Maschine ohne Round-Robin Scheduling läuft der currently running thread immer, bis er blockiert wird oder ein Thread mit höherer Priorität ausführbar wird. Java Thread Scheduling November 2000

Java Thread Scheduling November 2000 Wann ist Scheduling wichtig Wann interessieren wir uns f ü r das Scheduling? Nur wenn folgende erf ü llt sind: Es gibt ein oder mehr CPU-intensive Threads in einem Programm und entweder Zwischenergebnisse der Kalkulationen sind interessant oder Die Threads führen keine gemeinschaftliche Aufgabe durch.

Wann ist Scheduling wichtig Java Thread Scheduling November 2000 Threads 1Threads nThreads 2 …… Beispiel: (Priorit ä t 5) Applet Programm Button Fenster (Priorit ä t 6)

Java Thread Scheduling November 2000 Round-Robin Scheduling und „ Gerechtichkeit“ 1. Zwischenergebnisse wichtig: das Round-Robin Scheduling am gerechtesten. 2. Endergebnisse wichtig: das Round-Robin Scheduling auf der Maschine mit einer CPU nicht am besten. 3. Auf Maschinen mit mehreren CPUs : das Round-Robin Scheduling ist oft besser als anderes Scheduling. Wann ist Scheduling wichtig

Java Thread Scheduling November 2000 Beispiel zu “Gerechtichkeit” (Maschine mit einer CPU) CalcServer Client 1Client 2Client 3Client 4Client 5 Je 5 Sekunden Wann ist Scheduling wichtig

Ohne Round-Robin Scheduling: CalcServer Client 1Client 2Client 3Client 4Client 5 5 s10 s15 s20 s25 s Insgesamt 25 Sekunden Java Thread Scheduling November 2000

Wann ist Scheduling wichtig Mit Round-Robin Scheduling: (die Zeitspannung ist 2.5s) CalcServer Client 1Client 2Client 3Client 4Client s5 s7.5 s10 s12.5 s Insgesamt 25 Sekunden Java Thread Scheduling November s17.5 s20 s22.5 s25 s

Java Thread Scheduling November 2000 Beispiel zu “Gerechtichkeit” (Mehr-CPU-Maschine) CalcServer 1 Client 1Client 2Client 3Client 4Client 5 Je 5 Sekunden CalcServer 3CalcServer 2CalcServer 4 Wann ist Scheduling wichtig

CalcServer 1 Client 1Client 2Client 3Client 4Client 5 CalcServer 3CalcServer 2 Wann ist Scheduling wichtig Ohne Round-Robin Scheduling: CalcServer 4 5 s 10 s Insgesamt 10 Sekunden

CalcServer 1 Client 1Client 2Client 3Client 4Client 5 CalcServer 3CalcServer 2 Wann ist Scheduling wichtig Mit Round-Robin Scheduling: CalcServer 4 5 s Insgesamt 6.2 Sekunden

Scheduling mit Thread Priorit ä ten Java Thread Scheduling November 2000 Prioritäten in der Java API 3 Konstanten (static final) : Thread.MIN_PRIORITY=1 : Die kleinste Priorität, die ein Thread haben kann. Thread.MAX_PRIORITY=10 : Die größte Priorität, die ein Thread haben kann. Thread.NORM_PRIORITY=5 : Die Standartriorität. 2 wichtige Methoden void setPriority(int priority) : Setzen der Priorität des gegebenen Threads. int getPriority(int priority) : Lesen der Priorität des gegebenen Threads.

Scheduling mit Thread Priorit ä ten Java Thread Scheduling November 2000 Benutzen der Priorität-API z.B.: …… Thread current = Thread.currentThread(); Thread calcThread = new Thread(this); calcThread.setPriority(current.getPriority() –1); calcThread.start(); ……

Zusammenfassung 1. Ein Ü bersicht ü ber Java Scheduling Priorit ä t von Thread Scheduling Threads mit gleicher Priorit ä t Priorit ä t Inversion und Vererbung Round-Robin Scheduling 2. Wenn Scheduling ist wichtig Wann interessieren wir uns f ü r das Scheduling Round-Robin Scheduling und „Gerechtichkeit“ 3. Scheduling mit Thread Priorit ä ten Priorität in der Java API Benutzung der Priority-API Java Thread Scheduling November 2000