Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Matthias Peters20.02.2003Seminar: Real-Time Java Seminar Real-Time Java High-Resolution Time Real-Time Threads Matthias Peters Wintersemester 2002/2003."—  Präsentation transkript:

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

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

3 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

4 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

5 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)

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

7 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

8 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

9 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

10 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

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

12 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

13 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

14 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(); } }

15 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

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

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

18 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

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

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

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

22 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

23 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

24 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)

25 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

26 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

27 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

28 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

29 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

30 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


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

Ähnliche Präsentationen


Google-Anzeigen