Matthias Peters20.02.2003Seminar: Real-Time Java Seminar Real-Time Java High-Resolution Time Real-Time Threads Matthias Peters Wintersemester 2002/2003.

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
DVG Dateien Dateien. DVG Dateien 2 Die Klasse File Die Klasse File stellt die Verbindung zwischen dem Filesystem des Rechners und dem.
Rekursive Grafiken Reklursive Grafiken.
Real - Time Java Seminar Asynchrone Ereignisse und Asynchroner Kontrolltransfer in Real - Time Java Sönke Eilers.
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Prof. Dr.-Ing. habil. B. Steinbach - Informatik / Softwaretechnologie und Programmierungstechnik - Institut für Informatik Verteilte Software - Java -
Ausnahmen HS Merseburg (FH) WS 06/07.
Threads Richard Göbel.
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
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.
AUFGABE 1: Ein Wagen (dargestellt durch ein Rechteck) soll sich von links nach rechts bewegen. Tipp: Timer benutzen AUFGABE 2: Zusätzlich zu Aufgabe.
Abstrakte Klassen.
Wie überwacht man Objekte im "Alltag" ?. Indem man "Wanzen" an diese anbringt.
Ein Beispiel in Java.
Assoziationen (Beziehungen). Zwischen Objekten kann es eine Beziehung geben.
Dynamische Webseiten Java servlets.
Objektorientierte Programmierung JDK-Klassenbibliothek
Reverse Engineering 1 Reverse Engineering WS 04 / 05 A. Zündorf.
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
F açade P attern By Nicolas Lanquetin. Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
EDV Parallelprogrammierung1 Parallelprogrammierung mit JAVA.
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Step by step zum JFrame 1 Zum JFrame Step by step by step by step by step by step by step by step by.
© 2005 Pohlig GK Informatik K Zum JFrame Step by step by step by step by step by step by step by step by.
© 2006 MPohlig Grundkurs Informatik mit Java 1 JFrame-Vorlage Step by step by step by step by step by step by step by step by.
© 2005 Pohlig – Taulien: Die Matheamatik-GUI als Applet Come Together 1 April 2005 Was ist ein Applet Ein Applet ist ein Javaprogramm, das die VM benutzt,
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.
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
Seminar: Compiler-Konstruktion
Inhalt Was ist A-Plan? Einsatzgebiete Organisation der Daten
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
Java Performance Tuning Performance Tuning is similar to playing a strategy game but happily you usually get paid for it.
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
Exception Handling in Java
Real Time Operating System
Variablenkonzept Klassisch, in Java Basistyp
Die Klasse String und ihre Methoden
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.
Starten der Entwicklungsumgebung (IDE)
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
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.
Java Thread Scheduling Jin Zhou Proseminar Java Thread Scheduling November 2000.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Instanzmethoden
Programmiervorkurs WS 2014 Referenzdatentypen
3. Beschreibung von Abläufen durch Algorithmen 3.4 Zufall
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Natürliches Programmieren
Robuste Programme durch Ausnahmebehandlung
© 2005 Pohlig Informatik Jg. 11 mfH Michael Pohlig 1 Zum JFrame Step by step by step by step by step by step by step by step by.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Vererbung.
Venusspiegel und Marsschild
Mit der Turtle Java Programmieren
Mit Java die Turtle steuern
Reklursive Grafiken Teil I
 Präsentation transkript:

Matthias Peters Seminar: Real-Time Java Seminar Real-Time Java High-Resolution Time Real-Time Threads Matthias Peters Wintersemester 2002/2003

Matthias Peters Seminar: Real-Time Java Übersicht High-Resolution Time Motivation Genauigkeit Haupt- und Unterklassen Real-Time Threads Motivation Features Erzeugung Handler

Matthias Peters Seminar: Real-Time Java High-Resolution Time Motivation Zeit bedeutendes Merkmal vieler Realzeit-Systeme RZ-Systeme benötigen Zeit-Darstellung als –Intervalle –Zeitpunkte –Frequenz und mit –hoher Genauigkeit –grosser Reichweite Gewöhnliche Java-Zeit nicht ausreichend

Matthias Peters Seminar: Real-Time Java High-Resolution Time Darstellung durch 84 Bit –64 Bit für Millisekunden-Wert –32 Bit für Nanosekunden ( d.h. höchste 12 Bit sind Millisekunden) Reichweite 292 Millionen Jahre Genauigkeit Nanosekunden

Matthias Peters Seminar: Real-Time Java High-Resolution Time Abstrakte Basis-Klasse –Felder für Milli- und Nanosekunden –Gemeinsame Methoden der Unterklassen Unterklassen: –AbsoluteTime –RelativeTime –RationalTime (extends RelativeTime)

Matthias Peters Seminar: Real-Time Java High-Resolution Time Klassendiagramm

Matthias Peters Seminar: Real-Time Java High-Resolution Time AbsoluteTime Absolute Zeit relativ zu 00:00: GMT am 1.Januar 1970 Methoden –Rechnen mit relativen Zeiten –Konvertieren von und zu java.util.Date

Matthias Peters Seminar: Real-Time Java High-Resolution Time RelativeTime Zeitspanne, positiv, negativ oder null Arithmetische Operationen auf den Zeitspannen Zusätzliche Methoden für Unterklasse RationalTime

Matthias Peters Seminar: Real-Time Java High-Resolution Time RationalTime extends RelativeTime Fügt Frequenz hinzu Bestimmte Anzahl Ausführungen in einer Zeitspanne Keine zu enge Einschränkung: Betrachtung aufeinanderfolgender Intervalle

Matthias Peters Seminar: Real-Time Java Real-Time Threads Motivation gewöhnliche Threads nicht geeignet für RZ- Systeme –zu wenig Prioritäten möglich –unterliegen dem Garbage-Collecting –unzureichende Behandlung asynchroner Events –unzureichende periodische Benutzbarkeit

Matthias Peters Seminar: Real-Time Java Real-Time Threads javax.realtime.RealtimeThread extends java.lang.Thread

Matthias Peters Seminar: Real-Time Java Real-Time Threads Real-Time Threads haben zusätzliche Features: –Erweiterte Prioritäten –Scoped Memory –Dienste für asynchr. unterbrochene Exception –Periodisches Scheduling –Jedes nicht-periodische Scheduling, das von der Plattform angeboten wird

Matthias Peters Seminar: Real-Time Java Real-Time Threads Weitere Features (auch bei gewöhnlichen Threads): –Striktes Prioritäten Scheduling –Priority inheritance protocol für wechselseitige Blockierungen

Matthias Peters Seminar: Real-Time Java Real-Time Threads Erzeugung von Threads import javax.realtime.*; public class Hello1 { public static void main(String [] args){ RealtimeThread rt= new RealtimeThread(){ public void run() { System.out.println("Hello RT world"); } }; rt.start(); } }

Matthias Peters Seminar: Real-Time Java Real-Time Threads Erzeugter Thread –Erbt Parameter-Werte der Eltern oder –Bekommt default-Werte durch zuständigen Scheduler –Unterschied, ob Erzeuger gewöhnlicher oder Real-Time Thread

Matthias Peters Seminar: Real-Time Java Real-Time Threads Parameter des Konstruktors Scheduling Parameter Release Parameter –periodisch –aperiodisch –sporadisch

Matthias Peters Seminar: Real-Time Java Real-Time Threads Parameter des Konstruktors Memory Parameter Memory area Prozess-Gruppe Logic

Matthias Peters Seminar: Real-Time Java Real-Time Threads Scheduling RTSJ verlangt : –fixed-priority preemtive Scheduler –mindestens 28 versch. Prioritäten 10 non-real-time < 28 real-timePrioritäten

Matthias Peters Seminar: Real-Time Java Real-Time Threads Optionale Features für periodisches Scheduling: feasibility analysis deadline aware miss handler overrun-Handler ImportanceParameters

Matthias Peters Seminar: Real-Time Java Real-Time Threads Periodischer Thread Release Parameter: start period cost deadline missHandler overrunHandler

Matthias Peters Seminar: Real-Time Java Real-Time Threads Periodischer Thread Reaktionen bei Overrun oder Miss ohne Handler: –good citizen –desperate outlaw (ignoriert waitForNextPeriod)

Matthias Peters Seminar: Real-Time Java Real-Time Threads Periodischer Thread Ausnutzen der Feasibility-Analyse –addIfFeasible –setIfFeasible –setMemoryParametersIfFeasible –... zusätzlich der gleiche Satz ohne Admission Control

Matthias Peters Seminar: Real-Time Java Real-Time Threads Periodischer Thread mit Handler –Scheduler erkennt Overrun frühzeitig und reagiert –deschedulePeriodic stoppt Thread –OverrunHandler wird aufgerufen und versucht Fehler zu beheben –Thread wird mit schedulePeriodic fortgesetzt

Matthias Peters Seminar: Real-Time Java Real-Time Threads OverrunHandler extends AsyncEventHandler –sucht den Grund des Problems –kann Kosten des Threads erhöhen –benutzt die Feasibility-Analyse –terminiert fehlerhafte Threads mittels AIE (asynchronously interrupted exception)

Matthias Peters Seminar: Real-Time Java Real-Time Threads MissHandler –ähnlicher Mechanismus, wie der OverrunHandler –reagiert je nach Härte der Realzeit der Thread wird sofort wieder aktiviert und darf mit seiner Berechnung fortfahren bekommt AIE und darf in nächster Periode neue Berechnung starten darf mit aktueller Berechnung in der nächsten Periode fortfahren

Matthias Peters Seminar: Real-Time Java Real-Time Threads MissHandler passiv: keine Anstrengungen, weitere Misses zu verhindern aggressiv: versucht, Problem zu beheben feuert AIE auf Thread unterschiedliche Auswirkungen auf die Ausführung anderer Threads

Matthias Peters Seminar: Real-Time Java Real-Time Threads Interaktion mit normalen Threads gewöhnliche Threads können ohne Modifikation in der RT-Umgebung laufen Performance-Probleme bei Interaktion Priority-Boosting nicht JLS-gerecht

Matthias Peters Seminar: Real-Time Java Real-Time Threads Übernahme von herkömmlichen Java-Code in RTSJ-Plattform Realzeit-Möglichkeiten ignorieren und auf RT- Umgebung vertrauen alle langsamen Threads finden und boosten alle langsamen Threads finden und ein RT- Untersystem schaffen mit identischen RT-Threads alle gewöhnlichen Threads in RT-Threads konvertieren

Matthias Peters Seminar: Real-Time Java Real-Time Threads Erschaffen und Benutzen eines anderen Schedulers default : fixed-priority preemptive scheduler Thread kann beliebigen Scheduler wählen RTSJ enthält APIs zum Anpassen –dynamischer Prioritäten-Scheduler –beliebiger Scheduler von Betriebssystem oder JVM- Entwicklern Erschaffen komplett neuer Scheduler nicht in RTSJ

Matthias Peters Seminar: Real-Time Java Real-Time Threads Fazit Jeder gewöhnliche Thread kann durch einen Real-Time Thread ersetzt werden RT Threads bieten –funktionierende Prioritäten –periodisches Scheduling –priority boosting